Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
The mockdate npm package is designed for testing JavaScript code that relies on dates. It allows developers to temporarily 'mock' or 'fake' the current date and time, making it possible to simulate specific temporal conditions in tests without altering the system's actual clock. This is particularly useful for ensuring consistent test results and for testing time-sensitive code paths.
Set a mock date
This feature allows you to set the current date and time to a specific value. It's useful for testing how your application behaves on specific dates and times.
MockDate.set('2023-04-01T00:00:00.000Z');
Reset to the system's current date
After setting a mock date, you can use this feature to reset the system's date and time back to its real current value. This is particularly useful to clean up after tests that require mocking the date.
MockDate.reset();
Set a mock date with a specific timezone offset
In addition to setting a mock date, you can specify a timezone offset in minutes. This allows for more precise control over the mocked date and time, accommodating tests that are sensitive to timezones.
MockDate.set('2023-04-01T00:00:00.000Z', 120);
Sinon is a comprehensive testing utility that, among other features, includes the ability to stub JavaScript's Date object. Compared to mockdate, Sinon offers a broader range of testing functionalities beyond date mocking, such as spies, stubs, and mocks for JavaScript functions.
Timekeeper is a simple package for controlling the system time in JavaScript. It's similar to mockdate in its purpose of mocking the current time for testing purposes. However, timekeeper has a simpler API and fewer features, focusing solely on freezing and traveling in time without the additional timezone offset control that mockdate offers.
Lolex is a library for JavaScript and Node.js that allows for the mocking of the system clock. It provides functionalities similar to mockdate but extends its capabilities to include mocking of timers (setTimeout, setInterval, etc.). This makes lolex a more versatile choice for testing time-dependent code.
A JavaScript Mock Date object that can be used to change when "now" is.
npm install mockdate --save-dev
MockDate has been tested in Node, IE9+, Chrome, Firefox, and Opera.
import MockDate from 'mockdate'
MockDate.set(date)
date: Object
The Date
to be returned when no parameters are passed to new Date()
. Supports any object that has a .valueOf
method that returns a value that can be passed to new Date()
.
date: String
The string representation of the date which is passed to the new Date()
constructor. This creates the Date
to be returned when no parameters are passed to new Date()
.
date: Number
The millisecond representation of the Date
to be returned when no parameters are passed to new Date()
.
MockDate.reset();
Will restore the original Date
object back to the native implementation.
MockDate.set('2000-11-22');
new Date().toString() // "Tue Nov 21 2000 18:00:00 GMT-0600 (CST)"
MockDate.set('1/30/2000');
new Date().toString() // "Sun Jan 30 2000 00:00:00 GMT-0600 (CST)"
MockDate.set(new Date('2/20/2000'));
new Date().toString() // "Sun Feb 20 2000 00:00:00 GMT-0600 (CST)"
MockDate.set(moment('3/30/2000').toDate()); // using momentjs
new Date().toString() // "Thu Mar 30 2000 00:00:00 GMT-0600 (CST)"
MockDate.reset();
new Date().toString() // "Mon Mar 17 2014 18:08:44 GMT-0500 (CDT)"
npm test
3.0.5
FAQs
A JavaScript mock Date object that can be used to change when "now" is.
The npm package mockdate receives a total of 1,187,771 weekly downloads. As such, mockdate popularity was classified as popular.
We found that mockdate demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.