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

139 lines
3.6 KiB
TypeScript

import { getConfigProperty } from '../../../helpers/config.helpers.js'
import { testUpdate } from '../../../test/_globals.js'
import type { Cemetery } from '../../../types/record.types.js'
import { login, logout } from '../../support/index.js'
describe('Update - Cemeteries', () => {
beforeEach('Loads page', () => {
logout()
login(testUpdate)
})
afterEach(logout)
it('Has a "Create" link on the Cemetery Search', () => {
cy.visit('/cemeteries')
cy.location('pathname').should('equal', '/cemeteries')
cy.get("a[href$='/cemeteries/new']").should('exist')
})
it('Creates a new cemetery', () => {
cy.visit('/cemeteries/new')
cy.log('Check the accessibility')
cy.injectAxe()
cy.checkA11y()
cy.log('Populate the fields')
cy.fixture('cemetery.json').then((cemeteryData: Cemetery) => {
cy.get("input[name='cemeteryName']")
.clear()
.type(cemeteryData.cemeteryName ?? '')
cy.get("textarea[name='cemeteryDescription']")
.clear()
.type(cemeteryData.cemeteryDescription ?? '')
cy.get("input[name='cemeteryAddress1']")
.clear()
.type(cemeteryData.cemeteryAddress1 ?? '')
cy.get("input[name='cemeteryAddress2']")
.clear()
.type(cemeteryData.cemeteryAddress2 ?? '')
cy.get("input[name='cemeteryPostalCode']")
.clear()
.type(cemeteryData.cemeteryPostalCode ?? '')
cy.get("input[name='cemeteryPhoneNumber']")
.clear()
.type(cemeteryData.cemeteryPhoneNumber ?? '')
cy.get("input[name='cemeteryLatitude']")
.clear()
.type(cemeteryData.cemeteryLatitude?.toString() ?? '')
cy.get("input[name='cemeteryLongitude']")
.clear()
.type(cemeteryData.cemeteryLongitude?.toString() ?? '')
})
cy.log('Ensure the default city and province are used')
cy.get("input[name='cemeteryCity']").should(
'have.value',
getConfigProperty('settings.cityDefault')
)
cy.get("input[name='cemeteryProvince']").should(
'have.value',
getConfigProperty('settings.provinceDefault')
)
cy.log('Submit the form')
cy.get('#form--cemetery').submit()
cy.wait(1000)
cy.location('pathname')
.should('not.contain', '/new')
.should('contain', '/edit')
cy.fixture('cemetery.json').then((cemeteryData: Cemetery) => {
cy.get("input[name='cemeteryName']").should(
'have.value',
cemeteryData.cemeteryName
)
cy.get("textarea[name='cemeteryDescription']").should(
'have.value',
cemeteryData.cemeteryDescription
)
cy.get("input[name='cemeteryAddress1']").should(
'have.value',
cemeteryData.cemeteryAddress1
)
cy.get("input[name='cemeteryAddress2']").should(
'have.value',
cemeteryData.cemeteryAddress2
)
cy.get("input[name='cemeteryCity']").should(
'have.value',
getConfigProperty('settings.cityDefault')
)
cy.get("input[name='cemeteryProvince']").should(
'have.value',
getConfigProperty('settings.provinceDefault')
)
cy.get("input[name='cemeteryPostalCode']").should(
'have.value',
cemeteryData.cemeteryPostalCode
)
cy.get("input[name='cemeteryPhoneNumber']").should(
'have.value',
cemeteryData.cemeteryPhoneNumber
)
cy.get("input[name='cemeteryLatitude']").should(
'have.value',
cemeteryData.cemeteryLatitude?.toString()
)
cy.get("input[name='cemeteryLongitude']").should(
'have.value',
cemeteryData.cemeteryLongitude?.toString()
)
})
})
})