@@ -5,8 +5,8 @@ import { loadTerraUser } from 'src/auth/auth';
5
5
import { Groups , GroupsContract } from 'src/libs/ajax/Groups' ;
6
6
import { Metrics , MetricsContract } from 'src/libs/ajax/Metrics' ;
7
7
import { SamUserTermsOfServiceDetails , TermsOfService , TermsOfServiceContract } from 'src/libs/ajax/TermsOfService' ;
8
- import { SamUserResponse , User , UserContract } from 'src/libs/ajax/User' ;
9
- import { oidcStore , TerraUserState , userStore } from 'src/libs/state' ;
8
+ import { SamUserCombinedStateResponse , SamUserResponse , User , UserContract } from 'src/libs/ajax/User' ;
9
+ import { oidcStore , userStore } from 'src/libs/state' ;
10
10
11
11
jest . mock ( 'src/libs/ajax/TermsOfService' ) ;
12
12
jest . mock ( 'src/libs/ajax/User' ) ;
@@ -73,6 +73,14 @@ const testSamUserAllowances = {
73
73
details : testSamUserAllowancesDetails ,
74
74
} ;
75
75
76
+ const mockSamUserCombinedState : SamUserCombinedStateResponse = {
77
+ samUser : mockSamUserResponse ,
78
+ terraUserAllowances : testSamUserAllowances ,
79
+ terraUserAttributes : { marketingConsent : false } ,
80
+ termsOfService : mockSamUserTermsOfServiceDetails ,
81
+ enterpriseFeatures : [ ] ,
82
+ } ;
83
+
76
84
const mockNihDatasetPermission = {
77
85
name : 'testNihDatasetPermissionName' ,
78
86
authorized : true ,
@@ -87,11 +95,7 @@ const mockOrchestrationNihStatusResponse = {
87
95
// TODO centralize Ajax mock setup so it can be reused across tests
88
96
describe ( 'a request to load a terra user' , ( ) => {
89
97
// Arrange (shared between tests for the success case)
90
- const getUserAllowancesFunction = jest . fn ( ) . mockResolvedValue ( testSamUserAllowances ) ;
91
- const getUserAttributesFunction = jest . fn ( ) . mockResolvedValue ( { marketingConsent : false } ) ;
92
- const getUserTermsOfServiceDetailsFunction = jest . fn ( ) . mockResolvedValue ( mockSamUserTermsOfServiceDetails ) ;
93
- const getEnterpriseFeaturesFunction = jest . fn ( ) . mockResolvedValue ( [ ] ) ;
94
- const getSamUserResponseFunction = jest . fn ( ) . mockResolvedValue ( mockSamUserResponse ) ;
98
+ const getSamUserCombinedStateFunction = jest . fn ( ) . mockResolvedValue ( mockSamUserCombinedState ) ;
95
99
const getNihStatusFunction = jest . fn ( ) . mockResolvedValue ( mockOrchestrationNihStatusResponse ) ;
96
100
const getFenceStatusFunction = jest . fn ( ) . mockResolvedValue ( { } ) ;
97
101
@@ -105,11 +109,7 @@ describe('a request to load a terra user', () => {
105
109
captureEvent : jest . fn ( ) ,
106
110
} as Partial < MetricsContract > as MetricsContract ) ;
107
111
asMockedFn ( User ) . mockReturnValue ( {
108
- getUserAllowances : getUserAllowancesFunction ,
109
- getUserAttributes : getUserAttributesFunction ,
110
- getUserTermsOfServiceDetails : getUserTermsOfServiceDetailsFunction ,
111
- getEnterpriseFeatures : getEnterpriseFeaturesFunction ,
112
- getSamUserResponse : getSamUserResponseFunction ,
112
+ getSamUserCombinedState : getSamUserCombinedStateFunction ,
113
113
getNihStatus : getNihStatusFunction ,
114
114
getFenceStatus : getFenceStatusFunction ,
115
115
profile : {
@@ -131,36 +131,24 @@ describe('a request to load a terra user', () => {
131
131
await act ( ( ) => loadTerraUser ( ) ) ;
132
132
133
133
// Assert
134
- expect ( getSamUserResponseFunction ) . toHaveBeenCalled ( ) ;
134
+ expect ( getSamUserCombinedStateFunction ) . toHaveBeenCalled ( ) ;
135
135
} ) ;
136
136
it ( 'should update the samUser in state' , async ( ) => {
137
137
// Act
138
138
await act ( ( ) => loadTerraUser ( ) ) ;
139
139
140
- let samUser ;
141
- await act ( async ( ) => {
142
- samUser = await getSamUserResponseFunction . mock . results [ 0 ] . value ;
143
- } ) ;
144
- userStore . update ( ( state : TerraUserState ) => ( {
145
- ...state ,
146
- samUser,
147
- } ) ) ;
148
140
// Assert
149
- expect ( getSamUserResponseFunction ) . toHaveBeenCalled ( ) ;
141
+ expect ( getSamUserCombinedStateFunction ) . toHaveBeenCalled ( ) ;
150
142
expect ( userStore . get ( ) . samUser ) . toEqual ( mockSamUserResponse ) ;
151
143
} ) ;
152
144
describe ( 'when not successful' , ( ) => {
153
145
it ( 'should fail with an error' , async ( ) => {
154
146
// // Arrange
155
147
// mock a failure to get samUserResponse
156
- const getSamUserResponseFunction = jest . fn ( ) . mockRejectedValue ( new Error ( 'unknown' ) ) ;
148
+ const getSamUserCombinedStateMockFailure = jest . fn ( ) . mockRejectedValue ( new Error ( 'unknown' ) ) ;
157
149
158
150
asMockedFn ( User ) . mockReturnValue ( {
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