src/DataSeeding/Factories/UserFactory.ts   A
last analyzed

Complexity

Total Complexity 4
Complexity/F 1

Size

Lines of Code 45
Function Count 4

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 4
eloc 34
mnd 0
bc 0
fnc 4
dl 0
loc 45
bpm 0
cpm 1
noi 0
c 0
b 0
f 0
rs 10

4 Functions

Rating   Name   Duplication   Size   Complexity  
A UserFactory.entity 0 10 1
A JohnFactory.entity 0 10 1
A UserFactory.finalize 0 4 1
A JohnFactory.finalize 0 4 1
1
import { Factory } from '@concepta/typeorm-seeding';
2
import { faker } from '@faker-js/faker';
3
import { User, UserRole } from 'src/Domain/HumanResource/User/User.entity';
4
import { UserAdministrativeFactory } from './UserAdministrativeFactory';
5
6
export class UserFactory extends Factory<User> {
7
  protected async entity(): Promise<User> {
8
    const user = new User(
9
      faker.name.firstName('female'),
10
      faker.name.lastName('female'),
11
      faker.internet.email(),
12
      '$argon2i$v=19$m=4096,t=3,p=1$slHh/xhoh8SvIjApBHSZnA$hqsry11DeWbNYsFnzADPkYOP2WQrf0yqDXGC3xjSX9A',
13
      '$argon2i$v=19$m=4096,t=3,p=1$slHh/xhoh8SvIjApBHSZnA$hqsry11DeWbNYsFnzADPkYOP2WQrf0yqDXGC3xjSX9A',
14
      UserRole.COOPERATOR
15
    );
16
    return user;
17
  }
18
19
  protected async finalize(entity: User): Promise<void> {
20
    entity.userAdministrative = await this.factory(
21
      UserAdministrativeFactory
22
    ).create();
23
  }
24
}
25
26
export class JohnFactory extends Factory<User> {
27
  protected async entity(): Promise<User> {
28
    const user = new User(
29
      'john',
30
      'doe',
31
      '[email protected]',
32
      '$argon2i$v=19$m=4096,t=3,p=1$slHh/xhoh8SvIjApBHSZnA$hqsry11DeWbNYsFnzADPkYOP2WQrf0yqDXGC3xjSX9A',
33
      '$argon2i$v=19$m=4096,t=3,p=1$slHh/xhoh8SvIjApBHSZnA$hqsry11DeWbNYsFnzADPkYOP2WQrf0yqDXGC3xjSX9A',
34
      UserRole.COOPERATOR
35
    );
36
    return user;
37
  }
38
39
  protected async finalize(entity: User): Promise<void> {
40
    entity.userAdministrative = await this.factory(
41
      UserAdministrativeFactory
42
    ).create();
43
  }
44
}
45