@@ -5,8 +5,8 @@ import { loadTerraUser } from 'src/auth/auth';
5
5
import { Ajax } from 'src/libs/ajax' ;
6
6
import { GroupRole } from 'src/libs/ajax/Groups' ;
7
7
import { SamUserTermsOfServiceDetails } from 'src/libs/ajax/TermsOfService' ;
8
- import { SamUserResponse } from 'src/libs/ajax/User' ;
9
- import { TerraUserState , userStore } from 'src/libs/state' ;
8
+ import { SamUserAttributes , SamUserCombinedStateResponse , SamUserResponse } from 'src/libs/ajax/User' ;
9
+ import { userStore } from 'src/libs/state' ;
10
10
11
11
jest . mock ( 'src/libs/ajax' ) ;
12
12
@@ -67,6 +67,14 @@ const testSamUserAllowances = {
67
67
details : testSamUserAllowancesDetails ,
68
68
} ;
69
69
70
+ const mockSamUserCombinedState : SamUserCombinedStateResponse = {
71
+ samUser : mockSamUserResponse ,
72
+ terraUserAllowances : testSamUserAllowances ,
73
+ terraUserAttributes : { marketingConsent : false } as SamUserAttributes ,
74
+ termsOfService : mockSamUserTermsOfServiceDetails ,
75
+ enterpriseFeatures : [ ] ,
76
+ } ;
77
+
70
78
const mockNihDatasetPermission = {
71
79
name : 'testNihDatasetPermissionName' ,
72
80
authorized : true ,
@@ -92,25 +100,17 @@ describe('a request to load a terra user', () => {
92
100
} ) ;
93
101
describe ( 'when successful' , ( ) => {
94
102
// Arrange (shared between tests for the success case)
95
- const getUserAllowancesFunction = jest . fn ( ) . mockResolvedValue ( testSamUserAllowances ) ;
96
- const getUserAttributesFunction = jest . fn ( ) . mockResolvedValue ( { marketingConsent : false } ) ;
97
- const getUserTermsOfServiceDetailsFunction = jest . fn ( ) . mockResolvedValue ( mockSamUserTermsOfServiceDetails ) ;
98
- const getEnterpriseFeaturesFunction = jest . fn ( ) . mockResolvedValue ( [ ] ) ;
99
- const getSamUserResponseFunction = jest . fn ( ) . mockResolvedValue ( mockSamUserResponse ) ;
100
- const getNihStatusFunction = jest . fn ( ) . mockResolvedValue ( mockOrchestrationNihStatusResponse ) ;
101
- const getFenceStatusFunction = jest . fn ( ) . mockResolvedValue ( { } ) ;
103
+ const getSamUserCombinedStateMock = jest . fn ( ) . mockResolvedValue ( mockSamUserCombinedState ) ;
104
+ const getNihStatusMock = jest . fn ( ) . mockResolvedValue ( mockOrchestrationNihStatusResponse ) ;
105
+ const getFenceStatusMock = jest . fn ( ) . mockResolvedValue ( { } ) ;
102
106
103
107
asMockedFn ( Ajax ) . mockImplementation (
104
108
( ) =>
105
109
( {
106
110
User : {
107
- getUserAllowances : getUserAllowancesFunction ,
108
- getUserAttributes : getUserAttributesFunction ,
109
- getUserTermsOfServiceDetails : getUserTermsOfServiceDetailsFunction ,
110
- getEnterpriseFeatures : getEnterpriseFeaturesFunction ,
111
- getSamUserResponse : getSamUserResponseFunction ,
112
- getNihStatus : getNihStatusFunction ,
113
- getFenceStatus : getFenceStatusFunction ,
111
+ getSamUserCombinedState : getSamUserCombinedStateMock ,
112
+ getNihStatus : getNihStatusMock ,
113
+ getFenceStatus : getFenceStatusMock ,
114
114
profile : {
115
115
get : jest . fn ( ) . mockReturnValue ( mockTerraUserProfile ) ,
116
116
} ,
@@ -128,39 +128,27 @@ describe('a request to load a terra user', () => {
128
128
await act ( ( ) => loadTerraUser ( ) ) ;
129
129
130
130
// Assert
131
- expect ( getSamUserResponseFunction ) . toHaveBeenCalled ( ) ;
131
+ expect ( getSamUserCombinedStateMock ) . toHaveBeenCalled ( ) ;
132
132
} ) ;
133
133
it ( 'should update the samUser in state' , async ( ) => {
134
134
// Act
135
135
await act ( ( ) => loadTerraUser ( ) ) ;
136
136
137
- let samUser ;
138
- await act ( async ( ) => {
139
- samUser = await getSamUserResponseFunction . mock . results [ 0 ] . value ;
140
- } ) ;
141
- userStore . update ( ( state : TerraUserState ) => ( {
142
- ...state ,
143
- samUser,
144
- } ) ) ;
145
137
// Assert
146
- expect ( getSamUserResponseFunction ) . toHaveBeenCalled ( ) ;
138
+ expect ( getSamUserCombinedStateMock ) . toHaveBeenCalled ( ) ;
147
139
expect ( userStore . get ( ) . samUser ) . toEqual ( mockSamUserResponse ) ;
148
140
} ) ;
149
141
describe ( 'when not successful' , ( ) => {
150
142
it ( 'should fail with an error' , async ( ) => {
151
143
// // Arrange
152
144
// mock a failure to get samUserResponse
153
- const getSamUserResponseFunction = jest . fn ( ) . mockRejectedValue ( new Error ( 'unknown' ) ) ;
145
+ const getSamUserCombinedStateMockFailure = jest . fn ( ) . mockRejectedValue ( new Error ( 'unknown' ) ) ;
154
146
155
147
asMockedFn ( Ajax ) . mockImplementation (
156
148
( ) =>
157
149
( {
158
150
User : {
159
- getUserAllowances : getUserAllowancesFunction ,
160
- getUserAttributes : getUserAttributesFunction ,
161
- getUserTermsOfServiceDetails : getUserTermsOfServiceDetailsFunction ,
162
- getEnterpriseFeatures : getEnterpriseFeaturesFunction ,
163
- getSamUserResponse : getSamUserResponseFunction ,
151
+ getSamUserCombinedState : getSamUserCombinedStateMockFailure ,
164
152
profile : {
165
153
get : jest . fn ( ) . mockReturnValue ( mockTerraUserProfile ) ,
166
154
} ,
0 commit comments