This PR adds the build, test & package workflow to the client code base as well. In order for us to run the Cypress tests, we also spin up a local server in a Docker container and run all our tests against that server. This ensures that our tests are faster to run as well. We also introduce the concept of stubbing network requests by stubbing the API that fetches the property pane configuration from the server. Results for the Cypress tests can be viewed at: https://dashboard.cypress.io/projects/eyxvp8/runs/
62 lines
1.5 KiB
JavaScript
62 lines
1.5 KiB
JavaScript
// ***********************************************************
|
|
// This example support/index.js is processed and
|
|
// loaded automatically before your test files.
|
|
//
|
|
// This is a great place to put global configuration and
|
|
// behavior that modifies Cypress.
|
|
//
|
|
// You can change the location of this file or turn off
|
|
// automatically serving support files with the
|
|
// 'supportFile' configuration option.
|
|
//
|
|
// You can read more here:
|
|
// https://on.cypress.io/configuration
|
|
// ***********************************************************
|
|
require("cypress-xpath");
|
|
let pageid;
|
|
let appId;
|
|
|
|
// Import commands.js using ES2015 syntax:
|
|
import "./commands";
|
|
|
|
Cypress.on("uncaught:exception", (err, runnable) => {
|
|
// returning false here prevents Cypress from
|
|
// failing the test
|
|
return false;
|
|
});
|
|
|
|
before(function() {
|
|
cy.startServerAndRoutes();
|
|
const username = Cypress.env("USERNAME");
|
|
const password = Cypress.env("PASSWORD");
|
|
cy.LoginFromAPI(username, password);
|
|
cy.visit("/applications");
|
|
cy.wait("@applications").should(
|
|
"have.nested.property",
|
|
"response.body.responseMeta.status",
|
|
200,
|
|
);
|
|
|
|
cy.generateUUID().then(id => {
|
|
appId = id;
|
|
cy.CreateApp(id);
|
|
localStorage.setItem("AppName", appId);
|
|
});
|
|
|
|
cy.fixture("example").then(function(data) {
|
|
this.data = data;
|
|
});
|
|
});
|
|
|
|
beforeEach(function() {
|
|
Cypress.Cookies.preserveOnce("SESSION", "remember_token");
|
|
cy.startServerAndRoutes();
|
|
});
|
|
|
|
after(function() {
|
|
//-- Deleting the application by Api---//
|
|
cy.DeleteAppByApi();
|
|
//-- LogOut Application---//
|
|
cy.LogOut();
|
|
});
|