Skip to content
Merged
Show file tree
Hide file tree
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
2 changes: 2 additions & 0 deletions src/Core/Components/DateTime/FluentDatePicker.razor
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@
TValue="TValue"
Culture="@Culture"
View="@View"
MinDate="@MinDate"
MaxDate="@MaxDate"
DayFormat="@DayFormat"
DisabledDateFunc="@DisabledDateFunc"
DisabledCheckAllDaysOfMonthYear="@DisabledCheckAllDaysOfMonthYear"
Expand Down
99 changes: 99 additions & 0 deletions tests/Core/Components/DateTimes/FluentDatePickerTests.razor
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,105 @@
Assert.Equal("14", picker.Find(".day[disabled]").InnerHtml);
}

[Fact]
public void FluentDatePicker_MinMaxDate_SetCorrectValues()
{
// Arrange
using var context = new DateTimeProviderContext(System.DateTime.Now);
var minDate = new System.DateTime(2022, 02, 10);
var maxDate = new System.DateTime(2022, 02, 20);

// Act
var picker = Render(@<FluentDatePicker TValue="DateTime?" Culture="@InvariantCulture" MinDate="@minDate" MaxDate="@maxDate" />);
var pickerInstance = picker.FindComponent<FluentDatePicker<DateTime?>>().Instance;

// Assert
Assert.Equal(minDate, pickerInstance.MinDate);
Assert.Equal(maxDate, pickerInstance.MaxDate);
}

[Fact]
public void FluentDatePicker_MinMaxDate_PassedToCalendar()
{
// Arrange
using var context = new DateTimeProviderContext(System.DateTime.Now);
var minDate = new System.DateTime(2022, 02, 10);
var maxDate = new System.DateTime(2022, 02, 20);

// Act
var picker = Render(@<FluentDatePicker TValue="DateTime?" Culture="@InvariantCulture" Value="@(new System.DateTime(2022, 02, 15))"
MinDate="@minDate" MaxDate="@maxDate" />);
var text = picker.Find("fluent-text-input");

// Click to open the calendar
text.Click();

// Assert
var calendar = picker.FindComponent<FluentCalendar<DateTime?>>().Instance;
Assert.Equal(minDate, calendar.MinDate);
Assert.Equal(maxDate, calendar.MaxDate);
}

[Fact]
public void FluentDatePicker_MinDate_DisablesEarlierDays()
{
// Arrange
using var context = new DateTimeProviderContext(System.DateTime.Now);
var minDate = new System.DateTime(2022, 02, 10);

// Act
var picker = Render(@<FluentDatePicker TValue="DateTime?" Culture="@InvariantCulture" Value="@(new System.DateTime(2022, 02, 15))"
MinDate="@minDate" />);
var text = picker.Find("fluent-text-input");

// Click to open the calendar
text.Click();

// Assert
Assert.True(picker.Find(".day[value='2022-02-09']").HasAttribute("disabled"));
Assert.False(picker.Find(".day[value='2022-02-10']").HasAttribute("disabled"));
}

[Fact]
public void FluentDatePicker_MaxDate_DisablesLaterDays()
{
// Arrange
using var context = new DateTimeProviderContext(System.DateTime.Now);
var maxDate = new System.DateTime(2022, 02, 20);

// Act
var picker = Render(@<FluentDatePicker TValue="DateTime?" Culture="@InvariantCulture" Value="@(new System.DateTime(2022, 02, 15))"
MaxDate="@maxDate" />);
var text = picker.Find("fluent-text-input");

// Click to open the calendar
text.Click();

// Assert
Assert.True(picker.Find(".day[value='2022-02-21']").HasAttribute("disabled"));
Assert.False(picker.Find(".day[value='2022-02-20']").HasAttribute("disabled"));
}

[Fact]
public void FluentDatePicker_MinMaxDate_DayWithinRangeIsEnabled()
{
// Arrange
using var context = new DateTimeProviderContext(System.DateTime.Now);
var minDate = new System.DateTime(2022, 02, 10);
var maxDate = new System.DateTime(2022, 02, 20);

// Act
var picker = Render(@<FluentDatePicker TValue="DateTime?" Culture="@InvariantCulture" Value="@(new System.DateTime(2022, 02, 15))"
MinDate="@minDate" MaxDate="@maxDate" />);
var text = picker.Find("fluent-text-input");

// Click to open the calendar
text.Click();

// Assert
Assert.False(picker.Find(".day[value='2022-02-15']").HasAttribute("disabled"));
}

[Fact]
public void FluentDatePicker_ChangeValueWhenDefaultIsNull()
{
Expand Down
Loading