import { testUpdate } from "../../../test/_globals.js";
import { logout, login } from "../../support/index.js";
import * as configFunctions from "../../../helpers/functions.config.js";
describe("Update - Maps", () => {
    beforeEach("Loads page", () => {
        logout();
        login(testUpdate);
    });
    afterEach(logout);
    it('Has a "Create" link on the Map Search', () => {
        cy.visit("/maps");
        cy.location("pathname").should("equal", "/maps");
        cy.get("a[href$='/maps/new']").should("exist");
    });
    it("Creates a new map", () => {
        cy.visit("/maps/new");
        cy.log("Check the accessibility");
        cy.injectAxe();
        cy.checkA11y();
        cy.log("Populate the fields");
        cy.fixture("map.json").then((mapJSON) => {
            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());
        });
        cy.log("Ensure the default city and province are used");
        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.log("Submit the form");
        cy.get("#form--map").submit();
        cy.wait(1000);
        cy.location("pathname").should("not.contain", "/new").should("contain", "/edit");
        cy.fixture("map.json").then((mapJSON) => {
            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());
        });
    });
});
