11import { TestBed } from '@angular/core/testing' ;
2- import { MockStore , provideMockStore } from '@ngrx/store/testing' ;
32import { of } from 'rxjs' ;
4- import { getUserGroups } from '../store/user.selectors' ;
53import { UserInfoService } from './user-info.service' ;
4+ import { LoginService } from '../../login/services/login.service' ;
5+
66
77describe ( 'UserInfoService' , ( ) => {
88 let service : UserInfoService ;
9- let store : MockStore ;
10- let mockGetUserGroupsSelector : any ;
11- const initialState = {
9+ const userTest = {
1210 name : 'Unknown Name' ,
13111412 roles : [ ] ,
@@ -18,61 +16,60 @@ describe('UserInfoService', () => {
1816 deleted : '' ,
1917 } ;
2018
19+ const mockLoginService = {
20+ getLocalStorage : ( ) => {
21+ return JSON . stringify ( userTest ) ;
22+ }
23+ } ;
24+
2125 beforeEach ( ( ) => {
2226 TestBed . configureTestingModule ( {
23- providers : [ provideMockStore ( { initialState } ) ] ,
27+ providers : [ { provide : LoginService , useValue : mockLoginService } ] ,
2428 } ) ;
2529 service = TestBed . inject ( UserInfoService ) ;
26- store = TestBed . inject ( MockStore ) ;
27- mockGetUserGroupsSelector = store . overrideSelector ( getUserGroups , initialState . groups ) ;
2830 } ) ;
2931
3032 it ( 'should be created' , ( ) => {
3133 expect ( service ) . toBeTruthy ( ) ;
3234 } ) ;
3335
34- it ( 'should call groups selector' , ( ) => {
35- const expectedGroups = [ 'fake-admin' , 'fake-tester' ] ;
36-
37- service . groups ( ) . subscribe ( ( value ) => {
38- expect ( value ) . toEqual ( expectedGroups ) ;
39- } ) ;
40- } ) ;
41-
4236 const params = [
43- { groupName : 'fake-admin' , expectedValue : true , groups : [ 'fake-admin' , 'fake-tester' ] } ,
44- { groupName : 'fake-owner' , expectedValue : false , groups : [ 'fake-admin' , 'fake-tester' ] } ,
37+ { groupName : 'fake-admin' , expectedValue : true } ,
38+ { groupName : 'fake-owner' , expectedValue : false } ,
4539 ] ;
4640
4741 params . map ( ( param ) => {
48- it ( `given group ${ param . groupName } and groups [${ param . groups . toString ( ) } ], isMemberOf() should return ${
42+ it ( `given group ${ param . groupName } and groups [${ userTest . groups . toString ( ) } ], isMemberOf() should return ${
4943 param . expectedValue
5044 } `, ( ) => {
51- const groups$ = of ( param . groups ) ;
52-
53- spyOn ( service , 'groups' ) . and . returnValue ( groups$ ) ;
54-
5545 service . isMemberOf ( param . groupName ) . subscribe ( ( value ) => {
56- expect ( value ) . toEqual ( param . expectedValue ) ;
46+ if ( param . groupName === 'fake-admin' ) {
47+ expect ( value ) . toEqual ( true ) ;
48+ } else {
49+ expect ( value ) . toEqual ( false ) ;
50+ }
5751 } ) ;
5852 } ) ;
5953 } ) ;
6054
6155 it ( 'should return true if is Admin' , ( ) => {
62- const isMemberOf = spyOn ( service , 'isMemberOf' ) . and . returnValue ( of ( true ) ) ;
56+ service . isMemberOf ( 'fake-admin' ) . subscribe ( ( value ) => {
57+ expect ( value ) . toEqual ( true ) ;
58+ } ) ;
59+ } ) ;
6360
61+ it ( 'should call isAdmin user' , ( ) => {
62+ spyOn ( service , 'isMemberOf' ) . withArgs ( 'time-tracker-admin' ) . and . returnValue ( of ( true ) ) ;
6463 service . isAdmin ( ) . subscribe ( ( value ) => {
65- expect ( value ) . toBeTrue ( ) ;
66- } ) ;
67- expect ( isMemberOf ) . toHaveBeenCalled ( ) ;
64+ expect ( value ) . toEqual ( true ) ;
65+ } ) ;
6866 } ) ;
6967
70- it ( 'should return true if is Tester' , ( ) => {
71- const isMemberOf = spyOn ( service , 'isMemberOf' ) . and . returnValue ( of ( true ) ) ;
72-
68+ it ( 'should call isTester user' , ( ) => {
69+ spyOn ( service , 'isMemberOf' ) . withArgs ( 'time-tracker-tester' ) . and . returnValue ( of ( true ) ) ;
7370 service . isTester ( ) . subscribe ( ( value ) => {
74- expect ( value ) . toBeTrue ( ) ;
75- } ) ;
76- expect ( isMemberOf ) . toHaveBeenCalled ( ) ;
71+ expect ( value ) . toEqual ( true ) ;
72+ } ) ;
7773 } ) ;
74+
7875} ) ;
0 commit comments