Skip to content

Commit dcf2c59

Browse files
Add tests for withDefault
1 parent 34ceb2e commit dcf2c59

File tree

4 files changed

+25
-3
lines changed

4 files changed

+25
-3
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
node_modules
2-
dist
2+
dist
3+
coverage

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ Currently only a few basic types are supported.
8383
- `numberParam`: for numbers (integers and floats)
8484
- `objectParam`: custom Objects that will be serialized to JSON.
8585
- `booleanParam`: for booleans
86-
- `dateParam`: for dates
86+
- `dateParam`: for dates and datetime
8787
- `arrayParam`: for arrays of the above types
8888
NOTE: Nested arrays are currently only possible using `objectParam`. e.g.: `objectParam<number[][]>()`;
8989

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"prepublish": "npm run build && npm run test",
1010
"build": "tsup",
1111
"check": "tsc --noEmit",
12-
"test": "jest",
12+
"test": "jest --collectCoverage",
1313
"test:watch": "jest --watch"
1414
},
1515
"repository": {

src/core/withDefault.test.ts

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { numberParam } from "../converters";
2+
import { withDefault } from "./withDefault";
3+
4+
describe("withDefault", () => {
5+
const { serialize, deserialize } = withDefault(numberParam(), 123);
6+
7+
test("returns deserialized value when deserializer returns correct value", () => {
8+
expect(deserialize('2')).toBe(2);
9+
expect(deserialize('100')).toBe(100);
10+
expect(deserialize('-2')).toBe(-2);
11+
expect(deserialize('-3.1415')).toBe(-3.1415);
12+
});
13+
14+
test("returns default value when deserializer returns null", () => {
15+
expect(deserialize(null)).toBe(123);
16+
});
17+
18+
test("returns default value when deserializer returns undefined", () => {
19+
expect(deserialize(undefined as unknown as null)).toBe(123);
20+
});
21+
});

0 commit comments

Comments
 (0)