Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 23 additions & 8 deletions src/Components/test/E2ETest/Tests/FormsInputDateTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand All @@ -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);
}
Expand Down Expand Up @@ -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<string[]> CreateValidationMessagesAccessor(IWebElement appElement)
{
return () => appElement.FindElements(By.ClassName("validation-message"))
Expand Down
Loading