@intility/cypress-msal
A cypress plugin for projects using @azure/msal-browser.
Installation
npm install @intility/cypress-msal
Usage
Register the package in support/index.js
:
import "@intility/cypress-msal/command";
Configure and load the plugin in plugins/index.js
:
import generateLogin from "@intility/cypress-msal";
let publicClientConfig = {
auth: {
clientId: "APP_CLIENT_ID",
authority: "https://login.microsoftonline.com/TENANT_ID",
},
};
let requests = [
{
scopes: ["User.Read"],
},
];
let login = generateLogin(publicClientConfig, requests);
module.exports = (on, config) => {
on("task", {
login,
});
};
You can now login by using the login
command before running your tests.
before(() => cy.login());
Azure Configuration
The App registration needs to be a Public Application to be able to use the Device Code flow.
generateLogin
Syntax
let login = generateLogin(publicClientConfiguration, requests);
Parameters
publicClientConfiguration
A Configuration
that will be used to initialize a PublicClientApplication
from @azure/msal-node
.
requests
An array of Requests ({ scopes: string[] }
) that will be used for acquireTokenByDeviceCode
and acquireTokenSilent
.
Return value
A task plugin named login
that should be registered with on("task", { login })
.
cy.login
Syntax
cy.login()
Return value
A Promise that get resolves when all tokens are acquired and registered in sessionStorage
to be used by @azure/msal-browser
.