diff options
Diffstat (limited to 'database/factories')
-rw-r--r-- | database/factories/ServiceFactory.ts | 8 | ||||
-rw-r--r-- | database/factories/TokenFactory.ts | 17 | ||||
-rw-r--r-- | database/factories/UserFactory.ts | 21 | ||||
-rw-r--r-- | database/factories/WorkspaceFactory.ts | 7 |
4 files changed, 53 insertions, 0 deletions
diff --git a/database/factories/ServiceFactory.ts b/database/factories/ServiceFactory.ts new file mode 100644 index 0000000..f675063 --- /dev/null +++ b/database/factories/ServiceFactory.ts | |||
@@ -0,0 +1,8 @@ | |||
1 | import Service from 'App/Models/Service'; | ||
2 | import Factory from '@ioc:Adonis/Lucid/Factory'; | ||
3 | |||
4 | export default Factory.define(Service, ({ faker }) => ({ | ||
5 | name: faker.company.name(), | ||
6 | recipeId: faker.string.alphanumeric(9), | ||
7 | serviceId: faker.string.alphanumeric(10), | ||
8 | })).build(); | ||
diff --git a/database/factories/TokenFactory.ts b/database/factories/TokenFactory.ts new file mode 100644 index 0000000..5afc679 --- /dev/null +++ b/database/factories/TokenFactory.ts | |||
@@ -0,0 +1,17 @@ | |||
1 | import Token from 'App/Models/Token'; | ||
2 | import Factory from '@ioc:Adonis/Lucid/Factory'; | ||
3 | import { DateTime } from 'luxon'; | ||
4 | |||
5 | export default Factory.define(Token, async ({ faker }) => ({ | ||
6 | token: faker.string.alphanumeric(32), | ||
7 | type: 'forgot_password', | ||
8 | is_revoked: false, | ||
9 | created_at: DateTime.now(), | ||
10 | updated_at: DateTime.now(), | ||
11 | })) | ||
12 | .state( | ||
13 | 'old_token', | ||
14 | token => (token.updated_at = DateTime.now().minus({ hours: 25 })), | ||
15 | ) | ||
16 | .state('revoked', token => (token.is_revoked = true)) | ||
17 | .build(); | ||
diff --git a/database/factories/UserFactory.ts b/database/factories/UserFactory.ts new file mode 100644 index 0000000..ee6553e --- /dev/null +++ b/database/factories/UserFactory.ts | |||
@@ -0,0 +1,21 @@ | |||
1 | import User from 'App/Models/User'; | ||
2 | import Factory from '@ioc:Adonis/Lucid/Factory'; | ||
3 | import WorkspaceFactory from './WorkspaceFactory'; | ||
4 | import ServiceFactory from './ServiceFactory'; | ||
5 | import crypto from 'node:crypto'; | ||
6 | |||
7 | const hashedPassword = crypto | ||
8 | .createHash('sha256') | ||
9 | .update('password') | ||
10 | .digest('base64'); | ||
11 | |||
12 | export default Factory.define(User, async ({ faker }) => ({ | ||
13 | email: faker.internet.email(), | ||
14 | username: faker.internet.userName(), | ||
15 | password: hashedPassword, | ||
16 | // eslint-disable-next-line unicorn/prefer-string-replace-all | ||
17 | lastname: faker.person.lastName().replace(/'/g, ''), | ||
18 | })) | ||
19 | .relation('workspaces', () => WorkspaceFactory) | ||
20 | .relation('services', () => ServiceFactory) | ||
21 | .build(); | ||
diff --git a/database/factories/WorkspaceFactory.ts b/database/factories/WorkspaceFactory.ts new file mode 100644 index 0000000..40cda6b --- /dev/null +++ b/database/factories/WorkspaceFactory.ts | |||
@@ -0,0 +1,7 @@ | |||
1 | import Workspace from 'App/Models/Workspace'; | ||
2 | import Factory from '@ioc:Adonis/Lucid/Factory'; | ||
3 | |||
4 | export default Factory.define(Workspace, ({ faker }) => ({ | ||
5 | name: faker.internet.userName(), | ||
6 | workspaceId: faker.string.alphanumeric(10), | ||
7 | })).build(); | ||