# Testing signals — iamkun/dayjs

> Canonical page: https://codevetter.com/unpack/dayjs/testing-signals

# Testing signals — iamkun/dayjs

Scanned commit 436bde0bcded312781cbe45dc2b0ef079a36d8e3 (2026-09-15). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Tests and CI were inspected, not executed; no passing result or measured coverage is asserted. Jest covers core and plugin behavior, frequently comparing against Moment and using MockDate to control time. The npm test script runs explicit host-timezone matrices before requesting full line coverage. Browser and declaration checks have narrower scopes, and this inventory is bounded rather than exhaustive coverage.
- package.json configures Jest 22 with test roots under test, a *.test.js regex, and src-wide coverage collection; npm test requests a global 100% line threshold, whose satisfaction was not verified. — [package.json#L8-L10](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/package.json#L8-L10) [package.json#L28-L38](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/package.json#L28-L38) [package.json#L60-L70](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/package.json#L60-L70)
- Core parsing tests compare now, accepted string forms, timestamps, invalid inputs, millisecond truncation, and clone behavior against Moment; manipulation tests cover locale weeks, unit aliases, month-end/leap-day additions, and fractional days/weeks. — [test/parse.test.js#L14-L103](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/test/parse.test.js#L14-L103) [test/parse.test.js#L105-L139](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/test/parse.test.js#L105-L139) [test/manipulate.test.js#L15-L76](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/test/manipulate.test.js#L15-L76)
- customParseFormat tests distinguish permissive parsing from strict rejection of zero or overflowing fields and cover ordered alternatives, all-invalid arrays, and locale-aware strict parsing. — [test/plugin/customParseFormat.test.js#L301-L335](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/test/plugin/customParseFormat.test.js#L301-L335)
- Timezone tests assert formatted output, valueOf, and offsets against moment-timezone, including spring gaps, host/target DST desynchronization, overlap instants, Lord Howe transitions, quarter-hour zones, and invalid-date nonthrowing behavior. — [test/plugin/timezone.test.js#L29-L32](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/test/plugin/timezone.test.js#L29-L32) [test/plugin/timezone.test.js#L135-L185](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/test/plugin/timezone.test.js#L135-L185) [test/plugin/timezone.test.js#L420-L478](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/test/plugin/timezone.test.js#L420-L478) [test/plugin/timezone.test.js#L482-L582](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/test/plugin/timezone.test.js#L482-L582)
- npm test runs core timezone tests in Auckland, London, Whitehorse, and the default environment, then plugin timezone tests in Paris, London, New York, and Auckland; a test comment explicitly defers broader startOf/set/add calendar arithmetic. — [package.json#L8-L10](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/package.json#L8-L10) [test/plugin/timezone.test.js#L480-L481](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/test/plugin/timezone.test.js#L480-L481)
- Separate issue2027 suites install duration/objectSupport in both orders and assert duration and numeric arithmetic, object/string parsing, and setters; the generic plugin test checks prototype APIs, factory APIs, options, and utility access. — [test/issues/issue2027.correct-order.test.js#L3-L24](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/test/issues/issue2027.correct-order.test.js#L3-L24) [test/issues/issue2027.correct-order.test.js#L26-L76](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/test/issues/issue2027.correct-order.test.js#L26-L76) [test/issues/issue2027.swapped-order.test.js#L3-L24](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/test/issues/issue2027.swapped-order.test.js#L3-L24) [test/plugin.test.js#L4-L35](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/test/plugin.test.js#L4-L35)
- Locale key tests dynamically load locales and validate naming, header comments, arrays/functions, formats, and relative-time keys; plugin declaration tests only check that matching .d.ts files exist, without compiling them. — [test/locale/keys.test.js#L9-L48](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/test/locale/keys.test.js#L9-L48) [test/locale/keys.test.js#L50-L113](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/test/locale/keys.test.js#L50-L113) [test/plugin/declarations.test.js#L7-L12](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/test/plugin/declarations.test.js#L7-L12)
- Reusable CI invokes lint and npm test with optional Codecov upload. Separately configured Karma/Jasmine Sauce tests load the built core and test window installation, a chain, and nonstandard strings; that browser command is not invoked by the inspected reusable CI workflow. — [.github/workflows/lint-test.yml#L18-L30](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/.github/workflows/lint-test.yml#L18-L30) [package.json#L15-L16](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/package.json#L15-L16) [karma.sauce.conf.js#L79-L98](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/karma.sauce.conf.js#L79-L98) [test/browser.spec.js#L4-L30](https://github.com/iamkun/dayjs/blob/436bde0bcded312781cbe45dc2b0ef079a36d8e3/test/browser.spec.js#L4-L30)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
