1
1
import { URL } from 'url' ;
2
2
import UserService from './user-service' ;
3
3
import UserStoreMock from '../../test/fixtures/fake-user-store' ;
4
- import EventStoreMock from '../../test/fixtures/fake-event-store' ;
5
4
import AccessServiceMock from '../../test/fixtures/access-service-mock' ;
6
5
import ResetTokenService from './reset-token-service' ;
7
6
import { EmailService } from './email-service' ;
@@ -21,50 +20,53 @@ const config: IUnleashConfig = createTestConfig();
21
20
22
21
const systemUser = new User ( { id : - 1 , username : 'system' } ) ;
23
22
24
- test ( 'Should create new user' , async ( ) => {
25
- const userStore = new UserStoreMock ( ) ;
26
- const eventStore = new EventStoreMock ( ) ;
27
- const accessService = new AccessServiceMock ( ) ;
28
- const resetTokenStore = new FakeResetTokenStore ( ) ;
29
- const resetTokenService = new ResetTokenService (
30
- { resetTokenStore } ,
31
- config ,
32
- ) ;
33
- const sessionStore = new FakeSessionStore ( ) ;
34
- const sessionService = new SessionService ( { sessionStore } , config ) ;
35
- const emailService = new EmailService ( config ) ;
36
- const eventService = createFakeEventsService ( config ) ;
37
- const settingService = new SettingService (
38
- {
39
- settingStore : new FakeSettingStore ( ) ,
40
- } ,
41
- config ,
42
- eventService ,
43
- ) ;
23
+ test . each ( [ undefined , '[email protected] ' , 'top-level-domain@jp' ] ) (
24
+ 'Should create new user with email %s' ,
25
+ async ( email ?: string ) => {
26
+ const userStore = new UserStoreMock ( ) ;
27
+ const accessService = new AccessServiceMock ( ) ;
28
+ const resetTokenStore = new FakeResetTokenStore ( ) ;
29
+ const resetTokenService = new ResetTokenService (
30
+ { resetTokenStore } ,
31
+ config ,
32
+ ) ;
33
+ const sessionStore = new FakeSessionStore ( ) ;
34
+ const sessionService = new SessionService ( { sessionStore } , config ) ;
35
+ const emailService = new EmailService ( config ) ;
36
+ const eventService = createFakeEventsService ( config ) ;
37
+ const settingService = new SettingService (
38
+ {
39
+ settingStore : new FakeSettingStore ( ) ,
40
+ } ,
41
+ config ,
42
+ eventService ,
43
+ ) ;
44
44
45
- const service = new UserService ( { userStore } , config , {
46
- accessService,
47
- resetTokenService,
48
- emailService,
49
- eventService,
50
- sessionService,
51
- settingService,
52
- } ) ;
53
- const user = await service . createUser (
54
- {
55
- username : 'test' ,
56
- rootRole : 1 ,
57
- } ,
58
- extractAuditInfoFromUser ( systemUser ) ,
59
- ) ;
60
- const storedUser = await userStore . get ( user . id ) ;
61
- const allUsers = await userStore . getAll ( ) ;
45
+ const service = new UserService ( { userStore } , config , {
46
+ accessService,
47
+ resetTokenService,
48
+ emailService,
49
+ eventService,
50
+ sessionService,
51
+ settingService,
52
+ } ) ;
53
+ const user = await service . createUser (
54
+ {
55
+ username : 'test' ,
56
+ rootRole : 1 ,
57
+ email,
58
+ } ,
59
+ extractAuditInfoFromUser ( systemUser ) ,
60
+ ) ;
61
+ const storedUser = await userStore . get ( user . id ) ;
62
+ const allUsers = await userStore . getAll ( ) ;
62
63
63
- expect ( user . id ) . toBeTruthy ( ) ;
64
- expect ( user . username ) . toBe ( 'test' ) ;
65
- expect ( allUsers . length ) . toBe ( 1 ) ;
66
- expect ( storedUser . username ) . toBe ( 'test' ) ;
67
- } ) ;
64
+ expect ( user . id ) . toBeTruthy ( ) ;
65
+ expect ( user . username ) . toBe ( 'test' ) ;
66
+ expect ( allUsers . length ) . toBe ( 1 ) ;
67
+ expect ( storedUser . username ) . toBe ( 'test' ) ;
68
+ } ,
69
+ ) ;
68
70
69
71
describe ( 'Default admin initialization' , ( ) => {
70
72
const DEFAULT_ADMIN_USERNAME = 'admin' ;
@@ -79,7 +81,6 @@ describe('Default admin initialization', () => {
79
81
jest . clearAllMocks ( ) ;
80
82
81
83
const userStore = new UserStoreMock ( ) ;
82
- const eventStore = new EventStoreMock ( ) ;
83
84
const accessService = new AccessServiceMock ( ) ;
84
85
const resetTokenStore = new FakeResetTokenStore ( ) ;
85
86
const resetTokenService = new ResetTokenService (
@@ -149,7 +150,6 @@ describe('Default admin initialization', () => {
149
150
150
151
test ( 'Should not create any default admin user if `createAdminUser` is not true and `initialAdminUser` is not set' , async ( ) => {
151
152
const userStore = new UserStoreMock ( ) ;
152
- const eventStore = new EventStoreMock ( ) ;
153
153
const accessService = new AccessServiceMock ( ) ;
154
154
const resetTokenStore = new FakeResetTokenStore ( ) ;
155
155
const resetTokenService = new ResetTokenService (
@@ -204,7 +204,6 @@ describe('Default admin initialization', () => {
204
204
205
205
test ( 'Should be a valid password' , async ( ) => {
206
206
const userStore = new UserStoreMock ( ) ;
207
- const eventStore = new EventStoreMock ( ) ;
208
207
const accessService = new AccessServiceMock ( ) ;
209
208
const resetTokenStore = new FakeResetTokenStore ( ) ;
210
209
const resetTokenService = new ResetTokenService (
@@ -240,7 +239,6 @@ test('Should be a valid password', async () => {
240
239
241
240
test ( 'Password must be at least 10 chars' , async ( ) => {
242
241
const userStore = new UserStoreMock ( ) ;
243
- const eventStore = new EventStoreMock ( ) ;
244
242
const accessService = new AccessServiceMock ( ) ;
245
243
const resetTokenStore = new FakeResetTokenStore ( ) ;
246
244
const resetTokenService = new ResetTokenService (
@@ -277,7 +275,6 @@ test('Password must be at least 10 chars', async () => {
277
275
278
276
test ( 'The password must contain at least one uppercase letter.' , async ( ) => {
279
277
const userStore = new UserStoreMock ( ) ;
280
- const eventStore = new EventStoreMock ( ) ;
281
278
const accessService = new AccessServiceMock ( ) ;
282
279
const resetTokenStore = new FakeResetTokenStore ( ) ;
283
280
const resetTokenService = new ResetTokenService (
@@ -315,7 +312,6 @@ test('The password must contain at least one uppercase letter.', async () => {
315
312
316
313
test ( 'The password must contain at least one number' , async ( ) => {
317
314
const userStore = new UserStoreMock ( ) ;
318
- const eventStore = new EventStoreMock ( ) ;
319
315
const accessService = new AccessServiceMock ( ) ;
320
316
const resetTokenStore = new FakeResetTokenStore ( ) ;
321
317
const resetTokenService = new ResetTokenService (
@@ -354,7 +350,6 @@ test('The password must contain at least one number', async () => {
354
350
355
351
test ( 'The password must contain at least one special character' , async ( ) => {
356
352
const userStore = new UserStoreMock ( ) ;
357
- const eventStore = new EventStoreMock ( ) ;
358
353
const accessService = new AccessServiceMock ( ) ;
359
354
const resetTokenStore = new FakeResetTokenStore ( ) ;
360
355
const resetTokenService = new ResetTokenService (
@@ -392,7 +387,6 @@ test('The password must contain at least one special character', async () => {
392
387
393
388
test ( 'Should be a valid password with special chars' , async ( ) => {
394
389
const userStore = new UserStoreMock ( ) ;
395
- const eventStore = new EventStoreMock ( ) ;
396
390
const accessService = new AccessServiceMock ( ) ;
397
391
const resetTokenStore = new FakeResetTokenStore ( ) ;
398
392
const resetTokenService = new ResetTokenService (
@@ -427,7 +421,6 @@ test('Should be a valid password with special chars', async () => {
427
421
428
422
test ( 'Should send password reset email if user exists' , async ( ) => {
429
423
const userStore = new UserStoreMock ( ) ;
430
- const eventStore = new EventStoreMock ( ) ;
431
424
const accessService = new AccessServiceMock ( ) ;
432
425
const resetTokenStore = new FakeResetTokenStore ( ) ;
433
426
const resetTokenService = new ResetTokenService (
@@ -478,7 +471,6 @@ test('Should send password reset email if user exists', async () => {
478
471
479
472
test ( 'Should throttle password reset email' , async ( ) => {
480
473
const userStore = new UserStoreMock ( ) ;
481
- const eventStore = new EventStoreMock ( ) ;
482
474
const accessService = new AccessServiceMock ( ) ;
483
475
const resetTokenStore = new FakeResetTokenStore ( ) ;
484
476
const resetTokenService = new ResetTokenService (
0 commit comments