isNonNullable.test.ts27 lines · main
1import { describe, expect, it } from 'vitest'
2
3import { isNonNullable } from './isNonNullable.js'
4
5describe(`isNonNullable`, () => {
6 it.each([
7 [null, false],
8 [undefined, false],
9 // void
10 [(() => {})(), false],
11 // Truthy
12 [`string`, true],
13 [1, true],
14 [true, true],
15 // Falsy
16 [``, true],
17 [NaN, true],
18 [0, true],
19 [0, true],
20 [false, true],
21 // Type coercion
22 [[], true],
23 [{}, true],
24 ])(`correctly matches against nullish values`, (val, expected) => {
25 expect(isNonNullable(val)).toStrictEqual(expected)
26 })
27})