From 771dfdb48f94ab596b30978d62eb01eef48149f6 Mon Sep 17 00:00:00 2001 From: Jesper Mayntzhusen <79840720+jemayn@users.noreply.github.com> Date: Tue, 5 Oct 2021 02:20:51 +0200 Subject: [PATCH] Cypress test for textbox max length (#11245) * add test for textbox max length * remove leftover comment Co-authored-by: Jesper (cherry picked from commit f29bda645593e6dc71f877ac1730946cea7afb5c) --- .../integration/DataTypes/dataTypes.ts | 43 +++++++++++++++++++ .../integration/Members/memberGroups.js | 2 +- 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Tests.AcceptanceTest/cypress/integration/DataTypes/dataTypes.ts b/src/Umbraco.Tests.AcceptanceTest/cypress/integration/DataTypes/dataTypes.ts index a8c2d8d151c3..b92a7482ec20 100644 --- a/src/Umbraco.Tests.AcceptanceTest/cypress/integration/DataTypes/dataTypes.ts +++ b/src/Umbraco.Tests.AcceptanceTest/cypress/integration/DataTypes/dataTypes.ts @@ -2,6 +2,7 @@ import { AliasHelper, ApprovedColorPickerDataTypeBuilder, + TextBoxDataTypeBuilder, } from 'umbraco-cypress-testhelpers'; context('DataTypes', () => { @@ -62,6 +63,48 @@ context('DataTypes', () => { cy.umbracoEnsureTemplateNameNotExists(name); }); + it('Tests Textbox Maxlength', () => { + cy.deleteAllContent(); + const name = 'Textbox Maxlength Test'; + const alias = AliasHelper.toAlias(name); + + cy.umbracoEnsureDocumentTypeNameNotExists(name); + cy.umbracoEnsureDataTypeNameNotExists(name); + + const textBoxDataType = new TextBoxDataTypeBuilder() + .withName(name) + .withMaxChars(10) + .build() + + cy.umbracoCreateDocTypeWithContent(name, alias, textBoxDataType); + + // Act + // Enter content + // Assert no helptext with (max-2) chars & can save + cy.umbracoRefreshContentTree(); + cy.umbracoTreeItem("content", [name]).click(); + cy.get('input[name="textbox"]').type('12345678'); + cy.get('localize[key="textbox_characters_left"]').should('not.exist'); + cy.umbracoButtonByLabelKey('buttons_saveAndPublish').click(); + cy.umbracoSuccessNotification().should('be.visible'); + cy.get('.property-error').should('not.be.visible'); + + // Add char and assert helptext appears - no publish to save time & has been asserted above & below + cy.get('input[name="textbox"]').type('9'); + cy.get('localize[key="textbox_characters_left"]').contains('characters left').should('exist'); + cy.get('.property-error').should('not.be.visible'); + + // Add char and assert errortext appears and can't save + cy.get('input[name="textbox"]').type('10'); // 1 char over max + cy.get('localize[key="textbox_characters_exceed"]').contains('too many').should('exist'); + cy.umbracoButtonByLabelKey('buttons_saveAndPublish').click(); + cy.get('.property-error').should('be.visible'); + + // Clean + cy.umbracoEnsureDataTypeNameNotExists(name); + cy.umbracoEnsureDocumentTypeNameNotExists(name); + }) + // it('Tests Checkbox List', () => { // const name = 'CheckBox List'; // const alias = AliasHelper.toAlias(name); diff --git a/src/Umbraco.Tests.AcceptanceTest/cypress/integration/Members/memberGroups.js b/src/Umbraco.Tests.AcceptanceTest/cypress/integration/Members/memberGroups.js index be9b93134d01..6add16b4ee68 100644 --- a/src/Umbraco.Tests.AcceptanceTest/cypress/integration/Members/memberGroups.js +++ b/src/Umbraco.Tests.AcceptanceTest/cypress/integration/Members/memberGroups.js @@ -1,4 +1,4 @@ -context('User Groups', () => { +context('Member Groups', () => { beforeEach(() => { cy.umbracoLogin(Cypress.env('username'), Cypress.env('password'));