aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/guide/upgrading_v9/2704.md14
-rw-r--r--src/modules/date/index.ts847
-rw-r--r--test/all-functional.spec.ts4
-rw-r--r--test/modules/__snapshots__/date.spec.ts.snap216
-rw-r--r--test/modules/date.spec.ts277
5 files changed, 87 insertions, 1271 deletions
diff --git a/docs/guide/upgrading_v9/2704.md b/docs/guide/upgrading_v9/2704.md
new file mode 100644
index 00000000..26c2b461
--- /dev/null
+++ b/docs/guide/upgrading_v9/2704.md
@@ -0,0 +1,14 @@
+### Remove deprecated date methods
+
+Removed deprecated date methods
+
+| old | replacement |
+| -------------------------------------- | ------------------------------------------ |
+| `faker.date.past(years, refDate)` | `faker.date.past({ years, refDate })` |
+| `faker.date.future(years, refDate)` | `faker.date.future({ years, refDate })` |
+| `faker.date.between(from, to)` | `faker.date.between({ from, to })` |
+| `faker.date.betweens(from, to, count)` | `faker.date.betweens({ from, to, count })` |
+| `faker.date.recent(days, refDate)` | `faker.date.recent({ days, refDate })` |
+| `faker.date.soon(days, refDate)` | `faker.date.soon({ days, refDate })` |
+| `faker.date.month({ abbr })` | `faker.date.month({ abbreviated })` |
+| `faker.date.weekday({ abbr })` | `faker.date.weekday({ abbreviated })` |
diff --git a/src/modules/date/index.ts b/src/modules/date/index.ts
index 9e8002d2..2729c849 100644
--- a/src/modules/date/index.ts
+++ b/src/modules/date/index.ts
@@ -1,7 +1,6 @@
import type { Faker } from '../..';
import type { DateEntryDefinition } from '../../definitions';
import { FakerError } from '../../errors/faker-error';
-import { deprecated } from '../../internal/deprecated';
import { SimpleModuleBase } from '../../internal/module-base';
import { assertLocaleData } from '../../locale-proxy';
@@ -83,94 +82,23 @@ export class SimpleDateModule extends SimpleModuleBase {
*
* @since 8.0.0
*/
- past(options?: {
- /**
- * The range of years the date may be in the past.
- *
- * @default 1
- */
- years?: number;
- /**
- * The date to use as reference point for the newly generated date.
- *
- * @default faker.defaultRefDate()
- */
- refDate?: string | Date | number;
- }): Date;
- /**
- * Generates a random date in the past.
- *
- * @param years The range of years the date may be in the past. Defaults to `1`.
- * @param refDate The date to use as reference point for the newly generated date. Defaults to `faker.defaultRefDate()`.
- *
- * @see faker.date.recent(): For generating dates in the recent past (days instead of years).
- *
- * @example
- * faker.date.past() // '2021-12-03T05:40:44.408Z'
- * faker.date.past(10) // '2017-10-25T21:34:19.488Z'
- * faker.date.past(10, '2020-01-01T00:00:00.000Z') // '2017-08-18T02:59:12.350Z'
- *
- * @since 2.0.1
- *
- * @deprecated Use `faker.date.past({ years, refDate })` instead.
- */
- past(years?: number, refDate?: string | Date | number): Date;
- /**
- * Generates a random date in the past.
- *
- * @param options The optional options object.
- * @param options.years The range of years the date may be in the past. Defaults to `1`.
- * @param options.refDate The date to use as reference point for the newly generated date. Defaults to `faker.defaultRefDate()`.
- * @param legacyRefDate Deprecated, use `options.refDate` instead.
- *
- * @see faker.date.recent(): For generating dates in the recent past (days instead of years).
- *
- * @example
- * faker.date.past() // '2021-12-03T05:40:44.408Z'
- * faker.date.past({ years: 10 }) // '2017-10-25T21:34:19.488Z'
- * faker.date.past({ years: 10, refDate: '2020-01-01T00:00:00.000Z' }) // '2017-08-18T02:59:12.350Z'
- *
- * @since 8.0.0
- */
- past(
- options?:
- | number
- | {
- /**
- * The range of years the date may be in the past.
- *
- * @default 1
- */
- years?: number;
- /**
- * The date to use as reference point for the newly generated date.
- *
- * @default faker.defaultRefDate()
- */
- refDate?: string | Date | number;
- },
- legacyRefDate?: string | Date | number
- ): Date;
past(
- options:
- | number
- | {
- years?: number;
- refDate?: string | Date | number;
- } = {},
- legacyRefDate?: string | Date | number
+ options: {
+ /**
+ * The range of years the date may be in the past.
+ *
+ * @default 1
+ */
+ years?: number;
+ /**
+ * The date to use as reference point for the newly generated date.
+ *
+ * @default faker.defaultRefDate()
+ */
+ refDate?: string | Date | number;
+ } = {}
): Date {
- if (typeof options === 'number') {
- deprecated({
- deprecated: 'faker.date.past(years, refDate)',
- proposed: 'faker.date.past({ years, refDate })',
- since: '8.0',
- until: '9.0',
- });
- options = { years: options };
- }
-
- const { years = 1, refDate = legacyRefDate } = options;
+ const { years = 1, refDate } = options;
if (years <= 0) {
throw new FakerError('Years must be greater than 0.');
@@ -205,94 +133,23 @@ export class SimpleDateModule extends SimpleModuleBase {
*
* @since 8.0.0
*/
- future(options?: {
- /**
- * The range of years the date may be in the future.
- *
- * @default 1
- */
- years?: number;
- /**
- * The date to use as reference point for the newly generated date.
- *
- * @default faker.defaultRefDate()
- */
- refDate?: string | Date | number;
- }): Date;
- /**
- * Generates a random date in the future.
- *
- * @param years The range of years the date may be in the future. Defaults to `1`.
- * @param refDate The date to use as reference point for the newly generated date. Defaults to `faker.defaultRefDate()`.
- *
- * @see faker.date.soon(): For generating dates in the near future (days instead of years).
- *
- * @example
- * faker.date.future() // '2022-11-19T05:52:49.100Z'
- * faker.date.future(10) // '2030-11-23T09:38:28.710Z'
- * faker.date.future(10, '2020-01-01T00:00:00.000Z') // '2020-12-13T22:45:10.252Z'
- *
- * @since 2.0.1
- *
- * @deprecated Use `faker.date.future({ years, refDate })` instead.
- */
- future(years?: number, refDate?: string | Date | number): Date;
- /**
- * Generates a random date in the future.
- *
- * @param options The optional options object.
- * @param options.years The range of years the date may be in the future. Defaults to `1`.
- * @param options.refDate The date to use as reference point for the newly generated date. Defaults to `faker.defaultRefDate()`.
- * @param legacyRefDate Deprecated, use `options.refDate` instead.
- *
- * @see faker.date.soon(): For generating dates in the near future (days instead of years).
- *
- * @example
- * faker.date.future() // '2022-11-19T05:52:49.100Z'
- * faker.date.future({ years: 10 }) // '2030-11-23T09:38:28.710Z'
- * faker.date.future({ years: 10, refDate: '2020-01-01T00:00:00.000Z' }) // '2020-12-13T22:45:10.252Z'
- *
- * @since 8.0.0
- */
- future(
- options?:
- | number
- | {
- /**
- * The range of years the date may be in the future.
- *
- * @default 1
- */
- years?: number;
- /**
- * The date to use as reference point for the newly generated date.
- *
- * @default faker.defaultRefDate()
- */
- refDate?: string | Date | number;
- },
- legacyRefDate?: string | Date | number
- ): Date;
future(
- options:
- | number
- | {
- years?: number;
- refDate?: string | Date | number;
- } = {},
- legacyRefDate?: string | Date | number
+ options: {
+ /**
+ * The range of years the date may be in the future.
+ *
+ * @default 1
+ */
+ years?: number;
+ /**
+ * The date to use as reference point for the newly generated date.
+ *
+ * @default faker.defaultRefDate()
+ */
+ refDate?: string | Date | number;
+ } = {}
): Date {
- if (typeof options === 'number') {
- deprecated({
- deprecated: 'faker.date.future(years, refDate)',
- proposed: 'faker.date.future({ years, refDate })',
- since: '8.0',
- until: '9.0',
- });
- options = { years: options };
- }
-
- const { years = 1, refDate = legacyRefDate } = options;
+ const { years = 1, refDate } = options;
if (years <= 0) {
throw new FakerError('Years must be greater than 0.');
@@ -332,73 +189,7 @@ export class SimpleDateModule extends SimpleModuleBase {
* The late date boundary.
*/
to: string | Date | number;
- }): Date;
- /**
- * Generates a random date between the given boundaries.
- *
- * @param from The early date boundary.
- * @param to The late date boundary.
- *
- * @example
- * faker.date.between('2020-01-01T00:00:00.000Z', '2030-01-01T00:00:00.000Z') // '2026-05-16T02:22:53.002Z'
- *
- * @since 2.0.1
- *
- * @deprecated Use `faker.date.between({ from, to })` instead.
- */
- between(from: string | Date | number, to: string | Date | number): Date;
- /**
- * Generates a random date between the given boundaries.
- *
- * @param options The optional options object.
- * @param options.from The early date boundary.
- * @param options.to The late date boundary.
- * @param legacyTo Deprecated, use `options.to` instead.
- *
- * @example
- * faker.date.between({ from: '2020-01-01T00:00:00.000Z', to: '2030-01-01T00:00:00.000Z' }) // '2026-05-16T02:22:53.002Z'
- *
- * @since 8.0.0
- */
- between(
- options:
- | string
- | Date
- | number
- | {
- /**
- * The early date boundary.
- */
- from: string | Date | number;
- /**
- * The late date boundary.
- */
- to: string | Date | number;
- },
- legacyTo?: string | Date | number
- ): Date;
- between(
- options:
- | string
- | Date
- | number
- | {
- from: string | Date | number;
- to: string | Date | number;
- },
- legacyTo?: string | Date | number
- ): Date {
- if (options instanceof Date || typeof options !== 'object') {
- deprecated({
- deprecated: 'faker.date.between(from, to)',
- proposed: 'faker.date.between({ from, to })',
- since: '8.0',
- until: '9.0',
- });
- // We use options as fallback for legacyTo avoid TS errors for unintended usage.
- options = { from: options, to: legacyTo ?? options };
- }
-
+ }): Date {
const { from, to } = options;
const fromMs = toDate(from, this.faker.defaultRefDate).getTime();
@@ -460,122 +251,7 @@ export class SimpleDateModule extends SimpleModuleBase {
*/
max: number;
};
- }): Date[];
- /**
- * Generates random dates between the given boundaries.
- *
- * @param from The early date boundary.
- * @param to The late date boundary.
- * @param count The number of dates to generate. Defaults to `3`.
- * @param count.min The minimum number of dates to generate.
- * @param count.max The maximum number of dates to generate.
- *
- * @example
- * faker.date.betweens('2020-01-01T00:00:00.000Z', '2030-01-01T00:00:00.000Z')
- * // [
- * // 2022-07-02T06:00:00.000Z,
- * // 2024-12-31T12:00:00.000Z,
- * // 2027-07-02T18:00:00.000Z
- * // ]
- * faker.date.betweens('2020-01-01T00:00:00.000Z', '2030-01-01T00:00:00.000Z', 2)
- * // [ 2023-05-02T16:00:00.000Z, 2026-09-01T08:00:00.000Z ]
- *
- * @since 5.4.0
- *
- * @deprecated Use `faker.date.betweens({ from, to, count })` instead.
- */
- betweens(
- from: string | Date | number,
- to: string | Date | number,
- count?: number
- ): Date[];
- /**
- * Generates random dates between the given boundaries.
- *
- * @param options The optional options object.
- * @param options.from The early date boundary.
- * @param options.to The late date boundary.
- * @param options.count The number of dates to generate. Defaults to `3`.
- * @param legacyTo Deprecated, use `options.to` instead.
- * @param legacyCount Deprecated, use `options.count` instead. Defaults to `3`.
- *
- * @example
- * faker.date.betweens({ from: '2020-01-01T00:00:00.000Z', to: '2030-01-01T00:00:00.000Z' })
- * // [
- * // 2022-07-02T06:00:00.000Z,
- * // 2024-12-31T12:00:00.000Z,
- * // 2027-07-02T18:00:00.000Z
- * // ]
- * faker.date.betweens({ from: '2020-01-01T00:00:00.000Z', to: '2030-01-01T00:00:00.000Z', count: 2 })
- * // [ 2023-05-02T16:00:00.000Z, 2026-09-01T08:00:00.000Z ]
- * faker.date.betweens({ from: '2020-01-01T00:00:00.000Z', to: '2030-01-01T00:00:00.000Z', count: { min: 2, max: 5 }})
- * // [
- * // 2021-12-19T06:35:40.191Z,
- * // 2022-09-10T08:03:51.351Z,
- * // 2023-04-19T11:41:17.501Z
- * // ]
- *
- * @since 8.0.0
- */
- betweens(
- options:
- | string
- | Date
- | number
- | {
- /**
- * The early date boundary.
- */
- from: string | Date | number;
- /**
- * The late date boundary.
- */
- to: string | Date | number;
- /**
- * The number of dates to generate.
- *
- * @default 3
- */
- count?:
- | number
- | {
- /**
- * The minimum number of dates to generate.
- */
- min: number;
- /**
- * The maximum number of dates to generate.
- */
- max: number;
- };
- },
- legacyTo?: string | Date | number,
- legacyCount?: number
- ): Date[];
- betweens(
- options:
- | string
- | Date
- | number
- | {
- from: string | Date | number;
- to: string | Date | number;
- count?: number | { min: number; max: number };
- },
- legacyTo?: string | Date | number,
- legacyCount: number = 3
- ): Date[] {
- if (options instanceof Date || typeof options !== 'object') {
- deprecated({
- deprecated: 'faker.date.betweens(from, to, count)',
- proposed: 'faker.date.betweens({ from, to, count })',
- since: '8.0',
- until: '9.0',
- });
- // We use options as fallback for legacyTo avoid TS errors for unintended usage.
- options = { from: options, to: legacyTo ?? options, count: legacyCount };
- }
-
+ }): Date[] {
const { from, to, count = 3 } = options;
return this.faker.helpers
@@ -599,89 +275,23 @@ export class SimpleDateModule extends SimpleModuleBase {
*
* @since 8.0.0
*/
- recent(options?: {
- /**
- * The range of days the date may be in the past.
- *
- * @default 1
- */
- days?: number;
- /**
- * The date to use as reference point for the newly generated date.
- *
- * @default faker.defaultRefDate()
- */
- refDate?: string | Date | number;
- }): Date;
- /**
- * Generates a random date in the recent past.
- *
- * @param days The range of days the date may be in the past. Defaults to `1`.
- * @param refDate The date to use as reference point for the newly generated date. Defaults to `faker.defaultRefDate()`.
- *
- * @see faker.date.past(): For generating dates further back in time (years instead of days).
- *
- * @example
- * faker.date.recent() // '2022-02-04T02:09:35.077Z'
- * faker.date.recent(10) // '2022-01-29T06:12:12.829Z'
- * faker.date.recent(10, '2020-01-01T00:00:00.000Z') // '2019-12-27T18:11:19.117Z'
- *
- * @since 2.0.1
- *
- * @deprecated Use `faker.date.recent({ days, refDate })` instead.
- */
- recent(days?: number, refDate?: string | Date | number): Date;
- /**
- * Generates a random date in the recent past.
- *
- * @param options The optional options object.
- * @param options.days The range of days the date may be in the past. Defaults to `1`.
- * @param options.refDate The date to use as reference point for the newly generated date. Defaults to `faker.defaultRefDate()`.
- * @param legacyRefDate Deprecated, use `options.refDate` instead.
- *
- * @see faker.date.past(): For generating dates further back in time (years instead of days).
- *
- * @example
- * faker.date.recent() // '2022-02-04T02:09:35.077Z'
- * faker.date.recent({ days: 10 }) // '2022-01-29T06:12:12.829Z'
- * faker.date.recent({ days: 10, refDate: '2020-01-01T00:00:00.000Z' }) // '2019-12-27T18:11:19.117Z'
- *
- * @since 8.0.0
- */
- recent(
- options?:
- | number
- | {
- /**
- * The range of days the date may be in the past.
- *
- * @default 1
- */
- days?: number;
- /**
- * The date to use as reference point for the newly generated date.
- *
- * @default faker.defaultRefDate()
- */
- refDate?: string | Date | number;
- },
- legacyRefDate?: string | Date | number
- ): Date;
recent(
- options: number | { days?: number; refDate?: string | Date | number } = {},
- legacyRefDate?: string | Date | number
+ options: {
+ /**
+ * The range of days the date may be in the past.
+ *
+ * @default 1
+ */
+ days?: number;
+ /**
+ * The date to use as reference point for the newly generated date.
+ *
+ * @default faker.defaultRefDate()
+ */
+ refDate?: string | Date | number;
+ } = {}
): Date {
- if (typeof options === 'number') {
- deprecated({
- deprecated: 'faker.date.recent(days, refDate)',
- proposed: 'faker.date.recent({ days, refDate })',
- since: '8.0',
- until: '9.0',
- });
- options = { days: options };
- }
-
- const { days = 1, refDate = legacyRefDate } = options;
+ const { days = 1, refDate } = options;
if (days <= 0) {
throw new FakerError('Days must be greater than 0.');
@@ -716,89 +326,23 @@ export class SimpleDateModule extends SimpleModuleBase {
*
* @since 8.0.0
*/
- soon(options?: {
- /**
- * The range of days the date may be in the future.
- *
- * @default 1
- */
- days?: number;
- /**
- * The date to use as reference point for the newly generated date.
- *
- * @default faker.defaultRefDate()
- */
- refDate?: string | Date | number;
- }): Date;
- /**
- * Generates a random date in the near future.
- *
- * @param days The range of days the date may be in the future. Defaults to `1`.
- * @param refDate The date to use as reference point for the newly generated date. Defaults to `faker.defaultRefDate()`.
- *
- * @see faker.date.future(): For generating dates further in the future (years instead of days).
- *
- * @example
- * faker.date.soon() // '2022-02-05T09:55:39.216Z'
- * faker.date.soon(10) // '2022-02-11T05:14:39.138Z'
- * faker.date.soon(10, '2020-01-01T00:00:00.000Z') // '2020-01-01T02:40:44.990Z'
- *
- * @since 5.0.0
- *
- * @deprecated Use `faker.date.soon({ days, refDate })` instead.
- */
- soon(days?: number, refDate?: string | Date | number): Date;
- /**
- * Generates a random date in the near future.
- *
- * @param options The optional options object.
- * @param options.days The range of days the date may be in the future. Defaults to `1`.
- * @param options.refDate The date to use as reference point for the newly generated date. Defaults to `faker.defaultRefDate()`.
- * @param legacyRefDate Deprecated, use `options.refDate` instead.
- *
- * @see faker.date.future(): For generating dates further in the future (years instead of days).
- *
- * @example
- * faker.date.soon() // '2022-02-05T09:55:39.216Z'
- * faker.date.soon({ days: 10 }) // '2022-02-11T05:14:39.138Z'
- * faker.date.soon({ days: 10, refDate: '2020-01-01T00:00:00.000Z' }) // '2020-01-01T02:40:44.990Z'
- *
- * @since 8.0.0
- */
soon(
- options?:
- | number
- | {
- /**
- * The range of days the date may be in the future.
- *
- * @default 1
- */
- days?: number;
- /**
- * The date to use as reference point for the newly generated date.
- *
- * @default faker.defaultRefDate()
- */
- refDate?: string | Date | number;
- },
- legacyRefDate?: string | Date | number
- ): Date;
- soon(
- options: number | { days?: number; refDate?: string | Date | number } = {},
- legacyRefDate?: string | Date | number
+ options: {
+ /**
+ * The range of days the date may be in the future.
+ *
+ * @default 1
+ */
+ days?: number;
+ /**
+ * The date to use as reference point for the newly generated date.
+ *
+ * @default faker.defaultRefDate()
+ */
+ refDate?: string | Date | number;
+ } = {}
): Date {
- if (typeof options === 'number') {
- deprecated({
- deprecated: 'faker.date.soon(days, refDate)',
- proposed: 'faker.date.soon({ days, refDate })',
- since: '8.0',
- until: '9.0',
- });
- options = { days: options };
- }
-
- const { days = 1, refDate = legacyRefDate } = options;
+ const { days = 1, refDate } = options;
if (days <= 0) {
throw new FakerError('Days must be greater than 0.');
@@ -940,133 +484,12 @@ export class DateModule extends SimpleDateModule {
*
* @since 3.0.1
*/
- month(options?: {
- /**
- * Whether to return an abbreviation.
- *
- * @default false
- */
- abbreviated?: boolean;
- /**
- * Whether to return the name of a month in the context of a date.
- *
- * In the default `en` locale this has no effect,
- * however, in other locales like `fr` or `ru`, this may affect grammar or capitalization,
- * for example `'январь'` with `{ context: false }` and `'января'` with `{ context: true }` in `ru`.
- *
- * @default false
- */
- context?: boolean;
- }): string;
- /**
- * Returns a random name of a month.
- *
- * @param options The optional options to use.
- * @param options.abbr Deprecated, use `abbreviated` instead.
- * @param options.context Whether to return the name of a month in the context of a date. In the default `en` locale this has no effect, however, in other locales like `fr` or `ru`, this may affect grammar or capitalization, for example `'январь'` with `{ context: false }` and `'января'` with `{ context: true }` in `ru`. Defaults to `false`.
- *
- * @example
- * faker.date.month() // 'October'
- * faker.date.month({ abbr: true }) // 'Feb'
- * faker.date.month({ context: true }) // 'June'
- * faker.date.month({ abbr: true, context: true }) // 'Sep'
- *
- * @since 3.0.1
- *
- * @deprecated Use `faker.date.month({ abbreviated, ... })` instead.
- */
- month(options?: {
- /**
- * Whether to return an abbreviation.
- *
- * @default false
- *
- * @deprecated Use `abbreviated` instead.
- */
- abbr?: boolean;
- /**
- * Whether to return the name of a month in the context of a date.
- *
- * In the default `en` locale this has no effect,
- * however, in other locales like `fr` or `ru`, this may affect grammar or capitalization,
- * for example `'январь'` with `{ context: false }` and `'января'` with `{ context: true }` in `ru`.
- *
- * @default false
- */
- context?: boolean;
- }): string;
- /**
- * Returns a random name of a month.
- *
- * @param options The optional options to use.
- * @param options.abbr Deprecated, use `abbreviated` instead.
- * @param options.abbreviated Whether to return an abbreviation. Defaults to `false`.
- * @param options.context Whether to return the name of a month in the context of a date. In the default `en` locale this has no effect, however, in other locales like `fr` or `ru`, this may affect grammar or capitalization, for example `'январь'` with `{ context: false }` and `'января'` with `{ context: true }` in `ru`. Defaults to `false`.
- *
- * @example
- * faker.date.month() // 'October'
- * faker.date.month({ abbreviated: true }) // 'Feb'
- * faker.date.month({ context: true }) // 'June'
- * faker.date.month({ abbreviated: true, context: true }) // 'Sep'
- *
- * @since 3.0.1
- */
- month(options?: {
- /**
- * Whether to return an abbreviation.
- *
- * @default false
- *
- * @deprecated Use `abbreviated` instead.
- */
- abbr?: boolean;
- /**
- * Whether to return an abbreviation.
- *
- * @default false
- */
- abbreviated?: boolean;
- /**
- * Whether to return the name of a month in the context of a date.
- *
- * In the default `en` locale this has no effect,
- * however, in other locales like `fr` or `ru`, this may affect grammar or capitalization,
- * for example `'январь'` with `{ context: false }` and `'января'` with `{ context: true }` in `ru`.
- *
- * @default false
- */
- context?: boolean;
- }): string;
- /**
- * Returns a random name of a month.
- *
- * @param options The optional options to use.
- * @param options.abbr Deprecated, use `abbreviated` instead.
- * @param options.abbreviated Whether to return an abbreviation. Defaults to `false`.
- * @param options.context Whether to return the name of a month in the context of a date. In the default `en` locale this has no effect, however, in other locales like `fr` or `ru`, this may affect grammar or capitalization, for example `'январь'` with `{ context: false }` and `'января'` with `{ context: true }` in `ru`. Defaults to `false`.
- *
- * @example
- * faker.date.month() // 'October'
- * faker.date.month({ abbreviated: true }) // 'Feb'
- * faker.date.month({ context: true }) // 'June'
- * faker.date.month({ abbreviated: true, context: true }) // 'Sep'
- *
- * @since 3.0.1
- */
month(
options: {
/**
* Whether to return an abbreviation.
*
* @default false
- *
- * @deprecated Use `abbreviated` instead.
- */
- abbr?: boolean;
- /**
- * Whether to return an abbreviation.
- *
- * @default false
*/
abbreviated?: boolean;
/**
@@ -1081,17 +504,7 @@ export class DateModule extends SimpleDateModule {
context?: boolean;
} = {}
): string {
- // eslint-disable-next-line deprecation/deprecation
- const { abbr, abbreviated = abbr ?? false, context = false } = options;
-
- if (abbr != null) {
- deprecated({
- deprecated: 'faker.date.month({ abbr })',
- proposed: 'faker.date.month({ abbreviated })',
- since: '8.0',
- until: '9.0',
- });
- }
+ const { abbreviated = false, context = false } = options;
const source = this.faker.definitions.date.month;
let type: keyof DateEntryDefinition;
@@ -1123,134 +536,12 @@ export class DateModule extends SimpleDateModule {
*
* @since 3.0.1
*/
- weekday(options?: {
- /**
- * Whether to return an abbreviation.
- *
- * @default false
- */
- abbreviated?: boolean;
- /**
- * Whether to return the day of the week in the context of a date.
- *
- * In the default `en` locale this has no effect,
- * however, in other locales like `fr` or `ru`, this may affect grammar or capitalization,
- * for example `'Lundi'` with `{ context: false }` and `'lundi'` with `{ context: true }` in `fr`.
- *
- * @default false
- */
- context?: boolean;
- }): string;
- /**
- * Returns a random day of the week.
- *
- * @param options The optional options to use.
- * @param options.abbr Deprecated, use `abbreviated` instead.
- * @param options.abbreviated Whether to return an abbreviation. Defaults to `false`.
- * @param options.context Whether to return the day of the week in the context of a date. In the default `en` locale this has no effect, however, in other locales like `fr` or `ru`, this may affect grammar or capitalization, for example `'Lundi'` with `{ context: false }` and `'lundi'` with `{ context: true }` in `fr`. Defaults to `false`.
- *
- * @example
- * faker.date.weekday() // 'Monday'
- * faker.date.weekday({ abbr: true }) // 'Thu'
- * faker.date.weekday({ context: true }) // 'Thursday'
- * faker.date.weekday({ abbr: true, context: true }) // 'Fri'
- *
- * @since 3.0.1
- *
- * @deprecated Use `faker.date.weekday({ abbreviated, ... })` instead.
- */
- weekday(options?: {
- /**
- * Whether to return an abbreviation.
- *
- * @default false
- *
- * @deprecated Use `abbreviated` instead.
- */
- abbr?: boolean;
- /**
- * Whether to return the day of the week in the context of a date.
- *
- * In the default `en` locale this has no effect,
- * however, in other locales like `fr` or `ru`, this may affect grammar or capitalization,
- * for example `'Lundi'` with `{ context: false }` and `'lundi'` with `{ context: true }` in `fr`.
- *
- * @default false
- */
- context?: boolean;
- }): string;
- /**
- * Returns a random day of the week.
- *
- * @param options The optional options to use.
- * @param options.abbr Deprecated, use `abbreviated` instead.
- * @param options.abbreviated Whether to return an abbreviation. Defaults to `false`.
- * @param options.context Whether to return the day of the week in the context of a date. In the default `en` locale this has no effect, however, in other locales like `fr` or `ru`, this may affect grammar or capitalization, for example `'Lundi'` with `{ context: false }` and `'lundi'` with `{ context: true }` in `fr`. Defaults to `false`.
- *
- * @example
- * faker.date.weekday() // 'Monday'
- * faker.date.weekday({ abbreviated: true }) // 'Thu'
- * faker.date.weekday({ context: true }) // 'Thursday'
- * faker.date.weekday({ abbreviated: true, context: true }) // 'Fri'
- *
- * @since 3.0.1
- */
- weekday(options?: {
- /**
- * Whether to return an abbreviation.
- *
- * @default false
- *
- * @deprecated Use `abbreviated` instead.
- */
- abbr?: boolean;
- /**
- * Whether to return an abbreviation.
- *
- * @default false
- */
- abbreviated?: boolean;
- /**
- * Whether to return the day of the week in the context of a date.
- *
- * In the default `en` locale this has no effect,
- * however, in other locales like `fr` or `ru`, this may affect grammar or capitalization,
- * for example `'Lundi'` with `{ context: false }` and `'lundi'` with `{ context: true }` in `fr`.
- *
- * @default false
- */
- context?: boolean;
- }): string;
- /**
- * Returns a random day of the week.
- *
- * @param options The optional options to use.
- * @param options.abbr Deprecated, use `abbreviated` instead.
- * @param options.abbreviated Whether to return an abbreviation. Defaults to `false`.
- * @param options.context Whether to return the day of the week in the context of a date. In the default `en` locale this has no effect, however, in other locales like `fr` or `ru`, this may affect grammar or capitalization, for example `'Lundi'` with `{ context: false }` and `'lundi'` with `{ context: true }` in `fr`. Defaults to `false`.
- *
- * @example
- * faker.date.weekday() // 'Monday'
- * faker.date.weekday({ abbreviated: true }) // 'Thu'
- * faker.date.weekday({ context: true }) // 'Thursday'
- * faker.date.weekday({ abbreviated: true, context: true }) // 'Fri'
- *
- * @since 3.0.1
- */
weekday(
options: {
/**
* Whether to return an abbreviation.
*
* @default false
- *
- * @deprecated Use `abbreviated` instead.
- */
- abbr?: boolean;
- /**
- * Whether to return an abbreviation.
- *
- * @default false
*/
abbreviated?: boolean;
/**
@@ -1265,17 +556,7 @@ export class DateModule extends SimpleDateModule {
context?: boolean;
} = {}
): string {
- // eslint-disable-next-line deprecation/deprecation
- const { abbr, abbreviated = abbr ?? false, context = false } = options;
-
- if (abbr != null) {
- deprecated({
- deprecated: 'faker.date.weekday({ abbr })',
- proposed: 'faker.date.weekday({ abbreviated })',
- since: '8.0',
- until: '9.0',
- });
- }
+ const { abbreviated = false, context = false } = options;
const source = this.faker.definitions.date.weekday;
let type: keyof DateEntryDefinition;
diff --git a/test/all-functional.spec.ts b/test/all-functional.spec.ts
index 5f7618ff..51540feb 100644
--- a/test/all-functional.spec.ts
+++ b/test/all-functional.spec.ts
@@ -49,6 +49,10 @@ const BROKEN_LOCALE_METHODS = {
suffixes: ['az'],
companySuffix: ['az'],
},
+ date: {
+ between: '*',
+ betweens: '*',
+ },
location: {
state: ['az', 'nb_NO', 'ro_MD', 'sk'],
stateAbbr: ['cs_CZ', 'ro_MD', 'sk'],
diff --git a/test/modules/__snapshots__/date.spec.ts.snap b/test/modules/__snapshots__/date.spec.ts.snap
index 1b28f47b..9b3c3d76 100644
--- a/test/modules/__snapshots__/date.spec.ts.snap
+++ b/test/modules/__snapshots__/date.spec.ts.snap
@@ -380,219 +380,3 @@ exports[`date > 1337 > weekday > with abbreviated = true 1`] = `"Mon"`;
exports[`date > 1337 > weekday > with abbreviated = true and context = true 1`] = `"Mon"`;
exports[`date > 1337 > weekday > with context = true 1`] = `"Monday"`;
-
-exports[`date > deprecated > 42 > between > with Date dates 1`] = `2021-03-15T19:30:57.115Z`;
-
-exports[`date > deprecated > 42 > between > with string dates 1`] = `2021-03-15T19:30:57.115Z`;
-
-exports[`date > deprecated > 42 > betweens > with Date dates 1`] = `
-[
- 2021-03-15T19:30:57.115Z,
- 2021-04-05T21:40:57.332Z,
- 2021-04-18T19:23:52.947Z,
-]
-`;
-
-exports[`date > deprecated > 42 > betweens > with Date dates and count 1`] = `
-[
- 2021-03-02T22:04:55.366Z,
- 2021-03-15T19:30:57.115Z,
- 2021-03-29T00:52:30.236Z,
- 2021-04-05T21:40:57.332Z,
- 2021-04-18T19:23:52.947Z,
-]
-`;
-
-exports[`date > deprecated > 42 > betweens > with string dates 1`] = `
-[
- 2021-03-15T19:30:57.115Z,
- 2021-04-05T21:40:57.332Z,
- 2021-04-18T19:23:52.947Z,
-]
-`;
-
-exports[`date > deprecated > 42 > betweens > with string dates and count 1`] = `
-[
- 2021-03-02T22:04:55.366Z,
- 2021-03-15T19:30:57.115Z,
- 2021-03-29T00:52:30.236Z,
- 2021-04-05T21:40:57.332Z,
- 2021-04-18T19:23:52.947Z,
-]
-`;
-
-exports[`date > deprecated > 42 > future > with only Date refDate 1`] = `2021-07-08T10:07:33.524Z`;
-
-exports[`date > deprecated > 42 > future > with only number refDate 1`] = `2021-07-08T10:07:33.524Z`;
-
-exports[`date > deprecated > 42 > future > with only string refDate 1`] = `2021-07-08T10:07:33.524Z`;
-
-exports[`date > deprecated > 42 > future > with value 1`] = `2024-11-19T18:52:08.216Z`;
-
-exports[`date > deprecated > 42 > past > with only Date refDate 1`] = `2020-10-08T00:10:57.898Z`;
-
-exports[`date > deprecated > 42 > past > with only number refDate 1`] = `2020-10-08T00:10:57.898Z`;
-
-exports[`date > deprecated > 42 > past > with only string refDate 1`] = `2020-10-08T00:10:57.898Z`;
-
-exports[`date > deprecated > 42 > past > with value 1`] = `2017-05-26T15:26:23.206Z`;
-
-exports[`date > deprecated > 42 > recent > with only Date refDate 1`] = `2021-02-21T08:09:54.819Z`;
-
-exports[`date > deprecated > 42 > recent > with only number refDate 1`] = `2021-02-21T08:09:54.819Z`;
-
-exports[`date > deprecated > 42 > recent > with only string refDate 1`] = `2021-02-21T08:09:54.819Z`;
-
-exports[`date > deprecated > 42 > recent > with value 1`] = `2021-02-17T23:15:52.423Z`;
-
-exports[`date > deprecated > 42 > soon > with only Date refDate 1`] = `2021-02-22T02:08:36.603Z`;
-
-exports[`date > deprecated > 42 > soon > with only number refDate 1`] = `2021-02-22T02:08:36.603Z`;
-
-exports[`date > deprecated > 42 > soon > with only string refDate 1`] = `2021-02-22T02:08:36.603Z`;
-
-exports[`date > deprecated > 42 > soon > with value 1`] = `2021-02-25T11:02:38.999Z`;
-
-exports[`date > deprecated > 1211 > between > with Date dates 1`] = `2021-04-17T11:58:13.327Z`;
-
-exports[`date > deprecated > 1211 > between > with string dates 1`] = `2021-04-17T11:58:13.327Z`;
-
-exports[`date > deprecated > 1211 > betweens > with Date dates 1`] = `
-[
- 2021-03-07T00:34:12.745Z,
- 2021-04-15T10:20:25.794Z,
- 2021-04-17T11:58:13.327Z,
-]
-`;
-
-exports[`date > deprecated > 1211 > betweens > with Date dates and count 1`] = `
-[
- 2021-03-07T00:34:12.745Z,
- 2021-04-02T08:42:57.721Z,
- 2021-04-15T10:20:25.794Z,
- 2021-04-17T11:58:13.327Z,
- 2021-04-21T13:18:14.822Z,
-]
-`;
-
-exports[`date > deprecated > 1211 > betweens > with string dates 1`] = `
-[
- 2021-03-07T00:34:12.745Z,
- 2021-04-15T10:20:25.794Z,
- 2021-04-17T11:58:13.327Z,
-]
-`;
-
-exports[`date > deprecated > 1211 > betweens > with string dates and count 1`] = `
-[
- 2021-03-07T00:34:12.745Z,
- 2021-04-02T08:42:57.721Z,
- 2021-04-15T10:20:25.794Z,
- 2021-04-17T11:58:13.327Z,
- 2021-04-21T13:18:14.822Z,
-]
-`;
-
-exports[`date > deprecated > 1211 > future > with only Date refDate 1`] = `2022-01-26T14:59:27.356Z`;
-
-exports[`date > deprecated > 1211 > future > with only number refDate 1`] = `2022-01-26T14:59:27.356Z`;
-
-exports[`date > deprecated > 1211 > future > with only string refDate 1`] = `2022-01-26T14:59:27.356Z`;
-
-exports[`date > deprecated > 1211 > future > with value 1`] = `2030-06-03T19:31:11.518Z`;
-
-exports[`date > deprecated > 1211 > past > with only Date refDate 1`] = `2020-03-19T19:19:04.066Z`;
-
-exports[`date > deprecated > 1211 > past > with only number refDate 1`] = `2020-03-19T19:19:04.066Z`;
-
-exports[`date > deprecated > 1211 > past > with only string refDate 1`] = `2020-03-19T19:19:04.066Z`;
-
-exports[`date > deprecated > 1211 > past > with value 1`] = `2011-11-12T14:47:19.904Z`;
-
-exports[`date > deprecated > 1211 > recent > with only Date refDate 1`] = `2021-02-20T18:52:11.498Z`;
-
-exports[`date > deprecated > 1211 > recent > with only number refDate 1`] = `2021-02-20T18:52:11.498Z`;
-
-exports[`date > deprecated > 1211 > recent > with only string refDate 1`] = `2021-02-20T18:52:11.498Z`;
-
-exports[`date > deprecated > 1211 > recent > with value 1`] = `2021-02-12T10:18:34.226Z`;
-
-exports[`date > deprecated > 1211 > soon > with only Date refDate 1`] = `2021-02-22T15:26:19.924Z`;
-
-exports[`date > deprecated > 1211 > soon > with only number refDate 1`] = `2021-02-22T15:26:19.924Z`;
-
-exports[`date > deprecated > 1211 > soon > with only string refDate 1`] = `2021-02-22T15:26:19.924Z`;
-
-exports[`date > deprecated > 1211 > soon > with value 1`] = `2021-03-02T23:59:57.196Z`;
-
-exports[`date > deprecated > 1337 > between > with Date dates 1`] = `2021-03-09T04:11:24.661Z`;
-
-exports[`date > deprecated > 1337 > between > with string dates 1`] = `2021-03-09T04:11:24.661Z`;
-
-exports[`date > deprecated > 1337 > betweens > with Date dates 1`] = `
-[
- 2021-03-03T01:51:22.487Z,
- 2021-03-09T04:11:24.661Z,
- 2021-03-10T02:59:27.388Z,
-]
-`;
-
-exports[`date > deprecated > 1337 > betweens > with Date dates and count 1`] = `
-[
- 2021-03-03T01:51:22.487Z,
- 2021-03-09T04:11:24.661Z,
- 2021-03-10T02:59:27.388Z,
- 2021-03-12T15:42:07.228Z,
- 2021-03-20T19:33:45.512Z,
-]
-`;
-
-exports[`date > deprecated > 1337 > betweens > with string dates 1`] = `
-[
- 2021-03-03T01:51:22.487Z,
- 2021-03-09T04:11:24.661Z,
- 2021-03-10T02:59:27.388Z,
-]
-`;
-
-exports[`date > deprecated > 1337 > betweens > with string dates and count 1`] = `
-[
- 2021-03-03T01:51:22.487Z,
- 2021-03-09T04:11:24.661Z,
- 2021-03-10T02:59:27.388Z,
- 2021-03-12T15:42:07.228Z,
- 2021-03-20T19:33:45.512Z,
-]
-`;
-
-exports[`date > deprecated > 1337 > future > with only Date refDate 1`] = `2021-05-28T08:29:26.600Z`;
-
-exports[`date > deprecated > 1337 > future > with only number refDate 1`] = `2021-05-28T08:29:26.600Z`;
-
-exports[`date > deprecated > 1337 > future > with only string refDate 1`] = `2021-05-28T08:29:26.600Z`;
-
-exports[`date > deprecated > 1337 > future > with value 1`] = `2023-10-06T02:30:57.962Z`;
-
-exports[`date > deprecated > 1337 > past > with only Date refDate 1`] = `2020-11-18T01:49:04.822Z`;
-
-exports[`date > deprecated > 1337 > past > with only number refDate 1`] = `2020-11-18T01:49:04.822Z`;
-
-exports[`date > deprecated > 1337 > past > with only string refDate 1`] = `2020-11-18T01:49:04.822Z`;
-
-exports[`date > deprecated > 1337 > past > with value 1`] = `2018-07-11T07:47:33.460Z`;
-
-exports[`date > deprecated > 1337 > recent > with only Date refDate 1`] = `2021-02-21T10:51:56.041Z`;
-
-exports[`date > deprecated > 1337 > recent > with only number refDate 1`] = `2021-02-21T10:51:56.041Z`;
-
-exports[`date > deprecated > 1337 > recent > with only string refDate 1`] = `2021-02-21T10:51:56.041Z`;
-
-exports[`date > deprecated > 1337 > recent > with value 1`] = `2021-02-19T02:16:05.654Z`;
-
-exports[`date > deprecated > 1337 > soon > with only Date refDate 1`] = `2021-02-21T23:26:35.381Z`;
-
-exports[`date > deprecated > 1337 > soon > with only number refDate 1`] = `2021-02-21T23:26:35.381Z`;
-
-exports[`date > deprecated > 1337 > soon > with only string refDate 1`] = `2021-02-21T23:26:35.381Z`;
-
-exports[`date > deprecated > 1337 > soon > with value 1`] = `2021-02-24T08:02:25.768Z`;
diff --git a/test/modules/date.spec.ts b/test/modules/date.spec.ts
index d2e08337..303dc407 100644
--- a/test/modules/date.spec.ts
+++ b/test/modules/date.spec.ts
@@ -141,66 +141,6 @@ describe('date', () => {
});
});
- describe('deprecated', () => {
- seededTests(faker, 'date', (t) => {
- t.describeEach(
- 'past',
- 'recent',
- 'soon',
- 'future'
- )((t) => {
- t.it('with only string refDate', undefined, refDate)
- .it('with only Date refDate', undefined, new Date(refDate))
- .it(
- 'with only number refDate',
- undefined,
- new Date(refDate).getTime()
- )
- .it('with value', 10, refDate);
- });
-
- t.describe('between', (t) => {
- t.it(
- 'with string dates',
- '2021-02-21T17:09:15.711Z',
- '2021-04-21T17:11:17.711Z'
- ).it(
- 'with Date dates',
- new Date('2021-02-21T17:09:15.711Z'),
- new Date('2021-04-21T17:11:17.711Z')
- );
- });
-
- t.describe('betweens', (t) => {
- t.it(
- 'with string dates',
- '2021-02-21T17:09:15.711Z',
- '2021-04-21T17:11:17.711Z'
- )
- .it(
- 'with Date dates',
- new Date('2021-02-21T17:09:15.711Z'),
- new Date('2021-04-21T17:11:17.711Z')
- )
- .it(
- 'with string dates and count',
- '2021-02-21T17:09:15.711Z',
- '2021-04-21T17:11:17.711Z',
- 5
- )
- .it(
- 'with Date dates and count',
- new Date('2021-02-21T17:09:15.711Z'),
- new Date('2021-04-21T17:11:17.711Z'),
- 5
- );
- });
-
- // No changes to these methods
- t.skip('anytime').skip('birthdate').skip('month').skip('weekday');
- });
- });
-
describe.each(times(NON_SEEDED_BASED_RUN).map(() => faker.seed()))(
'random seeded tests for seed %i',
() => {
@@ -325,11 +265,11 @@ describe('date', () => {
const from = new Date(1990, 5, 7, 9, 11, 0, 0);
const to = new Date(2000, 6, 8, 10, 12, 0, 0);
- const dates = faker.date.betweens(
- converter(from),
- converter(to),
- 2
- );
+ const dates = faker.date.betweens({
+ from: converter(from),
+ to: converter(to),
+ count: 2,
+ });
expect(dates).toHaveLength(2);
@@ -458,22 +398,11 @@ describe('date', () => {
expect(fakerAZ.definitions.date.month.wide_context).toContain(month);
});
- it('should return random value from date.month.abbr array for abbr option', () => {
- const month = faker.date.month({ abbr: true });
- expect(faker.definitions.date.month.abbr).toContain(month);
- });
-
it('should return random value from date.month.abbr array for abbreviated option', () => {
const month = faker.date.month({ abbreviated: true });
expect(faker.definitions.date.month.abbr).toContain(month);
});
- it('should return random value from date.month.abbr_context array for abbr and context option', () => {
- // Use a locale (e.g. az) which has a wide_context array
- const month = fakerAZ.date.month({ abbr: true, context: true });
- expect(fakerAZ.definitions.date.month.abbr_context).toContain(month);
- });
-
it('should return random value from date.month.abbr_context array for abbreviated and context option', () => {
// Use a locale (e.g. az) which has a wide_context array
const month = fakerAZ.date.month({
@@ -489,12 +418,6 @@ describe('date', () => {
expect(faker.definitions.date.month.wide).toContain(month);
});
- it('should return random value from date.month.abbr array for abbr and context option when date.month.abbr_context array is missing', () => {
- // Use a locale (e.g. the default en) which has no abbr_context array
- const month = faker.date.month({ abbr: true, context: true });
- expect(faker.definitions.date.month.abbr).toContain(month);
- });
-
it('should return random value from date.month.abbr array for abbreviated and context option when date.month.abbr_context array is missing', () => {
// Use a locale (e.g. the default en) which has no abbr_context array
const month = faker.date.month({ abbreviated: true, context: true });
@@ -516,24 +439,11 @@ describe('date', () => {
);
});
- it('should return random value from date.weekday.abbr array for abbr option', () => {
- const weekday = faker.date.weekday({ abbr: true });
- expect(faker.definitions.date.weekday.abbr).toContain(weekday);
- });
-
it('should return random value from date.weekday.abbr array for abbreviated option', () => {
const weekday = faker.date.weekday({ abbreviated: true });
expect(faker.definitions.date.weekday.abbr).toContain(weekday);
});
- it('should return random value from date.weekday.abbr_context array for abbr and context option', () => {
- // Use a locale (e.g. az) which has a abbr_context array
- const weekday = fakerAZ.date.weekday({ abbr: true, context: true });
- expect(fakerAZ.definitions.date.weekday.abbr_context).toContain(
- weekday
- );
- });
-
it('should return random value from date.weekday.abbr_context array for abbreviated and context option', () => {
// Use a locale (e.g. az) which has a abbr_context array
const weekday = fakerAZ.date.weekday({
@@ -551,12 +461,6 @@ describe('date', () => {
expect(faker.definitions.date.weekday.wide).toContain(weekday);
});
- it('should return random value from date.weekday.abbr array for abbr and context option when date.weekday.abbr_context array is missing', () => {
- // Use a locale (e.g. the default en) which has no abbr_context array
- const weekday = faker.date.weekday({ abbr: true, context: true });
- expect(faker.definitions.date.weekday.abbr).toContain(weekday);
- });
-
it('should return random value from date.weekday.abbr array for abbreviated and context option when date.weekday.abbr_context array is missing', () => {
// Use a locale (e.g. the default en) which has no abbr_context array
const weekday = faker.date.weekday({
@@ -647,177 +551,6 @@ describe('date', () => {
);
});
});
-
- describe('deprecated', () => {
- describe('past()', () => {
- it('should return a date 5 years in the past', () => {
- const today = new Date();
- const yearsAgo = new Date(today);
- yearsAgo.setFullYear(yearsAgo.getFullYear() - 5);
-
- const date = faker.date.past(5);
-
- expect(date).lessThan(today);
- expect(date).greaterThanOrEqual(yearsAgo);
- });
-
- it('should throw an error when years = 0', () => {
- const refDate = new Date();
- expect(() => faker.date.past(0, refDate.toISOString())).toThrow(
- new FakerError('Years must be greater than 0.')
- );
- });
-
- it.each(converterMap)(
- 'should return a past date relative to given refDate',
- (converter) => {
- const refDate = new Date();
- refDate.setFullYear(refDate.getFullYear() + 5);
-
- const date = faker.date.past(5, converter(refDate));
-
- expect(date).lessThan(refDate);
- expect(date).greaterThan(new Date());
- }
- );
- });
-
- describe('future()', () => {
- it('should return a date 75 years into the future', () => {
- const date = faker.date.future(75);
-
- expect(date).greaterThan(new Date());
- });
-
- it('should throw an error when years = 0', () => {
- const refDate = new Date();
- expect(() => faker.date.future(0, refDate.toISOString())).toThrow(
- new FakerError('Years must be greater than 0.')
- );
- });
-
- it.each(converterMap)(
- 'should return a date 75 years after the date given',
- (converter) => {
- const refDate = new Date(1880, 11, 9, 10, 0, 0, 0); // set the date beyond the usual calculation (to make sure this is working correctly)
-
- const date = faker.date.future(75, converter(refDate));
-
- // date should be after the date given, but before the current time
- expect(date).greaterThan(refDate);
- expect(date).lessThan(new Date());
- }
- );
- });
-
- describe('between()', () => {
- it.each(converterMap)(
- 'should return a random date between the dates given',
- (converter) => {
- const from = new Date(1990, 5, 7, 9, 11, 0, 0);
- const to = new Date(2000, 6, 8, 10, 12, 0, 0);
-
- const date = faker.date.between(converter(from), converter(to));
-
- expect(date).greaterThan(from);
- expect(date).lessThan(to);
- }
- );
- });
-
- describe('betweens()', () => {
- it.each(converterMap)(
- 'should return an array of 3 dates ( by default ) of sorted randoms dates between the dates given',
- (converter) => {
- const from = new Date(1990, 5, 7, 9, 11, 0, 0);
- const to = new Date(2000, 6, 8, 10, 12, 0, 0);
-
- const dates = faker.date.betweens(converter(from), converter(to));
-
- expect(dates[0]).greaterThan(from);
- expect(dates[0]).lessThan(to);
- expect(dates[1]).greaterThan(dates[0]);
- expect(dates[2]).greaterThan(dates[1]);
- }
- );
- });
-
- describe('recent()', () => {
- it('should return a date N days from the recent past', () => {
- const date = faker.date.recent(30);
-
- expect(date).lessThanOrEqual(new Date());
- });
-
- it('should throw an error when days = 0', () => {
- const refDate = new Date();
- expect(() => faker.date.recent(0, refDate.toISOString())).toThrow(
- new FakerError('Days must be greater than 0.')
- );
- });
-
- it.each(converterMap)(
- 'should return a date N days from the recent past, starting from refDate',
- (converter) => {
- const days = 30;
- const refDate = new Date(2120, 11, 9, 10, 0, 0, 0); // set the date beyond the usual calculation (to make sure this is working correctly)
-
- const lowerBound = new Date(
- refDate.getTime() - days * 24 * 60 * 60 * 1000
- );
-
- const date = faker.date.recent(days, converter(refDate));
-
- expect(
- lowerBound,
- '`recent()` date should not be further back than `n` days ago'
- ).lessThanOrEqual(date);
- expect(
- date,
- '`recent()` date should not be ahead of the starting date reference'
- ).lessThanOrEqual(refDate);
- }
- );
- });
-
- describe('soon()', () => {
- it('should return a date N days into the future', () => {
- const date = faker.date.soon(30);
-
- expect(date).greaterThanOrEqual(new Date());
- });
-
- it('should throw an error when days = 0', () => {
- const refDate = new Date();
- expect(() => faker.date.soon(0, refDate.toISOString())).toThrow(
- new FakerError('Days must be greater than 0.')
- );
- });
-
- it.each(converterMap)(
- 'should return a date N days from the recent future, starting from refDate',
- (converter) => {
- const days = 30;
- const refDate = new Date(1880, 11, 9, 10, 0, 0, 0); // set the date beyond the usual calculation (to make sure this is working correctly)
-
- const upperBound = new Date(
- refDate.getTime() + days * 24 * 60 * 60 * 1000
- );
-
- const date = faker.date.soon(days, converter(refDate));
-
- expect(
- date,
- '`soon()` date should not be further ahead than `n` days ago'
- ).lessThanOrEqual(upperBound);
- expect(
- refDate,
- '`soon()` date should not be behind the starting date reference'
- ).lessThanOrEqual(date);
- }
- );
- });
- });
}
);