From 9f0cb7c0c566cdcb6a37b72383317c34f8f5ba7a Mon Sep 17 00:00:00 2001 From: tkleinke Date: Fri, 10 Nov 2023 11:41:44 +0100 Subject: [PATCH] Add e2e test for solving warning for invalid field data via resources view --- desktop/test/e2e/docedit/docedit.page.ts | 6 ++ desktop/test/e2e/warnings/warnings.spec.ts | 72 +++++++++++++++++----- 2 files changed, 63 insertions(+), 15 deletions(-) diff --git a/desktop/test/e2e/docedit/docedit.page.ts b/desktop/test/e2e/docedit/docedit.page.ts index 1f8c94af79..c325117981 100644 --- a/desktop/test/e2e/docedit/docedit.page.ts +++ b/desktop/test/e2e/docedit/docedit.page.ts @@ -153,6 +153,12 @@ export class DoceditPage { } + public static async clickDeleteInvalidFieldDataButton(fieldName: string) { + + return click((await this.getField(fieldName).locator('.delete-invalid-field-data-button'))); + } + + public static async clickLanguageTab(fieldName: string, language: string) { return click((await this.getField(fieldName)).locator('.language-tab-' + language)); diff --git a/desktop/test/e2e/warnings/warnings.spec.ts b/desktop/test/e2e/warnings/warnings.spec.ts index ca06ec76dd..43e5c8f146 100644 --- a/desktop/test/e2e/warnings/warnings.spec.ts +++ b/desktop/test/e2e/warnings/warnings.spec.ts @@ -38,30 +38,31 @@ test.describe('warnings --', () => { }); - async function createMissingIdentifierPrefixWarning(resourceIdentifier: string) { + async function createUnconfiguredFieldWarning(resourceIdentifier: string, fieldName: string) { - await ResourcesPage.performCreateResource(resourceIdentifier, 'place'); + await navigateTo('configuration'); + await createField(fieldName); + + const completeFieldName: string = 'test:' + fieldName; + + await NavbarPage.clickCloseNonResourcesTab(); + await ResourcesPage.performCreateResource(resourceIdentifier, 'place', completeFieldName, 'Text'); await navigateTo('configuration'); - await CategoryPickerPage.clickOpenContextMenu('Place'); - await ConfigurationPage.clickContextMenuEditOption(); - await EditConfigurationPage.typeInIdentifierPrefix('P'); - await EditConfigurationPage.clickConfirm(); + await CategoryPickerPage.clickSelectCategory('Place'); + await ConfigurationPage.clickOpenContextMenuForField(completeFieldName); + await ConfigurationPage.clickContextMenuDeleteOption(); + await ConfigurationPage.clickConfirmFieldDeletionButton(); await ConfigurationPage.save(); await NavbarPage.clickCloseNonResourcesTab(); }; - async function createUnconfiguredFieldWarning(resourceIdentifier: string, fieldName: string) { + async function createInvalidFieldDataWarning(resourceIdentifier: string, fieldName: string) { await navigateTo('configuration'); - await CategoryPickerPage.clickSelectCategory('Place'); - await ConfigurationPage.clickAddFieldButton(); - await AddFieldModalPage.typeInSearchFilterInput(fieldName); - await AddFieldModalPage.clickCreateNewField(); - await EditConfigurationPage.clickConfirm(); - await ConfigurationPage.save(); + await createField(fieldName); const completeFieldName: string = 'test:' + fieldName; @@ -71,14 +72,41 @@ test.describe('warnings --', () => { await navigateTo('configuration'); await CategoryPickerPage.clickSelectCategory('Place'); await ConfigurationPage.clickOpenContextMenuForField(completeFieldName); - await ConfigurationPage.clickContextMenuDeleteOption(); - await ConfigurationPage.clickConfirmFieldDeletionButton(); + await ConfigurationPage.clickContextMenuEditOption(); + await EditConfigurationPage.clickInputTypeSelectOption('int', 'field'); + await EditConfigurationPage.clickConfirm(); await ConfigurationPage.save(); await NavbarPage.clickCloseNonResourcesTab(); }; + async function createMissingIdentifierPrefixWarning(resourceIdentifier: string) { + + await ResourcesPage.performCreateResource(resourceIdentifier, 'place'); + + await navigateTo('configuration'); + await CategoryPickerPage.clickOpenContextMenu('Place'); + await ConfigurationPage.clickContextMenuEditOption(); + await EditConfigurationPage.typeInIdentifierPrefix('P'); + await EditConfigurationPage.clickConfirm(); + await ConfigurationPage.save(); + + await NavbarPage.clickCloseNonResourcesTab(); + }; + + + async function createField(fieldName: string) { + + await CategoryPickerPage.clickSelectCategory('Place'); + await ConfigurationPage.clickAddFieldButton(); + await AddFieldModalPage.typeInSearchFilterInput(fieldName); + await AddFieldModalPage.clickCreateNewField(); + await EditConfigurationPage.clickConfirm(); + await ConfigurationPage.save(); + } + + test('solve single warning for unconfigured field via warnings modal', async () => { await waitForNotExist(await NavbarPage.getWarnings()); @@ -128,6 +156,20 @@ test.describe('warnings --', () => { }); + test('solve warning for invalid field data via resources view', async () => { + + await waitForNotExist(await NavbarPage.getWarnings()); + await createInvalidFieldDataWarning('1', 'field'); + expect(await NavbarPage.getNumberOfWarnings()).toBe('1'); + + await ResourcesPage.openEditByDoubleClickResource('1'); + await DoceditPage.clickDeleteInvalidFieldDataButton('test:field'); + await DoceditPage.clickSaveDocument(); + + await waitForNotExist(await NavbarPage.getWarnings()); + }); + + test('solve warning for missing identifier prefix via resources view', async () => { await waitForNotExist(await NavbarPage.getWarnings());