From ea783bbc417d277b7ea5d086438cd52a1ef225a9 Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Thu, 13 Oct 2022 19:29:00 +0200 Subject: [PATCH 01/22] V11: fix failing acceptance tests (#13204) * Fix macro in RTE test * Update test-helper version Co-authored-by: Zeegaan --- .../Umbraco.Tests.AcceptanceTest/package-lock.json | 14 +++++++------- tests/Umbraco.Tests.AcceptanceTest/package.json | 2 +- .../tests/DefaultConfig/Content/content.spec.ts | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json index d9d26331d6..5d3837949a 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json +++ b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json @@ -8,7 +8,7 @@ "hasInstallScript": true, "dependencies": { "@umbraco/json-models-builders": "^1.0.0", - "@umbraco/playwright-testhelpers": "^1.0.3", + "@umbraco/playwright-testhelpers": "^1.0.4", "camelize": "^1.0.0", "dotenv": "^16.0.2", "faker": "^4.1.0", @@ -101,9 +101,9 @@ } }, "node_modules/@umbraco/playwright-testhelpers": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.3.tgz", - "integrity": "sha512-PmUnIaoKitxAC4JWSiPEOPg74Ypt6DNLjUQEATV0n9yVbw5aFQhql+KrdN4F30gFNr1c6Gw6I5iDXzNmq5/zfg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.4.tgz", + "integrity": "sha512-OBAUzscj+v1w0TwUcWAUeUou6t1wz/7ZXDhMPq6gL8jzAXSFobWRShfC4zqCiWoGLZ8721UN55Q01WFyWiuOSg==", "dependencies": { "@umbraco/json-models-builders": "^1.0.0", "camelize": "^1.0.0", @@ -906,9 +906,9 @@ } }, "@umbraco/playwright-testhelpers": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.3.tgz", - "integrity": "sha512-PmUnIaoKitxAC4JWSiPEOPg74Ypt6DNLjUQEATV0n9yVbw5aFQhql+KrdN4F30gFNr1c6Gw6I5iDXzNmq5/zfg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.4.tgz", + "integrity": "sha512-OBAUzscj+v1w0TwUcWAUeUou6t1wz/7ZXDhMPq6gL8jzAXSFobWRShfC4zqCiWoGLZ8721UN55Q01WFyWiuOSg==", "requires": { "@umbraco/json-models-builders": "^1.0.0", "camelize": "^1.0.0", diff --git a/tests/Umbraco.Tests.AcceptanceTest/package.json b/tests/Umbraco.Tests.AcceptanceTest/package.json index 7464e119e0..44aa367595 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/package.json +++ b/tests/Umbraco.Tests.AcceptanceTest/package.json @@ -19,7 +19,7 @@ }, "dependencies": { "@umbraco/json-models-builders": "^1.0.0", - "@umbraco/playwright-testhelpers": "^1.0.3", + "@umbraco/playwright-testhelpers": "^1.0.4", "camelize": "^1.0.0", "faker": "^4.1.0", "form-data": "^4.0.0", diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/content.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/content.spec.ts index ea95f45dc3..a93d263107 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/content.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/content.spec.ts @@ -624,7 +624,7 @@ test.describe('Content tests', () => { await umbracoUi.clickElement(umbracoUi.getTreeItem("content", [viewMacroName])); // Insert macro - await page.locator('#mceu_13-button').click(); + await page.locator('[title="Insert macro"]').click(); await page.locator('.umb-card-grid-item', {hasText: viewMacroName}).click(); // cy.get('.umb-card-grid-item').contains(viewMacroName).click(); @@ -633,7 +633,7 @@ test.describe('Content tests', () => { await umbracoUi.isSuccessNotificationVisible(); // Ensure that the view gets rendered correctly - const expected = `

Acceptance test

 

`; + const expected = `

 

Acceptance test

 

`; await expect(await umbracoApi.content.verifyRenderedContent('/', expected, true)).toBeTruthy(); // Cleanup From 58fb223a45840052adcf1250b7e1e5f0ae387a80 Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Fri, 14 Oct 2022 08:48:20 +0200 Subject: [PATCH 02/22] Close success notifications after they pop up --- .../ModelsBuilder/modelsbuilder.spec.ts | 282 ++++++++++++++++++ 1 file changed, 282 insertions(+) create mode 100644 tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/ModelsBuilder/modelsbuilder.spec.ts diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/ModelsBuilder/modelsbuilder.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/ModelsBuilder/modelsbuilder.spec.ts new file mode 100644 index 0000000000..43adbc21fe --- /dev/null +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/ModelsBuilder/modelsbuilder.spec.ts @@ -0,0 +1,282 @@ +import {AliasHelper, ApiHelpers, ConstantHelper, test, UiHelpers} from '@umbraco/playwright-testhelpers'; +import { + ContentBuilder, + DocumentTypeBuilder, +} from "@umbraco/json-models-builders"; + +test.describe('Modelsbuilder tests', () => { + + test.beforeEach(async ({page, umbracoApi}) => { + await umbracoApi.login(); + }); + + test('Can create and render content', async ({page, umbracoApi, umbracoUi}) => { + const docTypeName = "TestDocument"; + const docTypeAlias = AliasHelper.toAlias(docTypeName); + const contentName = "Home"; + + await umbracoApi.content.deleteAllContent(); + await umbracoApi.documentTypes.ensureNameNotExists(docTypeName); + await umbracoApi.templates.ensureNameNotExists(docTypeName); + + const docType = new DocumentTypeBuilder() + .withName(docTypeName) + .withAlias(docTypeAlias) + .withAllowAsRoot(true) + .withDefaultTemplate(docTypeAlias) + .addTab() + .withName("Content") + .addTextBoxProperty() + .withAlias("title") + .done() + .done() + .build(); + + await umbracoApi.documentTypes.save(docType); + await umbracoApi.templates.edit(docTypeName, `@using Umbraco.Cms.Web.Common.PublishedModels; +@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage +@using ContentModels = Umbraco.Cms.Web.Common.PublishedModels; +@{ +\tLayout = null; +} + +

@Model.Title

`); + + // Time to manually create the content + await umbracoUi.createContentWithDocumentType(docTypeName); + await umbracoUi.setEditorHeaderName(contentName); + // Fortunately for us the input field of a text box has the alias of the property as an id :) + await page.locator("#title").type("Hello world!") + await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.saveAndPublish)); + await umbracoUi.isSuccessNotificationVisible(); + // Ensure that we can render it on the frontend = we can compile the models and views + await umbracoApi.content.verifyRenderedContent("/", "

Hello world!

", true); + + await umbracoApi.content.deleteAllContent(); + await umbracoApi.documentTypes.ensureNameNotExists(docTypeName); + await umbracoApi.templates.ensureNameNotExists(docTypeName); + }); + + test('Can update document type without updating view', async ({page, umbracoApi, umbracoUi}) => { + const docTypeName = "TestDocument"; + const docTypeAlias = AliasHelper.toAlias(docTypeName); + const propertyAlias = "title"; + const propertyValue = "Hello world!" + + await umbracoApi.content.deleteAllContent(); + await umbracoApi.documentTypes.ensureNameNotExists(docTypeName); + await umbracoApi.templates.ensureNameNotExists(docTypeName); + + const docType = new DocumentTypeBuilder() + .withName(docTypeName) + .withAlias(docTypeAlias) + .withAllowAsRoot(true) + .withDefaultTemplate(docTypeAlias) + .addTab() + .withName("Content") + .addTextBoxProperty() + .withAlias(propertyAlias) + .done() + .done() + .build(); + + const savedDocType = await umbracoApi.documentTypes.save(docType); + await umbracoApi.templates.edit(docTypeName, `@using Umbraco.Cms.Web.Common.PublishedModels; +@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage +@using ContentModels = Umbraco.Cms.Web.Common.PublishedModels; +@{ +\tLayout = null; +} + +

@Model.Title

`); + + const content = new ContentBuilder() + .withContentTypeAlias(savedDocType["alias"]) + .withAction("publishNew") + .addVariant() + .withName("Home") + .withSave(true) + .withPublish(true) + .addProperty() + .withAlias(propertyAlias) + .withValue(propertyValue) + .done() + .done() + .build() + + await umbracoApi.content.save(content); + + // Navigate to the document type + await umbracoUi.goToSection(ConstantHelper.sections.settings); + await umbracoUi.clickElement(umbracoUi.getTreeItem("settings", ["Document Types", docTypeName])); + // Add a new property (this might cause a version error if the viewcache is not cleared, hence this test + await page.locator('.umb-box-content >> [data-element="property-add"]').click(); + await page.locator('[data-element="property-name"]').type("Second Title"); + await page.locator('[data-element="editor-add"]').click(); + await page.locator('[input-id="datatype-search"]').type("Textstring"); + await page.locator('.umb-card-grid >> [title="Textstring"]').click(); + await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.submit)); + await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.save)); + await umbracoUi.isSuccessNotificationVisible(); + + // Now that the content is updated and the models are rebuilt, ensure that we can still render the frontend. + await umbracoApi.content.verifyRenderedContent("/", "

" + propertyValue + "

", true) + + await umbracoApi.content.deleteAllContent(); + await umbracoApi.documentTypes.ensureNameNotExists(docTypeName); + await umbracoApi.templates.ensureNameNotExists(docTypeName); + }); + + test('Can update view without updating document type', async ({page, umbracoApi, umbracoUi}) => { + const docTypeName = "TestDocument"; + const docTypeAlias = AliasHelper.toAlias(docTypeName); + const propertyAlias = "title"; + const propertyValue = "Hello world!" + + await umbracoApi.content.deleteAllContent(); + await umbracoApi.documentTypes.ensureNameNotExists(docTypeName); + await umbracoApi.templates.ensureNameNotExists(docTypeName); + + const docType = new DocumentTypeBuilder() + .withName(docTypeName) + .withAlias(docTypeAlias) + .withAllowAsRoot(true) + .withDefaultTemplate(docTypeAlias) + .addTab() + .withName("Content") + .addTextBoxProperty() + .withAlias(propertyAlias) + .done() + .done() + .build(); + + const savedDocType = await umbracoApi.documentTypes.save(docType); + await umbracoApi.templates.edit(docTypeName, `@using Umbraco.Cms.Web.Common.PublishedModels; +@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage +@using ContentModels = Umbraco.Cms.Web.Common.PublishedModels; +@{ +\tLayout = null; +} + +

@Model.Title

`); + + const content = new ContentBuilder() + .withContentTypeAlias(savedDocType["alias"]) + .withAction("publishNew") + .addVariant() + .withName("Home") + .withSave(true) + .withPublish(true) + .addProperty() + .withAlias(propertyAlias) + .withValue(propertyValue) + .done() + .done() + .build() + + await umbracoApi.content.save(content); + + // Navigate to the document type + await umbracoUi.goToSection(ConstantHelper.sections.settings); + await umbracoUi.clickElement(umbracoUi.getTreeItem("settings", ["templates", docTypeName])); + const editor = await page.locator('.ace_content'); + await editor.click(); + // We only have to type out the opening tag, the editor adds the closing tag automatically. + await editor.type("

Edited") + await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.save)) + + await umbracoUi.isSuccessNotificationVisible(); + await umbracoApi.content.verifyRenderedContent("/", "

" + propertyValue + "

Edited

", true) + + await umbracoApi.content.deleteAllContent(); + await umbracoApi.documentTypes.ensureNameNotExists(docTypeName); + await umbracoApi.templates.ensureNameNotExists(docTypeName); + }); + + test('Can update view and document type', async ({page, umbracoApi, umbracoUi}) => { + const docTypeName = "TestDocument"; + const docTypeAlias = AliasHelper.toAlias(docTypeName); + const propertyAlias = "title"; + const propertyValue = "Hello world!" + const contentName = "Home"; + + await umbracoApi.content.deleteAllContent(); + await umbracoApi.documentTypes.ensureNameNotExists(docTypeName); + await umbracoApi.templates.ensureNameNotExists(docTypeName); + + const docType = new DocumentTypeBuilder() + .withName(docTypeName) + .withAlias(docTypeAlias) + .withAllowAsRoot(true) + .withDefaultTemplate(docTypeAlias) + .addTab() + .withName("Content") + .addTextBoxProperty() + .withAlias(propertyAlias) + .done() + .done() + .build(); + + const savedDocType = await umbracoApi.documentTypes.save(docType); + await umbracoApi.templates.edit(docTypeName, `@using Umbraco.Cms.Web.Common.PublishedModels; +@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage +@using ContentModels = Umbraco.Cms.Web.Common.PublishedModels; +@{ +\tLayout = null; +} + +

@Model.Title

`); + + const content = new ContentBuilder() + .withContentTypeAlias(savedDocType["alias"]) + .withAction("publishNew") + .addVariant() + .withName(contentName) + .withSave(true) + .withPublish(true) + .addProperty() + .withAlias(propertyAlias) + .withValue(propertyValue) + .done() + .done() + .build() + + await umbracoApi.content.save(content); + + // Navigate to the document type + await umbracoUi.goToSection(ConstantHelper.sections.settings); + await umbracoUi.clickElement(umbracoUi.getTreeItem("settings", ["Document Types", docTypeName])); + // Add a new property (this might cause a version error if the viewcache is not cleared, hence this test + await page.locator('.umb-box-content >> [data-element="property-add"]').click(); + await page.locator('[data-element="property-name"]').type("Bod"); + await page.locator('[data-element="editor-add"]').click(); + await page.locator('[input-id="datatype-search"]').type("Textstring"); + await page.locator('.umb-card-grid >> [title="Textstring"]').click(); + await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.submit)); + await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.save)); + await umbracoUi.isSuccessNotificationVisible(); + await page.locator('span:has-text("×")').click(); + + // Update the template + await umbracoUi.clickElement(umbracoUi.getTreeItem("settings", ["templates", docTypeName])); + const editor = await page.locator('.ace_content'); + await editor.click(); + // We only have to type out the opening tag, the editor adds the closing tag automatically. + await editor.type("

@Model.Bod") + await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.save)) + await umbracoUi.isSuccessNotificationVisible(); + await page.locator('span:has-text("×")').click(); + + // Navigate to the content section and update the content + await umbracoUi.goToSection(ConstantHelper.sections.content); + await umbracoUi.refreshContentTree(); + await umbracoUi.clickElement(umbracoUi.getTreeItem("content", [contentName])); + await page.locator("#bod").type("Fancy body text"); + + await umbracoApi.content.verifyRenderedContent("/", "

" + propertyValue + "

Fancy body text

", true); + + await umbracoApi.content.deleteAllContent(); + await umbracoApi.documentTypes.ensureNameNotExists(docTypeName); + await umbracoApi.templates.ensureNameNotExists(docTypeName) + }); +}); From c3964c218344f97d8c4367a88432f922833f7732 Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Fri, 14 Oct 2022 09:06:12 +0200 Subject: [PATCH 03/22] Update tests to close success notifications --- tests/Umbraco.Tests.AcceptanceTest/playwright.config.ts | 2 +- .../tests/DefaultConfig/Content/content.spec.ts | 1 + .../tests/DefaultConfig/DataTypes/dataTypes.spec.ts | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/playwright.config.ts b/tests/Umbraco.Tests.AcceptanceTest/playwright.config.ts index f5c9bf5fde..88de91b8e7 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/playwright.config.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/playwright.config.ts @@ -21,7 +21,7 @@ const config: PlaywrightTestConfig = { /* Fail the build on CI if you accidentally left test.only in the source code. */ forbidOnly: !!process.env.CI, /* Retry on CI only */ - retries: process.env.CI ? 5 : 2, + retries: process.env.CI ? 5 : 0, // We don't want to run parallel, as tests might differ in state workers: 1, /* Reporter to use. See https://playwright.dev/docs/test-reporters */ diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/content.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/content.spec.ts index a93d263107..6362a583d9 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/content.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/content.spec.ts @@ -290,6 +290,7 @@ test.describe('Content tests', () => { await umbracoUi.setEditorHeaderName(newNodeName); await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.saveAndPublish)); await umbracoUi.isSuccessNotificationVisible(); + await page.locator('span:has-text("×")').click(); await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.rollback)); // Not a very nice selector, but there's sadly no alternative :( diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataTypes/dataTypes.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataTypes/dataTypes.spec.ts index 1da0c016f0..59ff5b7a7f 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataTypes/dataTypes.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataTypes/dataTypes.spec.ts @@ -48,6 +48,7 @@ test.describe('DataTypes', () => { // Save await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.saveAndPublish)); await umbracoUi.isSuccessNotificationVisible(); + await page.locator('span:has-text("×")').click(); // Assert const expected = `

Lorem ipsum dolor sit amet

`; From d5278ca9feda69c0bbbf79e9a2220e44bc2b4e45 Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Fri, 14 Oct 2022 09:09:49 +0200 Subject: [PATCH 04/22] Dont commit playwright.config.ts --- tests/Umbraco.Tests.AcceptanceTest/playwright.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/playwright.config.ts b/tests/Umbraco.Tests.AcceptanceTest/playwright.config.ts index 88de91b8e7..f5c9bf5fde 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/playwright.config.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/playwright.config.ts @@ -21,7 +21,7 @@ const config: PlaywrightTestConfig = { /* Fail the build on CI if you accidentally left test.only in the source code. */ forbidOnly: !!process.env.CI, /* Retry on CI only */ - retries: process.env.CI ? 5 : 0, + retries: process.env.CI ? 5 : 2, // We don't want to run parallel, as tests might differ in state workers: 1, /* Reporter to use. See https://playwright.dev/docs/test-reporters */ From c071fc03baa9f8e1b04697abb36ddfdd3a9990d1 Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Fri, 14 Oct 2022 09:51:33 +0200 Subject: [PATCH 05/22] Update testhelpers version --- .../Umbraco.Tests.AcceptanceTest/package-lock.json | 14 +++++++------- tests/Umbraco.Tests.AcceptanceTest/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json index 5d3837949a..dec235bb50 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json +++ b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json @@ -8,7 +8,7 @@ "hasInstallScript": true, "dependencies": { "@umbraco/json-models-builders": "^1.0.0", - "@umbraco/playwright-testhelpers": "^1.0.4", + "@umbraco/playwright-testhelpers": "^1.0.5", "camelize": "^1.0.0", "dotenv": "^16.0.2", "faker": "^4.1.0", @@ -101,9 +101,9 @@ } }, "node_modules/@umbraco/playwright-testhelpers": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.4.tgz", - "integrity": "sha512-OBAUzscj+v1w0TwUcWAUeUou6t1wz/7ZXDhMPq6gL8jzAXSFobWRShfC4zqCiWoGLZ8721UN55Q01WFyWiuOSg==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.5.tgz", + "integrity": "sha512-OGV83Clpj3OQgPks3uczcL1JSVW8eF16nRtTKcBSNeg4QaN/021DbluqoVOYtlFYAw3NtOoorAVIGCDhxKECOw==", "dependencies": { "@umbraco/json-models-builders": "^1.0.0", "camelize": "^1.0.0", @@ -906,9 +906,9 @@ } }, "@umbraco/playwright-testhelpers": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.4.tgz", - "integrity": "sha512-OBAUzscj+v1w0TwUcWAUeUou6t1wz/7ZXDhMPq6gL8jzAXSFobWRShfC4zqCiWoGLZ8721UN55Q01WFyWiuOSg==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.5.tgz", + "integrity": "sha512-OGV83Clpj3OQgPks3uczcL1JSVW8eF16nRtTKcBSNeg4QaN/021DbluqoVOYtlFYAw3NtOoorAVIGCDhxKECOw==", "requires": { "@umbraco/json-models-builders": "^1.0.0", "camelize": "^1.0.0", diff --git a/tests/Umbraco.Tests.AcceptanceTest/package.json b/tests/Umbraco.Tests.AcceptanceTest/package.json index 44aa367595..812e448a70 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/package.json +++ b/tests/Umbraco.Tests.AcceptanceTest/package.json @@ -19,7 +19,7 @@ }, "dependencies": { "@umbraco/json-models-builders": "^1.0.0", - "@umbraco/playwright-testhelpers": "^1.0.4", + "@umbraco/playwright-testhelpers": "^1.0.5", "camelize": "^1.0.0", "faker": "^4.1.0", "form-data": "^4.0.0", From f8f9646e62e2c61b7ff9118b617c27812f1a2187 Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Fri, 14 Oct 2022 09:51:45 +0200 Subject: [PATCH 06/22] Add proper expect to download button --- .../tests/DefaultConfig/Packages/packages.spec.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Packages/packages.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Packages/packages.spec.ts index ba91e6ba82..86eff05eec 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Packages/packages.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Packages/packages.spec.ts @@ -88,7 +88,8 @@ test.describe('Packages', () => { // Navigate pack to packages and Assert the file is created // Waits until the button download is visible - await page.locator('[label-key="general_download"]').isVisible(); + await expect(await page.locator('[label-key="general_download"]')).toBeVisible({timeout: 60000}); + // Checks if the packages was created const doesExist = await umbracoApi.packages.doesNameExist(packageName); await expect(doesExist).toBe(true); From 84eecf5ee4923d3a00e717ecdd522192bafe230b Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Fri, 14 Oct 2022 10:28:21 +0200 Subject: [PATCH 07/22] Close success notification --- .../tests/DefaultConfig/DataTypes/dataTypes.spec.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataTypes/dataTypes.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataTypes/dataTypes.spec.ts index 59ff5b7a7f..ba6637c693 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataTypes/dataTypes.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataTypes/dataTypes.spec.ts @@ -159,6 +159,7 @@ test.describe('DataTypes', () => { await umbracoUi.setEditorHeaderName('UrlPickerContent'); await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.saveAndPublish)); await umbracoUi.isSuccessNotificationVisible(); + await page.locator('span:has-text("×")').click(); await page.locator('.umb-node-preview-add').click(); // Should really try and find a better way to do this, but umbracoTreeItem tries to click the content pane in the background From cf68d499efaf8f937635d3e0a0fb01b87211a4f1 Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Fri, 14 Oct 2022 23:58:47 +0200 Subject: [PATCH 08/22] Assert that the item is loaded before trying to click rollback --- .../tests/DefaultConfig/Content/content.spec.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/content.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/content.spec.ts index 6362a583d9..c2b9be27aa 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/content.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/content.spec.ts @@ -295,7 +295,9 @@ test.describe('Content tests', () => { await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.rollback)); // Not a very nice selector, but there's sadly no alternative :( await page.locator('.-selectable.cursor-pointer').first().click(); - // Sadly can't use the button by label key here since there's another one in the DOM + // Sadly can't use the button by label key here since there's another one in the DOM + const helpText = await page.locator('[key="rollback_diffHelp"]'); + await expect(helpText).toBeVisible(); await page.locator('[action="vm.rollback()"]').click(); await umbracoUi.refreshContentTree(); @@ -664,10 +666,10 @@ test.describe('Content tests', () => { .build(); const alias = AliasHelper.toAlias(name); - + // Save grid and get the ID const dataType = await umbracoApi.dataTypes.save(grid) - + // Create a document type using the data type const docType = new DocumentTypeBuilder() .withName(name) @@ -691,7 +693,7 @@ test.describe('Content tests', () => { .build(); await umbracoApi.content.save(contentNode); - + // Ugly wait but we have to wait for cache to rebuild await page.waitForTimeout(1000); @@ -720,7 +722,7 @@ test.describe('Content tests', () => { // Save and publish await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.saveAndPublish)); await umbracoUi.isSuccessNotificationVisible(); - + const expected = `
From 3f07612306e188cbe00e1ce78c0e97c6b91655ce Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Mon, 17 Oct 2022 10:37:40 +0200 Subject: [PATCH 09/22] Update playwright-testhelpers version --- .../Umbraco.Tests.AcceptanceTest/package-lock.json | 14 +++++++------- tests/Umbraco.Tests.AcceptanceTest/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json index dec235bb50..61695fb98f 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json +++ b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json @@ -8,7 +8,7 @@ "hasInstallScript": true, "dependencies": { "@umbraco/json-models-builders": "^1.0.0", - "@umbraco/playwright-testhelpers": "^1.0.5", + "@umbraco/playwright-testhelpers": "^1.0.6", "camelize": "^1.0.0", "dotenv": "^16.0.2", "faker": "^4.1.0", @@ -101,9 +101,9 @@ } }, "node_modules/@umbraco/playwright-testhelpers": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.5.tgz", - "integrity": "sha512-OGV83Clpj3OQgPks3uczcL1JSVW8eF16nRtTKcBSNeg4QaN/021DbluqoVOYtlFYAw3NtOoorAVIGCDhxKECOw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.6.tgz", + "integrity": "sha512-KHc56WSsyLhqBcdaxSKYwjVkTuE9dgIVoc7ixwYUMLxxP2wlPxcn/gcYA7xa+mLVKgXmQYaP2zoA317j7oBz/Q==", "dependencies": { "@umbraco/json-models-builders": "^1.0.0", "camelize": "^1.0.0", @@ -906,9 +906,9 @@ } }, "@umbraco/playwright-testhelpers": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.5.tgz", - "integrity": "sha512-OGV83Clpj3OQgPks3uczcL1JSVW8eF16nRtTKcBSNeg4QaN/021DbluqoVOYtlFYAw3NtOoorAVIGCDhxKECOw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.6.tgz", + "integrity": "sha512-KHc56WSsyLhqBcdaxSKYwjVkTuE9dgIVoc7ixwYUMLxxP2wlPxcn/gcYA7xa+mLVKgXmQYaP2zoA317j7oBz/Q==", "requires": { "@umbraco/json-models-builders": "^1.0.0", "camelize": "^1.0.0", diff --git a/tests/Umbraco.Tests.AcceptanceTest/package.json b/tests/Umbraco.Tests.AcceptanceTest/package.json index 812e448a70..0b067d6aa2 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/package.json +++ b/tests/Umbraco.Tests.AcceptanceTest/package.json @@ -19,7 +19,7 @@ }, "dependencies": { "@umbraco/json-models-builders": "^1.0.0", - "@umbraco/playwright-testhelpers": "^1.0.5", + "@umbraco/playwright-testhelpers": "^1.0.6", "camelize": "^1.0.0", "faker": "^4.1.0", "form-data": "^4.0.0", From 477f4724c72bce04cd147a1c0f95b82f0c936829 Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Mon, 17 Oct 2022 11:10:05 +0200 Subject: [PATCH 10/22] Dont remove whitespace --- .../tests/DefaultConfig/DataTypes/dataTypes.spec.ts | 4 ++-- .../tests/DefaultConfig/ModelsBuilder/modelsbuilder.spec.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataTypes/dataTypes.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataTypes/dataTypes.spec.ts index ba6637c693..417ddb410f 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataTypes/dataTypes.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataTypes/dataTypes.spec.ts @@ -65,7 +65,7 @@ test.describe('DataTypes', () => { // Assert const expected2 = '

Lorem ipsum dolor sit amet

'; - await expect(await umbracoApi.content.verifyRenderedContent('/', expected2, true)).toBeTruthy(); + await expect(await umbracoApi.content.verifyRenderedContent('/', expected2)).toBeTruthy(); // Clean await umbracoApi.documentTypes.ensureNameNotExists(name); @@ -176,7 +176,7 @@ test.describe('DataTypes', () => { // Testing if the edits match the expected results const expected = 'UrlPickerContent'; - await expect(await umbracoApi.content.verifyRenderedContent('/', expected, true)).toBeTruthy(); + await expect(await umbracoApi.content.verifyRenderedContent('/', expected)).toBeTruthy(); // Clean await umbracoApi.documentTypes.ensureNameNotExists(urlPickerDocTypeName); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/ModelsBuilder/modelsbuilder.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/ModelsBuilder/modelsbuilder.spec.ts index 43adbc21fe..f97cf3eb4b 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/ModelsBuilder/modelsbuilder.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/ModelsBuilder/modelsbuilder.spec.ts @@ -50,7 +50,7 @@ test.describe('Modelsbuilder tests', () => { await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.saveAndPublish)); await umbracoUi.isSuccessNotificationVisible(); // Ensure that we can render it on the frontend = we can compile the models and views - await umbracoApi.content.verifyRenderedContent("/", "

Hello world!

", true); + await umbracoApi.content.verifyRenderedContent("/", "

Hello world!

"); await umbracoApi.content.deleteAllContent(); await umbracoApi.documentTypes.ensureNameNotExists(docTypeName); From 01b24e238c1c2354240366433d7150c59dbbbb7e Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Mon, 17 Oct 2022 12:13:55 +0200 Subject: [PATCH 11/22] Update test-helpers version --- .../Umbraco.Tests.AcceptanceTest/package-lock.json | 14 +++++++------- tests/Umbraco.Tests.AcceptanceTest/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json index 61695fb98f..afdceb5d91 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json +++ b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json @@ -8,7 +8,7 @@ "hasInstallScript": true, "dependencies": { "@umbraco/json-models-builders": "^1.0.0", - "@umbraco/playwright-testhelpers": "^1.0.6", + "@umbraco/playwright-testhelpers": "^1.0.7", "camelize": "^1.0.0", "dotenv": "^16.0.2", "faker": "^4.1.0", @@ -101,9 +101,9 @@ } }, "node_modules/@umbraco/playwright-testhelpers": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.6.tgz", - "integrity": "sha512-KHc56WSsyLhqBcdaxSKYwjVkTuE9dgIVoc7ixwYUMLxxP2wlPxcn/gcYA7xa+mLVKgXmQYaP2zoA317j7oBz/Q==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.7.tgz", + "integrity": "sha512-6kv4w5cshC2WjcD6+WS/c6OETC7nM1G6W2oopl7oHE/JUWGqftulDsq9ZDFYDVn+4q+Edcf6griu7Y1vdhiKtQ==", "dependencies": { "@umbraco/json-models-builders": "^1.0.0", "camelize": "^1.0.0", @@ -906,9 +906,9 @@ } }, "@umbraco/playwright-testhelpers": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.6.tgz", - "integrity": "sha512-KHc56WSsyLhqBcdaxSKYwjVkTuE9dgIVoc7ixwYUMLxxP2wlPxcn/gcYA7xa+mLVKgXmQYaP2zoA317j7oBz/Q==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.7.tgz", + "integrity": "sha512-6kv4w5cshC2WjcD6+WS/c6OETC7nM1G6W2oopl7oHE/JUWGqftulDsq9ZDFYDVn+4q+Edcf6griu7Y1vdhiKtQ==", "requires": { "@umbraco/json-models-builders": "^1.0.0", "camelize": "^1.0.0", diff --git a/tests/Umbraco.Tests.AcceptanceTest/package.json b/tests/Umbraco.Tests.AcceptanceTest/package.json index 0b067d6aa2..8624a83769 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/package.json +++ b/tests/Umbraco.Tests.AcceptanceTest/package.json @@ -19,7 +19,7 @@ }, "dependencies": { "@umbraco/json-models-builders": "^1.0.0", - "@umbraco/playwright-testhelpers": "^1.0.6", + "@umbraco/playwright-testhelpers": "^1.0.7", "camelize": "^1.0.0", "faker": "^4.1.0", "form-data": "^4.0.0", From 17de2ff98e24ff3a3fc17441f1e1e7a1de3c15c0 Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Mon, 17 Oct 2022 12:17:31 +0200 Subject: [PATCH 12/22] Bumb testhelpers version --- .../Umbraco.Tests.AcceptanceTest/package-lock.json | 14 +++++++------- tests/Umbraco.Tests.AcceptanceTest/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json index afdceb5d91..97a7c145fe 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json +++ b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json @@ -8,7 +8,7 @@ "hasInstallScript": true, "dependencies": { "@umbraco/json-models-builders": "^1.0.0", - "@umbraco/playwright-testhelpers": "^1.0.7", + "@umbraco/playwright-testhelpers": "^1.0.8", "camelize": "^1.0.0", "dotenv": "^16.0.2", "faker": "^4.1.0", @@ -101,9 +101,9 @@ } }, "node_modules/@umbraco/playwright-testhelpers": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.7.tgz", - "integrity": "sha512-6kv4w5cshC2WjcD6+WS/c6OETC7nM1G6W2oopl7oHE/JUWGqftulDsq9ZDFYDVn+4q+Edcf6griu7Y1vdhiKtQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.8.tgz", + "integrity": "sha512-zzwxgJGmQQckF3pi4EQPeeUxGfXRDMefK2LjfDfQHesaRMBoTf4ah73w4nAOKuoREuE1yZIDwf7bzz3pNOEXiw==", "dependencies": { "@umbraco/json-models-builders": "^1.0.0", "camelize": "^1.0.0", @@ -906,9 +906,9 @@ } }, "@umbraco/playwright-testhelpers": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.7.tgz", - "integrity": "sha512-6kv4w5cshC2WjcD6+WS/c6OETC7nM1G6W2oopl7oHE/JUWGqftulDsq9ZDFYDVn+4q+Edcf6griu7Y1vdhiKtQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.8.tgz", + "integrity": "sha512-zzwxgJGmQQckF3pi4EQPeeUxGfXRDMefK2LjfDfQHesaRMBoTf4ah73w4nAOKuoREuE1yZIDwf7bzz3pNOEXiw==", "requires": { "@umbraco/json-models-builders": "^1.0.0", "camelize": "^1.0.0", diff --git a/tests/Umbraco.Tests.AcceptanceTest/package.json b/tests/Umbraco.Tests.AcceptanceTest/package.json index 8624a83769..30edac0506 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/package.json +++ b/tests/Umbraco.Tests.AcceptanceTest/package.json @@ -19,7 +19,7 @@ }, "dependencies": { "@umbraco/json-models-builders": "^1.0.0", - "@umbraco/playwright-testhelpers": "^1.0.7", + "@umbraco/playwright-testhelpers": "^1.0.8", "camelize": "^1.0.0", "faker": "^4.1.0", "form-data": "^4.0.0", From fff2b54203354154135be39cbf2408618c511d85 Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Mon, 17 Oct 2022 13:01:54 +0200 Subject: [PATCH 13/22] Remove whitespace from response --- .../tests/DefaultConfig/DataTypes/dataTypes.spec.ts | 4 ++-- .../tests/DefaultConfig/ModelsBuilder/modelsbuilder.spec.ts | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataTypes/dataTypes.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataTypes/dataTypes.spec.ts index 417ddb410f..ba6637c693 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataTypes/dataTypes.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataTypes/dataTypes.spec.ts @@ -65,7 +65,7 @@ test.describe('DataTypes', () => { // Assert const expected2 = '

Lorem ipsum dolor sit amet

'; - await expect(await umbracoApi.content.verifyRenderedContent('/', expected2)).toBeTruthy(); + await expect(await umbracoApi.content.verifyRenderedContent('/', expected2, true)).toBeTruthy(); // Clean await umbracoApi.documentTypes.ensureNameNotExists(name); @@ -176,7 +176,7 @@ test.describe('DataTypes', () => { // Testing if the edits match the expected results const expected = 'UrlPickerContent'; - await expect(await umbracoApi.content.verifyRenderedContent('/', expected)).toBeTruthy(); + await expect(await umbracoApi.content.verifyRenderedContent('/', expected, true)).toBeTruthy(); // Clean await umbracoApi.documentTypes.ensureNameNotExists(urlPickerDocTypeName); diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/ModelsBuilder/modelsbuilder.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/ModelsBuilder/modelsbuilder.spec.ts index f97cf3eb4b..ada1773bd8 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/ModelsBuilder/modelsbuilder.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/ModelsBuilder/modelsbuilder.spec.ts @@ -50,7 +50,7 @@ test.describe('Modelsbuilder tests', () => { await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.saveAndPublish)); await umbracoUi.isSuccessNotificationVisible(); // Ensure that we can render it on the frontend = we can compile the models and views - await umbracoApi.content.verifyRenderedContent("/", "

Hello world!

"); + await umbracoApi.content.verifyRenderedContent("/", "

Hello world!

", true); await umbracoApi.content.deleteAllContent(); await umbracoApi.documentTypes.ensureNameNotExists(docTypeName); @@ -243,6 +243,7 @@ test.describe('Modelsbuilder tests', () => { await umbracoApi.content.save(content); + await page.pause(); // Navigate to the document type await umbracoUi.goToSection(ConstantHelper.sections.settings); await umbracoUi.clickElement(umbracoUi.getTreeItem("settings", ["Document Types", docTypeName])); @@ -272,6 +273,7 @@ test.describe('Modelsbuilder tests', () => { await umbracoUi.refreshContentTree(); await umbracoUi.clickElement(umbracoUi.getTreeItem("content", [contentName])); await page.locator("#bod").type("Fancy body text"); + await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.saveAndPublish)) await umbracoApi.content.verifyRenderedContent("/", "

" + propertyValue + "

Fancy body text

", true); From e8456e36b246cd7515ff5057845b2b57b5bf342a Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Mon, 17 Oct 2022 14:29:03 +0200 Subject: [PATCH 14/22] Bumb testhelpers package --- .../Umbraco.Tests.AcceptanceTest/package-lock.json | 14 +++++++------- tests/Umbraco.Tests.AcceptanceTest/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json index 97a7c145fe..971d3b2534 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json +++ b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json @@ -8,7 +8,7 @@ "hasInstallScript": true, "dependencies": { "@umbraco/json-models-builders": "^1.0.0", - "@umbraco/playwright-testhelpers": "^1.0.8", + "@umbraco/playwright-testhelpers": "^1.0.9", "camelize": "^1.0.0", "dotenv": "^16.0.2", "faker": "^4.1.0", @@ -101,9 +101,9 @@ } }, "node_modules/@umbraco/playwright-testhelpers": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.8.tgz", - "integrity": "sha512-zzwxgJGmQQckF3pi4EQPeeUxGfXRDMefK2LjfDfQHesaRMBoTf4ah73w4nAOKuoREuE1yZIDwf7bzz3pNOEXiw==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.9.tgz", + "integrity": "sha512-+w0jisYmKWfBojTZ6UJeIGub9N67x+j/atA1vVjABv2+69KDMZ+lby7ZfA51gitOpFGZpt4w6DvYiO85+93kvA==", "dependencies": { "@umbraco/json-models-builders": "^1.0.0", "camelize": "^1.0.0", @@ -906,9 +906,9 @@ } }, "@umbraco/playwright-testhelpers": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.8.tgz", - "integrity": "sha512-zzwxgJGmQQckF3pi4EQPeeUxGfXRDMefK2LjfDfQHesaRMBoTf4ah73w4nAOKuoREuE1yZIDwf7bzz3pNOEXiw==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.9.tgz", + "integrity": "sha512-+w0jisYmKWfBojTZ6UJeIGub9N67x+j/atA1vVjABv2+69KDMZ+lby7ZfA51gitOpFGZpt4w6DvYiO85+93kvA==", "requires": { "@umbraco/json-models-builders": "^1.0.0", "camelize": "^1.0.0", diff --git a/tests/Umbraco.Tests.AcceptanceTest/package.json b/tests/Umbraco.Tests.AcceptanceTest/package.json index 30edac0506..7cb2322bac 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/package.json +++ b/tests/Umbraco.Tests.AcceptanceTest/package.json @@ -19,7 +19,7 @@ }, "dependencies": { "@umbraco/json-models-builders": "^1.0.0", - "@umbraco/playwright-testhelpers": "^1.0.8", + "@umbraco/playwright-testhelpers": "^1.0.9", "camelize": "^1.0.0", "faker": "^4.1.0", "form-data": "^4.0.0", From 8f70276cf72c742fc42788a977fb6f6972872481 Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Mon, 17 Oct 2022 14:53:41 +0200 Subject: [PATCH 15/22] Update maximum test time-out --- tests/Umbraco.Tests.AcceptanceTest/playwright.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/playwright.config.ts b/tests/Umbraco.Tests.AcceptanceTest/playwright.config.ts index f5c9bf5fde..dfa3fc61c1 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/playwright.config.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/playwright.config.ts @@ -10,7 +10,7 @@ dotenv.config(); const config: PlaywrightTestConfig = { testDir: './tests/', /* Maximum time one test can run for. */ - timeout: 30 * 1000, + timeout: 120 * 1000, expect: { /** * Maximum time expect() should wait for the condition to be met. From ad67616f66962f6735186e2730f800b6a885cfc6 Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Mon, 17 Oct 2022 15:27:26 +0200 Subject: [PATCH 16/22] Reset maximum timeout to 30s --- tests/Umbraco.Tests.AcceptanceTest/playwright.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/playwright.config.ts b/tests/Umbraco.Tests.AcceptanceTest/playwright.config.ts index dfa3fc61c1..f5c9bf5fde 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/playwright.config.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/playwright.config.ts @@ -10,7 +10,7 @@ dotenv.config(); const config: PlaywrightTestConfig = { testDir: './tests/', /* Maximum time one test can run for. */ - timeout: 120 * 1000, + timeout: 30 * 1000, expect: { /** * Maximum time expect() should wait for the condition to be met. From 39f349fc9922ae31dbd778f48ab3c9c1befc64a1 Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Mon, 17 Oct 2022 15:42:00 +0200 Subject: [PATCH 17/22] Bumb playwright-testhelper version --- .../Umbraco.Tests.AcceptanceTest/package-lock.json | 14 +++++++------- tests/Umbraco.Tests.AcceptanceTest/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json index 971d3b2534..480c6e60fb 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json +++ b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json @@ -8,7 +8,7 @@ "hasInstallScript": true, "dependencies": { "@umbraco/json-models-builders": "^1.0.0", - "@umbraco/playwright-testhelpers": "^1.0.9", + "@umbraco/playwright-testhelpers": "^1.0.10", "camelize": "^1.0.0", "dotenv": "^16.0.2", "faker": "^4.1.0", @@ -101,9 +101,9 @@ } }, "node_modules/@umbraco/playwright-testhelpers": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.9.tgz", - "integrity": "sha512-+w0jisYmKWfBojTZ6UJeIGub9N67x+j/atA1vVjABv2+69KDMZ+lby7ZfA51gitOpFGZpt4w6DvYiO85+93kvA==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.10.tgz", + "integrity": "sha512-4NTuMbbNWGcawZIuYnDdPUGN4W2F9iw0EvsyJ2Pr5rYj8Rg1PCu2MXW77r27fGhfr31PYDEL6RSL9zp8SyxfJg==", "dependencies": { "@umbraco/json-models-builders": "^1.0.0", "camelize": "^1.0.0", @@ -906,9 +906,9 @@ } }, "@umbraco/playwright-testhelpers": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.9.tgz", - "integrity": "sha512-+w0jisYmKWfBojTZ6UJeIGub9N67x+j/atA1vVjABv2+69KDMZ+lby7ZfA51gitOpFGZpt4w6DvYiO85+93kvA==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-1.0.10.tgz", + "integrity": "sha512-4NTuMbbNWGcawZIuYnDdPUGN4W2F9iw0EvsyJ2Pr5rYj8Rg1PCu2MXW77r27fGhfr31PYDEL6RSL9zp8SyxfJg==", "requires": { "@umbraco/json-models-builders": "^1.0.0", "camelize": "^1.0.0", diff --git a/tests/Umbraco.Tests.AcceptanceTest/package.json b/tests/Umbraco.Tests.AcceptanceTest/package.json index 7cb2322bac..55da15670c 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/package.json +++ b/tests/Umbraco.Tests.AcceptanceTest/package.json @@ -19,7 +19,7 @@ }, "dependencies": { "@umbraco/json-models-builders": "^1.0.0", - "@umbraco/playwright-testhelpers": "^1.0.9", + "@umbraco/playwright-testhelpers": "^1.0.10", "camelize": "^1.0.0", "faker": "^4.1.0", "form-data": "^4.0.0", From 514497ffab1f6f018d390854075b9c1beaf2a74b Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Tue, 18 Oct 2022 08:19:23 +0200 Subject: [PATCH 18/22] Update tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/ModelsBuilder/modelsbuilder.spec.ts --- .../tests/DefaultConfig/ModelsBuilder/modelsbuilder.spec.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/ModelsBuilder/modelsbuilder.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/ModelsBuilder/modelsbuilder.spec.ts index ada1773bd8..998a738e2f 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/ModelsBuilder/modelsbuilder.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/ModelsBuilder/modelsbuilder.spec.ts @@ -243,7 +243,6 @@ test.describe('Modelsbuilder tests', () => { await umbracoApi.content.save(content); - await page.pause(); // Navigate to the document type await umbracoUi.goToSection(ConstantHelper.sections.settings); await umbracoUi.clickElement(umbracoUi.getTreeItem("settings", ["Document Types", docTypeName])); From 7ba94847059195c2176c5f798d915a8b326ce8d2 Mon Sep 17 00:00:00 2001 From: Zeegaan Date: Tue, 18 Oct 2022 11:18:05 +0200 Subject: [PATCH 19/22] Added proper save assert instead of checking on the route --- .../tests/DefaultConfig/Settings/relationTypes.spec.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/relationTypes.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/relationTypes.spec.ts index d1a375ef6e..e49cecde54 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/relationTypes.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/relationTypes.spec.ts @@ -30,11 +30,9 @@ test.describe('Relation Types', () => { await page.selectOption('select[name="relationType-child"]', {label: "Media"}); await form.locator('[name="relationType-isdependency"]').last().click({force: true}); await form.locator('.btn-primary').click(); + await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.save)) + await umbracoUi.isSuccessNotificationVisible(); - await page.waitForNavigation(); - - expect(page.url()).toContain("#/settings/relationTypes/edit/"); - //Clean up await umbracoApi.relationTypes.ensureNameNotExists(name); }); From 61415b5c314237a46e29a396ca6f3cc5e9d7e539 Mon Sep 17 00:00:00 2001 From: Zeegaan Date: Wed, 19 Oct 2022 07:46:15 +0200 Subject: [PATCH 20/22] Add back the v10 locator that was updated in v11 --- .../tests/DefaultConfig/Settings/macro.spec.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/macro.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/macro.spec.ts index c54907d315..b4a9608547 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/macro.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/macro.spec.ts @@ -30,7 +30,9 @@ test.describe('Macros', () => { await form.locator(".btn-primary").click(); // Adds partial view to macro - await page.locator('[data-element="property-label-macroPartialViewPickerProperty"]').click(); + // THIS SHOULD BE await page.locator('[data-element="property-label-macroPartialViewPickerProperty"]').click(); IN V11 + await page.locator('[label="Macro partial view"]').click(); + await page.locator('[data-element="tree-item-' + partialViewName + '.cshtml"]').click(); await umbracoUi.clickElement(umbracoUi.getButtonByLabelKey(ConstantHelper.buttons.save)); From cb9c165794cb6275531a84ec88843e6a63f690e3 Mon Sep 17 00:00:00 2001 From: Zeegaan Date: Wed, 19 Oct 2022 07:51:24 +0200 Subject: [PATCH 21/22] Add back macro locator --- .../tests/DefaultConfig/Settings/macro.spec.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/macro.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/macro.spec.ts index b4a9608547..895bff5366 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/macro.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/macro.spec.ts @@ -30,8 +30,7 @@ test.describe('Macros', () => { await form.locator(".btn-primary").click(); // Adds partial view to macro - // THIS SHOULD BE await page.locator('[data-element="property-label-macroPartialViewPickerProperty"]').click(); IN V11 - await page.locator('[label="Macro partial view"]').click(); + await page.locator('[data-element="property-label-macroPartialViewPickerProperty"]').click(); await page.locator('[data-element="tree-item-' + partialViewName + '.cshtml"]').click(); From 08982709b3e50ca862ceda9f331691d8d3d66450 Mon Sep 17 00:00:00 2001 From: Zeegaan Date: Wed, 19 Oct 2022 07:52:14 +0200 Subject: [PATCH 22/22] Revert "V11: fix failing acceptance tests (#13204)" This reverts commit ea783bbc --- .../tests/DefaultConfig/Content/content.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/content.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/content.spec.ts index c2b9be27aa..c3a78183cf 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/content.spec.ts +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/content.spec.ts @@ -627,7 +627,7 @@ test.describe('Content tests', () => { await umbracoUi.clickElement(umbracoUi.getTreeItem("content", [viewMacroName])); // Insert macro - await page.locator('[title="Insert macro"]').click(); + await page.locator('#mceu_13-button').click(); await page.locator('.umb-card-grid-item', {hasText: viewMacroName}).click(); // cy.get('.umb-card-grid-item').contains(viewMacroName).click(); @@ -636,7 +636,7 @@ test.describe('Content tests', () => { await umbracoUi.isSuccessNotificationVisible(); // Ensure that the view gets rendered correctly - const expected = `

 

Acceptance test

 

`; + const expected = `

Acceptance test

 

`; await expect(await umbracoApi.content.verifyRenderedContent('/', expected, true)).toBeTruthy(); // Cleanup