ember-current-url

0.1.2 • Public • Published

ember-current-url

High Level URL Assertions for QUnit in Ember, heavily inspired by qunit-dom.

Installation

ember install ember-current-url

Then run this codemod in you project directory order to migrate. To run the codemod:

If you do not have jscodeshift installed globally, then run: npm i jscodeshift -g

To perform the transformation run the following command:

jscodeshift -t https://raw.githubusercontent.com/dexturr/ember-current-url-codemod/master/index.js ./tests

API

This adds a new functionality to QUnit assert which verifies properties of the current URL. This utaltizes a hash for the query parameters so that tests are not dependant on the order of the query parameters.

equals

  test('Basic routes', async function(assert) {
    await visit('/foo');
    assert.url.equals('/foo');
  });
 
  // Query params function either by using a URL 
  test('Query params', async function(assert) {
    await visit('/foo?bar=baz&qux=quux');
    assert.url.equals('/foo?bar=baz&qux=quux');
  });
 
  // Or a hash
  test('Query params (hash)', async function(assert) {
    await visit('/foo?bar=baz&qux=quux');
    assert.url.equals(
        '/foo', 
        { 
            bar: 'baz', 
            qux: 'quux' 
        }
    );
  });

incudes

  test('Includes', async function(assert) {
    await visit('/foo/bar/baz');
    assert.url.includes('bar');
  });

doesNotInclude

  test('Does Not Include', async function(assert) {
    await visit('/foo/bar/baz');
    assert.url.doesNotInclude('qux');
  });

hasQueryParameters

  test('Has query parameters', async function(assert) {
    await visit('/foo?bar=baz');
    assert.url.hasQueryParameters({
      bar: 'baz'
    });
  });

doesNotHaveQueryParameters

  test('Does not have query parameters functions', async function(assert) {
    await visit('/foo?bar=baz');
    assert.url.doesNotHaveQueryParameters({
      qux: 'quux'
    });
  });

Legacy

Previously assert.url was assert.currentUrl. Both are still supported and work as expected.

Contributing

Installation

  • git clone <repository-url>
  • cd ember-current-url
  • npm install

Building

In general you can just run npm build (which runs both the below) however if altering anything in ./lib you will need to build rollup and rebuild Ember in order to see your changes (it sucks, I know).

Rollup build

  • npm run build:dist

Ember Build

  • npm run build:ember

Linting

  • npm run lint:js
  • npm run lint:js -- --fix

Running tests

  • ember test – Runs the test suite on the current Ember version
  • ember test --server – Runs the test suite in "watch mode"
  • ember try:each – Runs the test suite against multiple Ember versions

Running the dummy application

For more information on using ember-cli, visit https://ember-cli.com/.

License

This project is licensed under the MIT License.

Readme

Keywords

Package Sidebar

Install

npm i ember-current-url

Weekly Downloads

70

Version

0.1.2

License

MIT

Unpacked Size

22.4 kB

Total Files

11

Last publish

Collaborators

  • dexturr