Cypress commands used when testing the Curity Identity Server plugins.
Install using npm, with
npm install -D @curity/cypress-commands
To use the commands in your tests:
- Import the registration function in your spec file with
import { registerCurityCommands } from '@curity/cypress-commands
. - Register commands once before running any tests by calling
registerCurityCommands()
. - You can then use the commands as any other Cypress command, e.g.
cy.getIDToken()
.
You can see the spec files in cypress/integration
to check how the commands are used in Cypress tests.
If you happen to use other custom Cypress commands with the same names, then you can register the Curity commands with a prefix.
E.g. registerCurityCommands('curity')
. All command names from this package will be prefixed with the chosen string and the
first letter of the original command name will be capitalized. E.g. getIDToken
will become curityGetIDToken
.
Note that you will not get Typescript support if you register commands with a prefix.
Prepares an authorization URL object based on the passed parameters. See src/index.d.ts
for the list of currently supported parameters.
Example usage
cy.buildAuthorizationURL({baseURL: "https://idsvr.example.com", clientID: "client1"})
.then(url => cy.visit(url.toString())).get('#login').should('exist')
Visits the Authorization URL. Either the previous subject needs to be a URL or the parameters object must be passed.
See src/index.d.ts
for the list of currently supported parameters.
Example usage
const parameters = { baseURL: "https://idsvr.example.com", clientID: "client1" }
cy.buildAuthorizationURL(parameters).startAuthorization().get('#login').should('exist')
cy.startAuthorization(parameters).get('#login').should('exist')
Decodes a JWT and returns its claims in form of a map. If no parameter is passed then the previous subject is taken as the token.
Example usage
cy.decodeJWT(token).its('sub').should('equal', 'john.doe')
Gets the ID token from the fragment part of the current URL.
Example usage
cy.getIDToken().should('not.be.empty')
Gets the ID token from the fragment part of the current URL, decodes it and returns its claims. It's a shorthand for calling
getIDToken
and decodeJWT
in a chain.
Example usage
cy.getIDTokenClaims().its('sub').should('equal', 'john.doe')