Skip to content

Conversation

@BePo65
Copy link
Contributor

@BePo65 BePo65 commented Sep 2, 2022

Working on the utc plugin for dayjs 2.0 I added more tests from dayjs to get a clean base for further development. Here a list of additions / changes:

  • build: update packages
  • docs: update 'TODO' part in README.md
  • refactor: change name of parameter 'number' to 'value' in add / subtract
  • refactor: move type declaration 'GetterFn' to types.ts
  • fix: add 'ms' to parameter type of 'unit' of 'diff'
  • test: add missing tests for locales
  • test: add test 'display' and tests for required locales
  • fix: utcOffset, when offset has minutes <> '0' or '30'
  • refactor: derive 'UnitBase' from 'UnitLong'
  • fix: make Get / Set use short units like 'moment'
  • fix: make 'ArraySupport' behave like moment
  • fix: parse date returned "invalid Date" when parsing year only array
  • fix: make plugin isYesterday use yesterday not today as reference
  • feat: make add / subtract with decimal values behave like moment
  • refactor: add type definitions for units for add / sub / diff / get / set
  • docs: add comments to 'date' and 'day'
  • refactor: make tests use 'test' instead of 'it' and add 'test.todo'
  • test: fix mocking of 'new Date()'
  • test: add tests for manipulating dayjs (taken from dayjs 1.x)
  • test: extend constructor tests
  • test: move ArraySupport tests in describe block of its own
  • test: arrange tests for illegal values next to each other
  • test: reset mockup function after test and remove redundant expects
  • docs: add 'Changes' segment to README.md
  • build: add setting "defaultFormatter" for vscode

BePo65 added 25 commits August 6, 2022 18:12
Add tests from ArraySupport in dayjs v1.x
Prior to using 'vi.setSystemTime(now)' the mocking of the timers must be
activated with 'vi.useFakeTimers()'
Differentiating between 'date' and 'day' is not very easy.
… set

Units for add / sub / diff / get / set are modifications of the units for
parsing / formatting and are used in several places. Therefore type
definitions for these derived types are added.
BREAKING CHANGE: in dayjs 1.0: only days and weeks are rounded to the
nearest integer.
In moment: days and months are rounded to the nearest integer;
Weeks, quarters, and years are converted to days or months, and then
rounded to the nearest integer.
Negative numbers are rounded as positive numbers with the sign added to
the result.
An array with only a year value (first element) returned "invalid Date";
in this case the correct date is returned, only if the second parameter
is not undefined (but e.g. null)
Example for offset not full or halve hours is '1879-12-31' for
timezone 'Europe/Berlin', where utcOffset is '00:53'.
Solves issue iamkun#1996.
The type 'GetterFn' is needed by plugins that add getter / setter to Dayjs.
Change name of parameter with value to add / subtract from the quite
generic 'number' to 'value' to avoid get consistent with the parameter
names e.g. of 'set'.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant