Small utils for managing Time in tests, using timekeeper for time manipulation.
npm install @plandek-utils/time-utils@plandek-utils/time-utils



TypeDoc generated docs in here
Small utils for managing Time in tests, using timekeeper for time manipulation.
``bash`
npm install @plandek-utils/time-utils
This package has a peer dependency on timekeeper, which you'll need to install:
`bash`
npm install timekeeper
The package provides 2 functions:
- freezeTime(time, fn): freezes time to the given one, executes the given function, and resets the time before returning the result of that execution.freezeTimeAwait(time, asyncFn)
- : same as freezeTime() but expects an async function, and it waits for its return before resetting the time
`typescript
// assume now is "2019-03-21T12:21:13.000Z"
function renderTime() {
const d = new Date()
console.log(d.toISOString())
}
renderTime() // => logs "2019-03-21T12:21:13.000Z"
const time = new Date("2018-01-02T13:14:15.123Z")
const res = freezeTime(time, () => { renderTime(); return 'blah' }) // => logs "2018-01-02T13:14:15.123Z"
console.log(res) // => logs 'blah' (freezeTime() returns the result of the passed function)
renderTime() // => logs "2019-03-21T12:21:13.010Z" (time is unfrozen, let's say that a 10ms have passed)
`
1. Clone the repository
2. Install dependencies: npm install
1. Make your changes
2. Run tests: npm testnpm run check
3. Run linter: npm run commit
4. Commit using conventional commits:
See The Typescript-Starter docs.
For commits, you should use commitizen
`sh`
npm run commit
This project uses conventional changelog to manage releases. See the standard-version documentation for more information on the workflow.
`sh`bump package.json version, update CHANGELOG.md, git tag the release
npm run version
1. Run npm run prepare-release which will:git push --follow-tags origin master`
- Reset the repo to a clean state
- Run checks and tests
- Create a new version using standard-version
- Build the package
2. Push to git:
3. The CI will automatically publish to npm when pushed to master