isNonNullable.test.ts 577 B

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