File tree 4 files changed +35
-20
lines changed 4 files changed +35
-20
lines changed Original file line number Diff line number Diff line change @@ -4,14 +4,7 @@ import type { Faker } from '.';
4
4
* Module to generate various primitive values and data types.
5
5
*/
6
6
export class Datatype {
7
- constructor ( private readonly faker : Faker , seed ?: number | number [ ] ) {
8
- // Use a user provided seed if it is an array or number
9
- if ( Array . isArray ( seed ) && seed . length ) {
10
- this . faker . mersenne . seed_array ( seed ) ;
11
- } else if ( ! Array . isArray ( seed ) && ! isNaN ( seed ) ) {
12
- this . faker . mersenne . seed ( seed ) ;
13
- }
14
-
7
+ constructor ( private readonly faker : Faker ) {
15
8
// Bind `this` so namespaced is working correctly
16
9
for ( const name of Object . getOwnPropertyNames ( Datatype . prototype ) ) {
17
10
if ( name === 'constructor' || typeof this [ name ] !== 'function' ) {
Original file line number Diff line number Diff line change @@ -129,10 +129,13 @@ export class Faker {
129
129
} ) ;
130
130
}
131
131
132
- seed ( value ?: number | number [ ] ) : void {
133
- this . seedValue = value ;
134
- this . random = new Random ( this , this . seedValue ) ;
135
- this . datatype = new Datatype ( this , this . seedValue ) ;
132
+ seed ( seed ?: number | number [ ] ) : void {
133
+ this . seedValue = seed ;
134
+ if ( Array . isArray ( seed ) && seed . length ) {
135
+ this . mersenne . seed_array ( seed ) ;
136
+ } else if ( ! Array . isArray ( seed ) && ! isNaN ( seed ) ) {
137
+ this . mersenne . seed ( seed ) ;
138
+ }
136
139
}
137
140
138
141
/**
Original file line number Diff line number Diff line change @@ -18,14 +18,7 @@ function arrayRemove<T>(arr: T[], values: T[]): T[] {
18
18
* Generates random values of different kinds. Some methods are deprecated and have been moved to dedicated modules.
19
19
*/
20
20
export class Random {
21
- constructor ( private readonly faker : Faker , seed ?: number | number [ ] ) {
22
- // Use a user provided seed if it is an array or number
23
- if ( Array . isArray ( seed ) && seed . length ) {
24
- this . faker . mersenne . seed_array ( seed ) ;
25
- } else if ( ! Array . isArray ( seed ) && ! isNaN ( seed ) ) {
26
- this . faker . mersenne . seed ( seed ) ;
27
- }
28
-
21
+ constructor ( private readonly faker : Faker ) {
29
22
// Bind `this` so namespaced is working correctly
30
23
for ( const name of Object . getOwnPropertyNames ( Random . prototype ) ) {
31
24
if ( name === 'constructor' || typeof this [ name ] !== 'function' ) {
Original file line number Diff line number Diff line change
1
+ import { beforeEach , describe , expect , it } from 'vitest' ;
2
+ import { faker } from '../src' ;
3
+
4
+ describe ( 'faker' , ( ) => {
5
+ beforeEach ( ( ) => {
6
+ faker . locale = 'en' ;
7
+ } ) ;
8
+
9
+ // This is only here for coverage
10
+ // The actual test is in mersenne.spec.ts
11
+ describe ( 'seed()' , ( ) => {
12
+ it ( 'seed(number)' , ( ) => {
13
+ faker . seed ( 1 ) ;
14
+
15
+ const actual = faker . animal . cat ( ) ;
16
+ expect ( actual ) . toBe ( 'Korat' ) ;
17
+ } ) ;
18
+
19
+ it ( 'seed(number[])' , ( ) => {
20
+ faker . seed ( [ 1 , 2 , 3 ] ) ;
21
+
22
+ const actual = faker . animal . cat ( ) ;
23
+ expect ( actual ) . toBe ( 'Oriental' ) ;
24
+ } ) ;
25
+ } ) ;
26
+ } ) ;
You can’t perform that action at this time.
0 commit comments