diff --git a/src/Components/test/E2ETest/Tests/FormsInputDateTest.cs b/src/Components/test/E2ETest/Tests/FormsInputDateTest.cs index bc4e0a66f2f3..17903d3887ec 100644 --- a/src/Components/test/E2ETest/Tests/FormsInputDateTest.cs +++ b/src/Components/test/E2ETest/Tests/FormsInputDateTest.cs @@ -45,22 +45,22 @@ public void InputDateInteractsWithEditContext_NonNullableDateTime() // Validates on edit Browser.Equal("valid", () => renewalDateInput.GetDomAttribute("class")); - renewalDateInput.SendKeys($"{Keys.Backspace}\t{Keys.Backspace}\t{Keys.Backspace}\t"); - renewalDateInput.SendKeys("01/01/2000\t"); + ClearDate(renewalDateInput); + SetDate(renewalDateInput, "01/01/2000\t"); Browser.Equal("modified valid", () => renewalDateInput.GetDomAttribute("class")); // Can become invalid - renewalDateInput.SendKeys("11-11-11111\t"); + SetDate(renewalDateInput, "11-11-11111\t"); Browser.Equal("modified invalid", () => renewalDateInput.GetDomAttribute("class")); Browser.Equal(new[] { "The RenewalDate field must be a date." }, messagesAccessor); // Empty is invalid, because it's not nullable - renewalDateInput.SendKeys($"{Keys.Backspace}\t{Keys.Backspace}\t{Keys.Backspace}\t"); + ClearDate(renewalDateInput); Browser.Equal("modified invalid", () => renewalDateInput.GetDomAttribute("class")); Browser.Equal(new[] { "The RenewalDate field must be a date." }, messagesAccessor); // Can become valid - renewalDateInput.SendKeys("01/01/01\t"); + SetDate(renewalDateInput, "01/01/01\t"); Browser.Equal("modified valid", () => renewalDateInput.GetDomAttribute("class")); Browser.Empty(messagesAccessor); } @@ -74,16 +74,16 @@ public void InputDateInteractsWithEditContext_NullableDateTimeOffset() // Validates on edit Browser.Equal("valid", () => expiryDateInput.GetDomAttribute("class")); - expiryDateInput.SendKeys("01-01-2000\t"); + SetDate(expiryDateInput, "01-01-2000\t"); Browser.Equal("modified valid", () => expiryDateInput.GetDomAttribute("class")); // Can become invalid - expiryDateInput.SendKeys("11-11-11111\t"); + SetDate(expiryDateInput, "11-11-11111\t"); Browser.Equal("modified invalid", () => expiryDateInput.GetDomAttribute("class")); Browser.Equal(new[] { "The OptionalExpiryDate field must be a date." }, messagesAccessor); // Empty is valid, because it's nullable - expiryDateInput.SendKeys($"{Keys.Backspace}\t{Keys.Backspace}\t{Keys.Backspace}\t"); + ClearDate(expiryDateInput); Browser.Equal("modified valid", () => expiryDateInput.GetDomAttribute("class")); Browser.Empty(messagesAccessor); } @@ -234,6 +234,21 @@ public void InputDateInteractsWithEditContext_DateTimeLocalInput_Step() Browser.Equal("1970-10-10T10:53:21", () => appointmentInput.GetDomProperty("value")); } + private static void SetDate(IWebElement input, string keys) + { + input.Click(); + input.SendKeys(Keys.ArrowLeft + Keys.ArrowLeft + Keys.ArrowLeft); + input.SendKeys(keys); + } + + private static void ClearDate(IWebElement input) + { + input.Click(); + input.SendKeys(Keys.Control + "a"); + input.SendKeys(Keys.Delete); + input.SendKeys(Keys.Tab); + } + private Func CreateValidationMessagesAccessor(IWebElement appElement) { return () => appElement.FindElements(By.ClassName("validation-message"))