Skip to content
Open
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,11 @@ Constants and utilities to work with JavaScript standard global objects and prim
- `RegExp`
- `String`

Currently under development, only `Math` and `Number` implemented.
> [!NOTE]
> Main intention of the library is researching and educational purposes. However, some constants and utilities might also become useful in a development.

Subscribe and stay tuned for updates.
> [!IMPORTANT]
> Currently under heavy development, only `Date`, `Math`, `Number` and `RegExp` implemented. Subscribe and stay tuned for updates.

## Usage

Expand Down
86 changes: 86 additions & 0 deletions __tests__/constant/date.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
import DATE from '#src/constant/date.mts';

describe('`EPOCH`', () => {
test('Expect `EPOCH_ISO` to be `"1970-01-01T00:00:00.000Z"`.', () => {
expect(DATE.EPOCH_ISO).toBe('1970-01-01T00:00:00.000Z');
});
test('Expect `EPOCH_STRING` to be `"Thu Jan 01 1970 00:00:00 GMT+0000 (UTC)"`.', () => {
expect(DATE.EPOCH_STRING).toBe('Thu Jan 01 1970 00:00:00 GMT+0000 (UTC)');
});
test('Expect `EPOCH_RFC` to be `"1970-01-01T00:00:00+00:00"`.', () => {
expect(DATE.EPOCH_RFC).toBe('1970-01-01T00:00:00+00:00');
});
test('Expect `Date.parse(DATE.EPOCH_ISO)` to be `0`.', () => {
expect(Date.parse(DATE.EPOCH_ISO)).toBe(0);
});
test('Expect `Date.parse(DATE.EPOCH_RFC)` to be `0`.', () => {
expect(Date.parse(DATE.EPOCH_RFC)).toBe(0);
});
test('Expect `Date.parse(DATE.EPOCH_STRING)` to be `0`.', () => {
expect(Date.parse(DATE.EPOCH_STRING)).toBe(0);
});
test('Expect `new Date(DATE.EPOCH_ISO).toDateString()` to be `"Thu Jan 01 1970"`.', () => {
expect(new Date(DATE.EPOCH_ISO).toDateString()).toBe('Thu Jan 01 1970');
});
test('Expect `new Date(DATE.EPOCH_ISO).valueOf()` to be `0`.', () => {
expect(new Date(DATE.EPOCH_ISO).valueOf()).toBe(0);
});
test('Expect `new Date(DATE.EPOCH_STRING).toDateString()` to be `"Thu Jan 01 1970"`.', () => {
expect(new Date(DATE.EPOCH_RFC).toDateString()).toBe('Thu Jan 01 1970');
});
test('Expect `new Date(DATE.EPOCH_RFC).toISOString()` to be `DATE.EPOCH_ISO`.', () => {
expect(new Date(DATE.EPOCH_RFC).toISOString()).toBe(DATE.EPOCH_ISO);
});
test('Expect `new Date(DATE.EPOCH_RFC).valueOf()` to be `0`.', () => {
expect(new Date(DATE.EPOCH_RFC).valueOf()).toBe(0);
});
test('Expect `new Date(DATE.EPOCH_STRING).toDateString()` to be `"Thu Jan 01 1970"`.', () => {
expect(new Date(DATE.EPOCH_STRING).toDateString()).toBe('Thu Jan 01 1970');
});
test('Expect `new Date(DATE.EPOCH_STRING).toISOString()` to be `DATE.EPOCH_ISO`.', () => {
expect(new Date(DATE.EPOCH_STRING).toISOString()).toBe(DATE.EPOCH_ISO);
});
test('Expect `new Date(DATE.EPOCH_STRING).valueOf()` to be `0`.', () => {
expect(new Date(DATE.EPOCH_STRING).valueOf()).toBe(0);
});
});
describe('`TIME`', () => {
test('Expect `TIME_DAY` to be `864e5`.', () => {
expect(DATE.TIME_DAY).toBe(864e5);
});
test('Expect `TIME_HOUR` to be `36e5`.', () => {
expect(DATE.TIME_HOUR).toBe(36e5);
});
test('Expect `TIME_MINUTE` to be `6e4`.', () => {
expect(DATE.TIME_MINUTE).toBe(6e4);
});
test('Expect `TIME_SECOND` to be `1e3`.', () => {
expect(DATE.TIME_SECOND).toBe(1e3);
});
test('Expect `new Date(DATE.TIME_YEAR).toISOString()` to be `"1971-01-01T00:00:00.000Z"`.', () => {
expect(new Date(DATE.TIME_YEAR).toISOString()).toBe('1971-01-01T00:00:00.000Z');
});
test('Expect `new Date(DATE.TIME_YEAR * 2).toISOString()` to be `"1972-01-01T00:00:00.000Z"`.', () => {
expect(new Date(DATE.TIME_YEAR * 2).toISOString()).toBe('1972-01-01T00:00:00.000Z');
});
test('Expect `new Date(DATE.TIME_YEAR * 5 + DATE.TIME_YEAR_LEAP* 1).toISOString()` to be `"1976-01-01T00:00:00.000Z"`.', () => {
expect(new Date(DATE.TIME_YEAR * 5 + DATE.TIME_YEAR_LEAP * 1).toISOString()).toBe(
'1976-01-01T00:00:00.000Z',
);
});
test('Expect `new Date(DATE.TIME_YEAR * 8 + DATE.TIME_YEAR_LEAP* 2).toISOString()` to be `"1980-01-01T00:00:00.000Z"`.', () => {
expect(new Date(DATE.TIME_YEAR * 8 + DATE.TIME_YEAR_LEAP * 2).toISOString()).toBe(
'1980-01-01T00:00:00.000Z',
);
});
test('Expect `new Date(DATE.TIME_YEAR * 21 + DATE.TIME_YEAR_LEAP * 7).toISOString()` to be `"1998-01-01T00:00:00.000Z"`.', () => {
expect(new Date(DATE.TIME_YEAR * 21 + DATE.TIME_YEAR_LEAP * 7).toISOString()).toBe(
'1998-01-01T00:00:00.000Z',
);
});
test('Expect `new Date(DATE.TIME_YEAR * 42 + DATE.TIME_YEAR_LEAP * 14).toISOString()` to be `"2026-01-01T00:00:00.000Z"`.', () => {
expect(new Date(DATE.TIME_YEAR * 42 + DATE.TIME_YEAR_LEAP * 14).toISOString()).toBe(
'2026-01-01T00:00:00.000Z',
);
});
});
34 changes: 34 additions & 0 deletions __tests__/constant/regexp.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import DATE from '#src/constant/date.mts';
import REGEXP from '#src/constant/regexp.mts';

describe('`DATE_ISO`', () => {
test('Expect `DATE_ISO.test("1970-01-01T00:00:00Z")` to be `true`.', () => {
expect(REGEXP.DATE_ISO_EPOCH.test('1970-01-01T00:00:00Z')).toBe(true);
});
test('Expect `DATE_ISO.test("1970-01-01T00:00:00.000Z")` to be `true`.', () => {
expect(REGEXP.DATE_ISO_EPOCH.test('1970-01-01T00:00:00.000Z')).toBe(true);
});
});
describe('`DATE_STRING`', () => {
test('Expect `DATE_STRING.test("Thu Jan 01 1970 05:00:00 GMT+0000 (UTC)")` to be `true`.', () => {
expect(REGEXP.DATE_STRING.test('Thu Jan 01 1970 05:00:00 GMT+0000 (UTC)')).toBe(true);
});
test('Expect `DATE_STRING.test("Thu Jan 01 1970 05:00:00 GMT+0500 (Yekaterinburg Standard Time)")` to be `true`.', () => {
expect(
REGEXP.DATE_STRING.test('Thu Jan 01 1970 05:00:00 GMT+0500 (Yekaterinburg Standard Time)'),
).toBe(true);
});
test('Expect `DATE_STRING.test("Thu Jan 01 1970 00:00:00 GMT+0500 (Екатеринбург, стандартное время)")` to be `true`.', () => {
expect(
REGEXP.DATE_STRING.test(
'Thu Jan 01 1970 00:00:00 GMT+0500 (Екатеринбург, стандартное время)',
),
).toBe(true);
});
test('Expect `DATE_STRING.test(new Date(DATE.EPOCH_ISO).toString())` to be `true`.', () => {
expect(REGEXP.DATE_STRING.test(new Date(DATE.EPOCH_ISO).toString())).toBe(true);
});
test('Expect `DATE_STRING.test(new Date(DATE.EPOCH_RFC).toString())` to be `true`.', () => {
expect(REGEXP.DATE_STRING.test(new Date(DATE.EPOCH_RFC).toString())).toBe(true);
});
});
26 changes: 26 additions & 0 deletions __tests__/utility/date/epoch.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import DATE from '#src/constant/date.mts';
import date from '#src/utility/date.mts';

describe('`epoch`', () => {
test('Expect `epoch.toDateString()` to be `"Thu Jan 01 1970"`.', () => {
expect(date.epoch.toDateString()).toBe('Thu Jan 01 1970');
});
test('Expect `epoch.toISOString()` to be `"1970-01-01T00:00:00.000Z"`.', () => {
expect(date.epoch.toISOString()).toBe('1970-01-01T00:00:00.000Z');
});
test('Expect `epoch.toISOString()` to be `EPOCH_ISO`.', () => {
expect(date.epoch.toISOString()).toBe(DATE.EPOCH_ISO);
});
/** These values are specific to OS settings and can not be compared. */
/* test('Expect `epoch.toTimeString()` to be `"05:00:00 GMT+0500 (Yekaterinburg Standard Time)"`.', () => {
expect(date.epoch.toTimeString()).toBe('05:00:00 GMT+0500 (Yekaterinburg Standard Time)');
});
test('Expect `epoch.toString()` to be `"Thu Jan 01 1970 05:00:00 GMT+0500 (Yekaterinburg Standard Time)"`.', () => {
expect(date.epoch.toString()).toBe(
'Thu Jan 01 1970 05:00:00 GMT+0500 (Yekaterinburg Standard Time)',
);
}); */
test('Expect `epoch.valueOf()` to be `0`.', () => {
expect(date.epoch.valueOf()).toBe(0);
});
});
Loading