npm: possibly marvellous

    chai-superagent
    TypeScript icon, indicating that this package has built-in type declarations

    2.1.1 • Public • Published

    chai-superagent

    Travis npm package Coverage Status

    superagent integration testing with Chai assertions.

    Features

    • simplified fork of chai-http
    • esm module only, support node >= 14
    • integration test request composition
    • test http apps or external services
    • assertions for common http tasks
    • chai expect and should interfaces

    Install

    $ npm install chai-superagent superagent
    

    Plugin

    Use this plugin as you would all other Chai plugins. Notice the function call - it accepts an optional parameter { strict }: { strict?: boolean }. When strict is true, the assertions will assert that the object being tested is an instance of superagent Request, Response or Agent types. It defaults to true.

    import { use } from 'chai';
    import superagent from 'chai-superagent';
    
    use(superagent());

    Integration Testing

    Use superagent as you normally would, and test the responses using the assertions provided in this library.

    import request from 'superagent';
    
    request
      .get('http://localhost:8000/foo')
      .then(res => expect(res).to.have.status(200));

    Assertions

    The Chai HTTP module provides a number of assertions for the expect and should interfaces.

    .status (code)

    • @param {Number} status number

    Assert that a response has a supplied status.

    expect(res).to.have.status(200);

    .header (key[, value])

    • @param {String} header key (case insensitive)
    • @param {String|RegExp} header value (optional)

    Assert that a Response or Request object has a header. If a value is provided, equality to value will be asserted. You may also pass a regular expression to check.

    Note: When running in a web browser, the same-origin policy only allows Chai HTTP to read certain headers, which can cause assertions to fail.

    expect(req).to.have.header('x-api-key');
    expect(req).to.have.header('content-type', 'text/plain');
    expect(req).to.have.header('content-type', /^text/);

    .headers

    Assert that a Response or Request object has headers.

    Note: When running in a web browser, the same-origin policy only allows Chai HTTP to read certain headers, which can cause assertions to fail.

    expect(req).to.have.headers;

    .json / .text / .html

    Assert that a Response or Request object has a given content-type.

    expect(req).to.be.json;
    expect(req).to.be.html;
    expect(req).to.be.text;

    .charset

    Assert that a Response or Request object has a given charset.

    expect(req).to.have.charset('utf-8');

    .redirect

    Assert that a Response object has a redirect status code.

    expect(res).to.redirect;
    expect(res).to.not.redirect;

    .redirectTo

    • @param {String|RegExp} location url

    Assert that a Response object redirects to the supplied location.

    expect(res).to.redirectTo('http://example.com');
    expect(res).to.redirectTo(/^\/search\/results\?orderBy=desc$/);

    .param

    • @param {String} parameter name
    • @param {String} parameter value

    Assert that a Request object has a query string parameter with a given key, (optionally) equal to value

    expect(req).to.have.param('orderby');
    expect(req).to.have.param('orderby', 'date');
    expect(req).to.not.have.param('limit');

    .cookie

    • @param {String} parameter name
    • @param {String} parameter value

    Assert that a Request or Response object has a cookie header with a given key, (optionally) equal to value

    expect(req).to.have.cookie('session_id');
    expect(req).to.have.cookie('session_id', '1234');
    expect(req).to.not.have.cookie('PHPSESSID');
    expect(res).to.have.cookie('session_id');
    expect(res).to.have.cookie('session_id', '1234');
    expect(res).to.not.have.cookie('PHPSESSID');

    License

    See the LICENSE file for license rights and limitations (MIT).

    Install

    npm i chai-superagent

    DownloadsWeekly Downloads

    221

    Version

    2.1.1

    License

    MIT

    Unpacked Size

    22.1 kB

    Total Files

    5

    Last publish

    Collaborators

    • perrin4869