JSPM

@jc21/cypress-jwt-creation

0.0.6
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3564
  • Score
    100M100P100Q144311F
  • License MIT

Generate a JWT for use your tests

Package Exports

  • @jc21/cypress-jwt-creation
  • @jc21/cypress-jwt-creation/lib/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@jc21/cypress-jwt-creation) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Cypress JWT Creation

Create JWT tokens with ease

npm (scoped) npm (types) npm (licence)

Cypress Installation

yarn add @jc21/cypress-jwt-creation

Then in your cypress Plugins file:

const {JwtCreation} = require('@jc21/cypress-jwt-creation');

module.exports = (on, config) => {
    // ...
    on('task', JwtCreation(config));
    // ...
    return config;
};

Cypress Usage

describe('Hit an authenticated endpoint', () => {
    it('Should be able to get a response', async function () {
        cy.request('/users/me').then($response => {

            const token = await cy.task('generateToken', {
                privateKey: '/path/to/private.key',
                issuer:     'cypress-tester',
                algo:       'RS256',
                expires:    '1 day',
                claims:     {
                    capabilities: 'superuser'
                }
            });

            // use token in your requests
        });
    });
});

The Private Key

Due to the fact that this plugin runs on the Cypress Backend, the location of the private key file must be defined as either the full path on disk or relative path to the running of the cypress command. You can define the file location either with an environment variable which can apply to all tests:

config.env.jwtPrivateKey

or within each individial test using the options below. In addition, you can also define the JWT algorithm if different from the default RS256 with:

config.env.jwtAlgo

Options

Option Description Optional Default
privateKey The location of the private key file true config.env.jwtPrivateKey
issuer Issuer string true "cypress.testing"
algo The request method of the endpoint true config.env.jwtAlgo or RS256
expires English interval of token expiry true "1 day"
claims An object of extra claims you might want to set true {}

Compiling Source

yarn install
yarn build
yarn test