Skip to content

Commit

Permalink
fix(kit): CalendarRange shows last available month when max and ite…
Browse files Browse the repository at this point in the history
…ms set (#9147)
  • Loading branch information
splincode authored Sep 24, 2024
2 parents 702803c + 6d3665a commit 14d644f
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,19 @@ test.describe('CalendarRange', () => {
let calendarRange!: TuiCalendarRangePO;
let documentationPage!: TuiDocumentationPagePO;

test.use({
viewport: {width: 650, height: 650},
});

test.beforeEach(async ({page}) => {
await tuiGoto(page, DemoRoute.CalendarRange, {
date: new Date(2020, 8, 25),
});

documentationPage = new TuiDocumentationPagePO(page);
example = documentationPage.apiPageExample;

calendarRange = new TuiCalendarRangePO(example.locator('tui-calendar-range'));
});

test.describe('Examples', () => {
Expand Down Expand Up @@ -57,4 +64,12 @@ test.describe('CalendarRange', () => {
);
});
});

test.describe('API', () => {
test('Maximum month when items not empty', async ({page}) => {
await tuiGoto(page, `${DemoRoute.CalendarRange}/API?items$=1&max$=4`);

await expect(example).toHaveScreenshot('06-maximum-month-with-items.png');
});
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,18 @@ test.describe('InputDateRange', () => {
});
});

test('Maximum month when items not empty', async ({page}) => {
await tuiGoto(page, `${DemoRoute.InputDateRange}/API?items$=1&max$=7`);
await inputDateRange.textfield.click();

await expect(inputDateRange.textfield).toHaveScreenshot(
'06-textfield-maximum-month-with-items.png',
);
await expect(inputDateRange.calendarRange).toHaveScreenshot(
'06-calendar-maximum-month-with-items.png',
);
});

test.describe('prevents changes if you enter an invalid date', () => {
test('day > 31', async ({page}) => {
await tuiGoto(page, `${DemoRoute.InputDateRange}/API`);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,9 @@ export class TuiCalendarRange implements OnInit, OnChanges {
if (this.value) {
this.defaultViewedMonth = this.items.length ? this.value.to : this.value.from;
} else if (this.max && this.defaultViewedMonth.monthSameOrAfter(this.max)) {
this.defaultViewedMonth = this.max.append({month: -1});
this.defaultViewedMonth = this.items.length
? this.max
: this.max.append({month: -1});
} else if (this.min && this.defaultViewedMonth.monthSameOrBefore(this.min)) {
this.defaultViewedMonth = this.min;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,18 @@ describe('rangeCalendarComponent', () => {
expect(component.defaultViewedMonth).toEqual(minDate);
});

it('when max and items not empty, defaultViewedMonth is max', () => {
const maxDate = TuiDay.currentLocal();

testComponent.max = maxDate;
fixture.detectChanges();

component.ngOnInit();
fixture.detectChanges();

expect(component.defaultViewedMonth).toEqual(maxDate);
});

it('isItemActive returns true when value is set to today after being changed to yesterday', () => {
const today = TuiDay.currentLocal();
const yesterday = today.append({day: -1});
Expand Down

0 comments on commit 14d644f

Please sign in to comment.