Skip to content

Instantly share code, notes, and snippets.

@rainerhahnekamp
Created November 17, 2021 10:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rainerhahnekamp/eb15a49e9b7063d23f72cf833081abe9 to your computer and use it in GitHub Desktop.
Save rainerhahnekamp/eb15a49e9b7063d23f72cf833081abe9 to your computer and use it in GitHub Desktop.
import { Component } from '@angular/core';
import { fakeAsync, flush, TestBed } from '@angular/core/testing';
import {
SchedulerEvent,
SchedulerModule,
} from '@progress/kendo-angular-scheduler';
const baseData: any[] = [
{
TaskID: 4,
OwnerID: 2,
Title: 'Bowling tournament',
Description: '',
StartTimezone: null,
Start: new Date(),
End: new Date(),
EndTimezone: null,
RecurrenceRule: null,
RecurrenceID: null,
RecurrenceException: null,
IsAllDay: false,
},
];
const currentYear = new Date().getFullYear();
const parseAdjust = (eventDate: string): Date => {
const date = new Date(eventDate);
date.setFullYear(currentYear);
return date;
};
const randomInt = (min: number, max: number): number => {
return Math.floor(Math.random() * (max - min + 1)) + min;
};
export const displayDate = new Date();
export const sampleData = baseData.map(
(dataItem) =>
<SchedulerEvent>{
id: dataItem.TaskID,
start: parseAdjust(dataItem.Start),
startTimezone: dataItem.startTimezone,
end: parseAdjust(dataItem.End),
endTimezone: dataItem.endTimezone,
isAllDay: dataItem.IsAllDay,
title: dataItem.Title,
description: dataItem.Description,
recurrenceRule: dataItem.RecurrenceRule,
recurrenceId: dataItem.RecurrenceID,
recurrenceException: dataItem.RecurrenceException,
roomId: dataItem.RoomID,
ownerID: dataItem.OwnerID,
}
);
const sampleDataWithResources = baseData.map(
(dataItem) =>
<SchedulerEvent>{
id: dataItem.TaskID,
start: parseAdjust(dataItem.Start),
startTimezone: dataItem.startTimezone,
end: parseAdjust(dataItem.End),
endTimezone: dataItem.endTimezone,
isAllDay: dataItem.IsAllDay,
title: dataItem.Title,
description: dataItem.Description,
recurrenceRule: dataItem.RecurrenceRule,
recurrenceId: dataItem.RecurrenceID,
recurrenceException: dataItem.RecurrenceException,
roomId: randomInt(1, 2),
attendees: [randomInt(1, 3)],
}
);
const sampleDataWithCustomSchema = baseData.map((dataItem) => ({
...dataItem,
Start: parseAdjust(dataItem.Start),
End: parseAdjust(dataItem.End),
}));
@Component({
template: `
<kendo-scheduler
[kendoSchedulerBinding]="events"
[selectedDate]="selectedDate"
scrollTime="08:00"
style="height: 600px;"
>
<kendo-scheduler-day-view></kendo-scheduler-day-view>
<kendo-scheduler-week-view></kendo-scheduler-week-view>
<kendo-scheduler-month-view></kendo-scheduler-month-view>
<kendo-scheduler-timeline-view></kendo-scheduler-timeline-view>
<kendo-scheduler-agenda-view></kendo-scheduler-agenda-view>
</kendo-scheduler>
`,
})
class SchedulerComponent {
public selectedDate: Date = displayDate;
public events: SchedulerEvent[] = sampleData;
}
describe('SchedulerComponent', () => {
it('should test the Scheduler Component', fakeAsync(() => {
const fixture = TestBed.configureTestingModule({
declarations: [SchedulerComponent],
imports: [SchedulerModule],
}).createComponent(SchedulerComponent);
fixture.detectChanges();
flush();
expect(fixture.componentInstance).toBeInstanceOf(SchedulerComponent);
}));
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment