chai-url

A chai assertion plugin for working with urls

Provides a number of assertion helpers for working with urls.

Usage

const chai = require('chai');
chai.use(require('chai-url'));

chai.expect('http://example.com/foo/bar').to.have.path('/foo/bar');
chai.expect('http://example.com/foo/bar').to.have.protocol('http');

Available matchers

  • path
  • pathname
  • port
  • hostname
  • protocol
  • auth
  • hash

In each case, the property is tested against the corresponding property from node’s url.parse method.

In the case of hash and protocol properties which may be prefixed/suffixed with # and : respectively these characters are optional and will match with or without their presence.

Partial matching

The path, pathname, hostname, auth and hash functions can also perform partial matching based on substrings by using a contains clause in the test statement.

expect('http://example.com/foo/bar').to.contain.path('/foo');

Examples

See the tests for this module for further examples.