add tests for time bound creation inside time unit view

This commit is contained in:
juhanikat
2025-08-07 13:31:54 +03:00
parent d65597ee67
commit 73e3ad70b9
3 changed files with 54 additions and 1 deletions
+49
View File
@@ -40,6 +40,55 @@ describe('Creating a time unit', () => {
cy.get('[id=write-button]').should('be.disabled') cy.get('[id=write-button]').should('be.disabled')
}) })
it('with incorrect, newly created bounds does not work', () => {
cy.visit(`/time-unit/new`)
cy.get('[id=tu_display_name-textfield]').type('Testing Time Unit Creation')
cy.get('[id=sequence-tableselection]').first().click()
cy.get('[data-cy=add-button-ALMAAsianlandmammalage]').first().click()
cy.get('[id=low_bnd-tableselection]').click()
cy.get('[data-cy=add-button-11]').first().click()
cy.get('[data-cy=add-new-up-bound-form]').click()
cy.get('[name=b_name]').type('new upper time bound name')
cy.get('[name=b_comment]').type('test comment')
cy.get('[name=age]').type('one')
cy.contains('Save').click()
cy.contains('Value must be a valid number')
cy.get('[name=age]').clear()
cy.get('[name=age]').type('-2')
cy.contains('Save').click()
cy.contains('Value must be a valid number')
cy.get('[name=age]').clear()
cy.get('[name=age]').type('0123')
cy.contains('Save').click()
cy.contains('Value must be a valid number')
cy.get('[name=age]').clear()
cy.get('[name=age]').type('0,5')
cy.contains('Save').click()
cy.contains('Value must be a valid number')
cy.get('[name=age]').clear()
cy.get('[name=age]').type('1')
cy.contains('Save').click()
cy.contains('Value must be a valid number').should('not.exist')
cy.get('[id=write-button]').should('not.be.disabled')
cy.get('[data-cy=add-new-low-bound-form]').click()
cy.get('[name=b_name]').type('new lower time bound name')
cy.get('[name=b_comment]').type('test comment')
cy.get('[name=age]').type('0.5')
cy.contains('Save').click()
cy.contains('Upper Bound: Upper bound age has to be lower than lower bound age')
cy.contains('Lower Bound: Lower bound age has to be higher than upper bound age')
cy.get('[id=write-button]').should('be.disabled')
})
it('with incorrect bounds does not work', () => { it('with incorrect bounds does not work', () => {
cy.visit(`/time-unit/new`) cy.visit(`/time-unit/new`)
cy.get('[id=tu_display_name-textfield]').type('Testing Time Unit Creation') cy.get('[id=tu_display_name-textfield]').type('Testing Time Unit Creation')
@@ -13,12 +13,14 @@ If using for adding new, provide arrayFieldName.
For editing existing row, use existingObject and editAction. For editing existing row, use existingObject and editAction.
*/ */
export const EditingForm = <T extends object, ParentType extends object>({ export const EditingForm = <T extends object, ParentType extends object>({
dataCy,
buttonText, buttonText,
formFields, formFields,
editAction, editAction,
existingObject, existingObject,
arrayFieldName, arrayFieldName,
}: { }: {
dataCy?: string
buttonText: string buttonText: string
formFields: EditingFormField[] formFields: EditingFormField[]
arrayFieldName?: keyof ParentType arrayFieldName?: keyof ParentType
@@ -48,7 +50,7 @@ export const EditingForm = <T extends object, ParentType extends object>({
} }
return ( return (
<EditingModal {...{ buttonText, onSave }}> <EditingModal {...{ dataCy, buttonText, onSave }}>
<Box sx={{ display: 'flex', flexDirection: 'column', gap: '1em' }}> <Box sx={{ display: 'flex', flexDirection: 'column', gap: '1em' }}>
{formFields.map(field => ( {formFields.map(field => (
<TextField <TextField
@@ -82,6 +82,7 @@ export const TimeUnitTab = () => {
{!mode.read && ( {!mode.read && (
<Box display="flex" gap={1} marginBottom={'15px'}> <Box display="flex" gap={1} marginBottom={'15px'}>
<EditingForm<TimeBound, TimeUnitDetailsType> <EditingForm<TimeBound, TimeUnitDetailsType>
dataCy="add-new-up-bound-form"
buttonText="Add new time bound" buttonText="Add new time bound"
formFields={formFields} formFields={formFields}
editAction={(newUpTimeBound: TimeBound) => { editAction={(newUpTimeBound: TimeBound) => {
@@ -105,6 +106,7 @@ export const TimeUnitTab = () => {
{!mode.read && ( {!mode.read && (
<Box display="flex" gap={1} marginBottom={'15px'}> <Box display="flex" gap={1} marginBottom={'15px'}>
<EditingForm<TimeBound, TimeUnitDetailsType> <EditingForm<TimeBound, TimeUnitDetailsType>
dataCy="add-new-low-bound-form"
buttonText="Add new time bound" buttonText="Add new time bound"
formFields={formFields} formFields={formFields}
editAction={(newLowTimeBound: TimeBound) => { editAction={(newLowTimeBound: TimeBound) => {