Skip to content

Commit

Permalink
test: refactor tests of toResolvedDate
Browse files Browse the repository at this point in the history
Signed-off-by: Rong Sen Ng (motss) <[email protected]>
  • Loading branch information
motss committed Jan 6, 2024
1 parent e3ba0bc commit 0affbc5
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 29 deletions.
51 changes: 22 additions & 29 deletions src/__tests__/helpers/to-resolved-date.test.ts
Original file line number Diff line number Diff line change
@@ -1,42 +1,35 @@
import { expect } from '@open-wc/testing';
import { toUTCDate } from 'nodemod/dist/calendar/helpers/to-utc-date.js';
import { describe, expect, it } from 'vitest';

import { toResolvedDate } from '../../helpers/to-resolved-date';
import type { MaybeDate } from '../../helpers/typings';
import { messageFormatter } from '../test-utils/message-formatter';

describe(toResolvedDate.name, () => {
const today = new Date();
const date1 = new Date(1);

type CaseResolvedDate = [
date: MaybeDate | undefined,
expected: Date
];
const casesResolvedDate: CaseResolvedDate[] = [
['', new Date(NaN)],
['0', new Date(NaN)],
['1', toUTCDate(date1.getUTCFullYear(), date1.getUTCMonth(), date1.getUTCDate())],
['2020-02-02', new Date('2020-02-02')],
[+new Date('2020-02-02'), new Date('2020-02-02')],
[0, new Date(NaN)],
[NaN, new Date(NaN)],
[new Date('2020-02-02'), new Date('2020-02-02')],
[new Date('2020-02-02').toJSON(), new Date('2020-02-02')],
[null, new Date(NaN)],
[undefined, toUTCDate(today.getFullYear(), today.getMonth(), today.getDate())],
];
casesResolvedDate.forEach((a) => {
const [testDate, expected] = a;
it.each<{
$_value: Date;
date: MaybeDate | undefined;
}>([
{ $_value: new Date(NaN), date: '' },
{ $_value: new Date(NaN), date: '0' },
{ $_value: toUTCDate(date1.getUTCFullYear(), date1.getUTCMonth(), date1.getUTCDate()), date: '1' },
{ $_value: new Date('2020-02-02'), date: '2020-02-02' },
{ $_value: new Date('2020-02-02'), date: +new Date('2020-02-02') },
{ $_value: new Date(NaN), date: 0 },
{ $_value: new Date(NaN), date: NaN },
{ $_value: new Date('2020-02-02'), date: new Date('2020-02-02') },
{ $_value: new Date('2020-02-02'), date: new Date('2020-02-02').toJSON() },
{ $_value: new Date(NaN), date: null },
{ $_value: toUTCDate(today.getFullYear(), today.getMonth(), today.getDate()), date: undefined },
])('returns resolved date ($date)', ({
$_value,
date,
}) => {
const result = toResolvedDate(date);

it(
messageFormatter('returns resolved date (%s)', a),
() => {
const result = toResolvedDate(testDate);

expect(result).deep.equal(expected);
}
);
expect(result).toEqual($_value);
});

});
1 change: 1 addition & 0 deletions vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ export default defineConfig({
'**/*test*/helpers/to-multi-calendars.test.ts',
'**/*test*/helpers/to-next-selectable-date.test.ts',
'**/*test*/helpers/to-next-selected-date.test.ts',
'**/*test*/helpers/to-resolved-date.test.ts',
// '**/*test*/date-picker-input/**.test.ts',
],
clearMocks: true,
Expand Down

0 comments on commit 0affbc5

Please sign in to comment.