| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- /// <reference types="cypress" />
- import { DateTime } from "luxon";
- import { routeSelectors } from "../../support/routeSelectors";
- describe("Dashboard", () => {
- beforeEach(() => {
- cy.setProjectIdCookie();
- cy.mockAuth();
- cy.intercept(routeSelectors.APPLIANCES, {
- fixture: "licences/appliances.json",
- }).as("appliances");
- cy.intercept(routeSelectors.STATUS, {
- fixture: "licences/status.json",
- }).as("status");
- cy.intercept(routeSelectors.APPLIANCE_STATUS, {
- fixture: "licences/appliance-status.json",
- }).as("appliance-status");
- });
- const waitForAll = () => {
- cy.waitMockAuth();
- cy.wait(["@appliances", "@status", "@appliance-status"]);
- };
- it("renders empty dashboard", () => {
- cy.intercept(routeSelectors.TRANSFERS, {
- body: { transfers: [] },
- }).as("transfers");
- cy.intercept(routeSelectors.DEPLOYMENTS, {
- body: { deployments: [] },
- }).as("deployments");
- cy.intercept(routeSelectors.ENDPOINTS, {
- body: { endpoints: [] },
- }).as("endpoints");
- cy.visit("/");
- waitForAll();
- cy.wait(["@transfers", "@deployments", "@endpoints"]);
- cy.get("*[class^='DashboardActivity__Message']").should(
- "contain.text",
- "There is no recent activity",
- );
- cy.fixture("licences/appliance-status.json").then(applianceStatus => {
- cy.get("*[class^='DashboardLicence__TopInfoDateTop']").should(
- "contain.text",
- `${DateTime.fromISO(
- applianceStatus.appliance_licence_status.earliest_licence_expiry_time,
- )
- .toFormat("LLL |yy")
- .replace("|", "'")}`,
- );
- cy.get("*[class^='DashboardLicence__ChartHeaderCurrent']").should(
- "contain.text",
- `${applianceStatus.appliance_licence_status.current_performed_replicas} Used Replica ${applianceStatus.appliance_licence_status.current_performed_migrations} Used Migrations`,
- );
- });
- cy.get("button").should("contain.text", "New Transfer");
- cy.get("button").should("contain.text", "New Endpoint");
- });
- it("renders dashboard with data", () => {
- cy.intercept(routeSelectors.TRANSFERS, {
- fixture: "transfers/replicas.json",
- }).as("transfers");
- cy.intercept(routeSelectors.ENDPOINTS, {
- fixture: "endpoints/endpoints.json",
- }).as("endpoints");
- cy.visit("/");
- waitForAll();
- cy.wait(["@transfers", "@endpoints"]);
- cy.loadFixtures(
- ["transfers/replicas.json", "endpoints/endpoints.json"],
- results => {
- const [transfersFixture, endpointsFixture] = results;
- const replicasCount = transfersFixture.transfers.filter(
- transfer => transfer.scenario === "replica",
- ).length;
- const migrationsCount = transfersFixture.transfers.filter(
- transfer => transfer.scenario === "live_migration",
- ).length;
- cy.get("div[class^='DashboardInfoCount__CountBlock']").should(
- "contain.text",
- `${replicasCount}Replicas${migrationsCount}Migrations${endpointsFixture.endpoints.length}Endpoints`,
- );
- const checkItem = (type: "transfer", item: any) => {
- cy.get("div[class^='NotificationDropdown__ItemDescription']").should(
- "contain.text",
- `New ${type} ${item.id.substr(
- 0,
- 7,
- )}... status: ${item.last_execution_status.toLowerCase()}`,
- );
- };
- transfersFixture.transfers.forEach((transfer: any) => {
- checkItem("transfer", transfer);
- });
- },
- );
- });
- });
|