Skip to content

Commit a5181ae

Browse files
Reject invalid dates despite being valid Date objects
1 parent fe701db commit a5181ae

File tree

4 files changed

+18
-5
lines changed

4 files changed

+18
-5
lines changed

date/valid.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
export default date => (date ? date instanceof Date : false);
1+
export default date =>
2+
date ? date instanceof Date && !Number.isNaN(date.valueOf()) : false;

date/valid.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "valid",
3-
"description": "TODO: Fill short description here.",
3+
"description": "Checks if the given date is a valid date.",
44
"signature": "(date?: any) => boolean",
55
"examples": [
66
{

date/valid.test.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,18 @@
33
import valid from "./valid.ts";
44

55
describe("valid", () => {
6-
it.skip("TODO", () => {
7-
expect(valid()).toBeDefined();
6+
it("checks if the given date is a valid date", () => {
7+
expect(valid(new Date())).toBe(true);
8+
expect(valid(new Date("2020-01-31T09:52:31.618Z"))).toBe(true);
9+
expect(valid(new Date("77724e10-2ffa-45cc-b05d-a91a846a6080"))).toBe(false);
10+
});
11+
12+
it("handles missing and falsy values", () => {
13+
expect(valid(undefined)).toBe(false);
14+
expect(valid(null)).toBe(false);
15+
expect(valid(false)).toBe(false);
16+
expect(valid(0)).toBe(false);
17+
expect(valid(NaN)).toBe(false);
18+
expect(valid("")).toBe(false);
819
});
920
});

date/valid.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
export default (date?: any): boolean => (date ? date instanceof Date : false);
1+
export default (date?: any): boolean =>
2+
date ? date instanceof Date && !Number.isNaN(date.valueOf()) : false;

0 commit comments

Comments
 (0)