hermione-url-decorator

1.0.2 • Public • Published

hermione-url-decorator

Build Status Coverage Status

Plugin for hermione which is intended to change test urls in runtime. You can read more about plugins at documentation.

Installation

npm install hermione-url-decorator

Usage

Configuration

  • enabled (optional) Boolean – enable/disable the plugin; by default plugin is enabled
  • url (optional) Object - the list of url parameters, which will be added in each test url
    • query (optional) Object - the list of query parameters
      • queryParam (optional) Object - name of query parameter
        • value (optional) String - value of query parameter
        • concat (optional) Boolean - enable/disable concatenation; by default is true

Examples

Add plugin to your hermione config file:

module.exports = {
    // ...
 
    plugins: {
        'hermione-url-decorator': true
    },
 
    // ...
};

To pass additional url parameters you can use environment variables, which should start with HERMIONE_URL_ or specify them in the hermione config file.

For example, you have the following test url: http://localhost/test/?name=hermione and you want to add query parameter via environment variable:

HERMIONE_URL_QUERY_TEXT=ololo hermione

After that your test url will be changed to: http://localhost/test/?name=hermione&text=ololo.

The same thing you can do using hermione config file:

'hermione-url-decorator': {
    url: {
        query: {
            text: {
                value: 'ololo'
            }
            // or
            text: 'ololo'
        }
    }
}

Note: environment variables have higher priority than config values.

Concatenation of url parameters

In previous example you have seen how add url parameters. Now we look how to concat and override url parameters.

Suppose, you want to add query parameter name which is already presented in your test url: http://localhost/test/?name=hermione and you don't want to override it:

'hermione-url-decorator': {
    url: {
        query: {
            name: {
                value: 'harry',
                concat: true
            }
            // or
            name: {
                value: 'harry'
            }
            // or
            name: 'harry'
        }
    }
}

The result url will look like: http://localhost/test/?name=hermione&name=harry. How you understand, the result will be the same if concat would be any value except false.

Moreover for previous test url you can specify a set of values for one query parameter:

'hermione-url-decorator': {
    url: {
        query: {
            name: {
                value: ['hermione', 'ron']
            }
            // or
            name: [
                'harry',
                'ron'
            ]
        }
    }
}

The result url will look like: http://localhost/test/?name=hermione&name=harry&name=ron

If you want to override value of name query parameter:

'hermione-url-decorator': {
    url: {
        query: {
            name: {
                value: 'harry',
                concat: false
            }
        }
    }
}

As a result url will look like: http://localhost/test/?name=harry.

You can do the same thing via environment variables. In this case concat value will be used from config to the same url parameter:

HERMIONE_URL_QUERY_NAME=ron hermione

The result url will look like: http://localhost/test/?name=ron

Dependents (0)

Package Sidebar

Install

npm i hermione-url-decorator

Weekly Downloads

1

Version

1.0.2

License

MIT

Last publish

Collaborators

  • rostik404
  • sipayrt
  • egavr
  • j0tunn
  • dudagod