From e3262ce8d4789ac84358f9a78f3557720d5b13b6 Mon Sep 17 00:00:00 2001 From: Lias Kleisa Date: Fri, 3 Mar 2023 09:57:59 +0100 Subject: [PATCH] Fix frontend test for email validation on create person --- frontend/app/components/person-new.js | 3 +- .../tests/acceptance/create-person-test.js | 46 +++++++++++++++++-- 2 files changed, 44 insertions(+), 5 deletions(-) diff --git a/frontend/app/components/person-new.js b/frontend/app/components/person-new.js index 1512ef51d..82f3d1715 100644 --- a/frontend/app/components/person-new.js +++ b/frontend/app/components/person-new.js @@ -4,6 +4,7 @@ import { computed } from "@ember/object"; import { isBlank } from "@ember/utils"; import { getNames as countryNames } from "ember-i18n-iso-countries"; import Person from "../models/person"; +import config from "../config/environment"; export default ApplicationComponent.extend({ intl: service(), @@ -99,7 +100,7 @@ export default ApplicationComponent.extend({ `person.${attribute}` ); this.get("notify").alert(`${translated_attribute} ${message}`, { - closeAfter: 8000 + closeAfter: config.environment === "test" ? null : 8000 }); }); }); diff --git a/frontend/tests/acceptance/create-person-test.js b/frontend/tests/acceptance/create-person-test.js index 22ac7e51c..c7bc63928 100644 --- a/frontend/tests/acceptance/create-person-test.js +++ b/frontend/tests/acceptance/create-person-test.js @@ -80,7 +80,7 @@ module("Acceptance | create person", function(hooks) { // TODO expect errors! }); - test("should display error when email is invalid", async function(assert) { + test("should display two error when email is empty", async function(assert) { await page.newPersonPage.visit(); assert.equal(currentURL(), "/people/new"); @@ -95,12 +95,50 @@ module("Acceptance | create person", function(hooks) { interactor.selectDate(new Date(2019, 1, 19)); - await selectChoose("#department", "/dev/ruby"); - await selectChoose("#company", "Bewerber"); + await selectChoose("#department", "/dev/one"); + await selectChoose("#company", "Firma"); + await selectChoose("#maritalStatus", ".ember-power-select-option", 0); + + await click("button#submit-button"); + + assert.equal( + document.querySelectorAll(".ember-notify")[0].querySelector(".message") + .innerText, + "Email muss ausgefüllt werden" + ); + assert.equal( + document.querySelectorAll(".ember-notify")[1].querySelector(".message") + .innerText, + "Email Format nicht gültig" + ); + }); + + test("should display one error when email format is invalid", async function(assert) { + await page.newPersonPage.visit(); + assert.equal(currentURL(), "/people/new"); + + page.newPersonPage.toggleNewForm(); + + await page.newForm.name("Findus"); + await page.newForm.email("findus.puzzle"); + await page.newForm.title("Sofware Developer"); + await page.newForm.shortname("FI"); + await page.newForm.location("Bern"); + + let interactor = openDatepicker($(".birthdate_pikaday > input")); + + interactor.selectDate(new Date(2019, 1, 19)); + + await selectChoose("#department", "/dev/one"); + await selectChoose("#company", "Firma"); await selectChoose("#maritalStatus", ".ember-power-select-option", 0); await click("button#submit-button"); - assert.dom().includesText("Format nicht gültig"); + assert.equal( + document.querySelectorAll(".ember-notify")[0].querySelector(".message") + .innerText, + "Email Format nicht gültig" + ); }); });