sunrise-cms/cypress/e2e/02-update/maps.cy.ts

87 lines
3.6 KiB
TypeScript

import { testUpdate } from "../../../test/_globals.js";
import { logout, login } from "../../support/index.js";
import * as configFunctions from "../../../helpers/functions.config.js";
import type * as recordTypes from "../../../types/recordTypes";
describe("Update - Maps", () => {
before(() => {
logout();
login(testUpdate);
});
it('Has a "Create" link on the Map Search', () => {
cy.visit("/maps");
cy.get("a[href$='/maps/new']").should("exist");
});
describe("Update a New Map", () => {
before(() => {
cy.visit("/maps/new");
});
it("Has no detectable accessibility issues", () => {
cy.injectAxe();
cy.checkA11y();
});
it("Can populate basic details", () => {
// eslint-disable-next-line promise/catch-or-return, promise/always-return
cy.fixture("map.json").then((mapJSON: recordTypes.Map) => {
cy.get("input[name='mapName']").clear().type(mapJSON.mapName);
cy.get("textarea[name='mapDescription']").clear().type(mapJSON.mapDescription);
cy.get("input[name='mapAddress1']").clear().type(mapJSON.mapAddress1);
cy.get("input[name='mapAddress2']").clear().type(mapJSON.mapAddress2);
cy.get("input[name='mapPostalCode']").clear().type(mapJSON.mapPostalCode);
cy.get("input[name='mapPhoneNumber']").clear().type(mapJSON.mapPhoneNumber);
cy.get("input[name='mapLatitude']").clear().type(mapJSON.mapLatitude.toString());
cy.get("input[name='mapLongitude']").clear().type(mapJSON.mapLongitude.toString());
});
});
it("Should use the default map city and province", () => {
cy.get("input[name='mapCity']").should(
"have.value",
configFunctions.getProperty("settings.map.mapCityDefault")
);
cy.get("input[name='mapProvince']").should(
"have.value",
configFunctions.getProperty("settings.map.mapProvinceDefault")
);
});
it("Should submit form and create the map", () => {
cy.get("#form--map").submit();
cy.wait(1000);
cy.location("pathname").should("not.contain", "/new").should("contain", "/edit");
});
it("Should be populated as expected", () => {
// eslint-disable-next-line promise/catch-or-return, promise/always-return
cy.fixture("map.json").then((mapJSON: recordTypes.Map) => {
cy.get("input[name='mapName']").should("have.value",mapJSON.mapName);
cy.get("textarea[name='mapDescription']").should("have.value",mapJSON.mapDescription);
cy.get("input[name='mapAddress1']").should("have.value",mapJSON.mapAddress1);
cy.get("input[name='mapAddress2']").should("have.value",mapJSON.mapAddress2);
cy.get("input[name='mapCity']").should("have.value", configFunctions.getProperty("settings.map.mapCityDefault"));
cy.get("input[name='mapProvince']").should("have.value", configFunctions.getProperty("settings.map.mapProvinceDefault"));
cy.get("input[name='mapPostalCode']").should("have.value",mapJSON.mapPostalCode);
cy.get("input[name='mapPhoneNumber']").should("have.value",mapJSON.mapPhoneNumber);
cy.get("input[name='mapLatitude']").should("have.value",mapJSON.mapLatitude.toString());
cy.get("input[name='mapLongitude']").should("have.value",mapJSON.mapLongitude.toString());
});
});
});
});