Skip to content

Commit

Permalink
Add unit tests to datepickerformatter
Browse files Browse the repository at this point in the history
dlimyy committed Sep 25, 2023
1 parent 23f92b7 commit ec6c5af
Showing 1 changed file with 44 additions and 0 deletions.
44 changes: 44 additions & 0 deletions src/web/app/components/datepicker/datepicker-formatter.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import { NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';
import { DatePickerFormatter } from './datepicker-formatter';

describe('DatepickerFormatter', () => {
let formatter : DatePickerFormatter;

beforeEach(() => {
formatter = new DatePickerFormatter();
});

it('should create an instance', () => {
expect(formatter).toBeTruthy();
});

it('should return an empty string if date is null', () => {
// I used any as the type here as it is the only way to pass in null since
// null is not compatible with NgbDateStruct
const date: any = null;
const formattedDate: String = formatter.format(date);
expect(formattedDate).toEqual('');
});

it('should return a properly formatted date string', () => {
const date: NgbDateStruct = { year: 2023, month: 12, day: 12 };
const formattedDate = formatter.format(date);
expect(formattedDate).toEqual('Tue, 12 Dec, 2023');
});

it('should parse the valid date string correctly', () => {
const date : string = 'Tue, 12 Dec, 2023';
const parsedDate : NgbDateStruct = formatter.parse(date);
expect(parsedDate.day).toEqual(12);
expect(parsedDate.month).toEqual(12);
expect(parsedDate.year).toEqual(2023);
});

it('should return NaN for all the fields if invalid date string format is parsed', () => {
const date : string = '12th December 2023';
const parsedDate : NgbDateStruct = formatter.parse(date);
expect(parsedDate.day).toEqual(NaN);
expect(parsedDate.month).toEqual(NaN);
expect(parsedDate.year).toEqual(NaN);
});
});

0 comments on commit ec6c5af

Please sign in to comment.