@@ -39,7 +39,6 @@ describe('platform_browser/recaptcha/recaptcha', () => {
39
39
let recaptchaV2 : MockReCaptcha ;
40
40
let recaptchaV3 : MockGreCAPTCHA ;
41
41
let recaptchaEnterprise : MockGreCAPTCHATopLevel ;
42
- let recaptchaConfig : RecaptchaConfig ;
43
42
44
43
const TEST_SITE_KEY = 'test-site-key' ;
45
44
@@ -57,6 +56,41 @@ describe('platform_browser/recaptcha/recaptcha', () => {
57
56
]
58
57
} ;
59
58
59
+ const GET_RECAPTCHA_CONFIG_RESPONSE_OFF : GetRecaptchaConfigResponse = {
60
+ recaptchaKey : 'projects/testproj/keys/' + TEST_SITE_KEY ,
61
+ recaptchaEnforcementState : [
62
+ {
63
+ provider : RecaptchaProvider . EMAIL_PASSWORD_PROVIDER ,
64
+ enforcementState : EnforcementState . OFF
65
+ } ,
66
+ {
67
+ provider : RecaptchaProvider . PHONE_PROVIDER ,
68
+ enforcementState : EnforcementState . OFF
69
+ }
70
+ ]
71
+ } ;
72
+
73
+ const GET_RECAPTCHA_CONFIG_RESPONSE_ENFORCE_AND_OFF : GetRecaptchaConfigResponse =
74
+ {
75
+ recaptchaKey : 'projects/testproj/keys/' + TEST_SITE_KEY ,
76
+ recaptchaEnforcementState : [
77
+ {
78
+ provider : RecaptchaProvider . EMAIL_PASSWORD_PROVIDER ,
79
+ enforcementState : EnforcementState . ENFORCE
80
+ } ,
81
+ {
82
+ provider : RecaptchaProvider . PHONE_PROVIDER ,
83
+ enforcementState : EnforcementState . OFF
84
+ }
85
+ ]
86
+ } ;
87
+
88
+ const recaptchaConfig = new RecaptchaConfig ( GET_RECAPTCHA_CONFIG_RESPONSE ) ;
89
+ const recaptchaConfigOff = new RecaptchaConfig ( GET_RECAPTCHA_CONFIG_RESPONSE_OFF ) ;
90
+ const recaptchaConfigEnforceAndOff = new RecaptchaConfig (
91
+ GET_RECAPTCHA_CONFIG_RESPONSE_ENFORCE_AND_OFF
92
+ ) ;
93
+
60
94
context ( '#verify' , ( ) => {
61
95
beforeEach ( async ( ) => {
62
96
auth = await testAuth ( ) ;
@@ -81,10 +115,6 @@ describe('platform_browser/recaptcha/recaptcha', () => {
81
115
} ) ;
82
116
83
117
context ( '#RecaptchaConfig' , ( ) => {
84
- beforeEach ( async ( ) => {
85
- recaptchaConfig = new RecaptchaConfig ( GET_RECAPTCHA_CONFIG_RESPONSE ) ;
86
- } ) ;
87
-
88
118
it ( 'should construct the recaptcha config from the backend response' , ( ) => {
89
119
expect ( recaptchaConfig . siteKey ) . to . eq ( TEST_SITE_KEY ) ;
90
120
expect ( recaptchaConfig . recaptchaEnforcementState [ 0 ] ) . to . eql ( {
@@ -95,6 +125,10 @@ describe('platform_browser/recaptcha/recaptcha', () => {
95
125
provider : RecaptchaProvider . PHONE_PROVIDER ,
96
126
enforcementState : EnforcementState . AUDIT
97
127
} ) ;
128
+ expect ( recaptchaConfigEnforceAndOff . recaptchaEnforcementState [ 1 ] ) . to . eql ( {
129
+ provider : RecaptchaProvider . PHONE_PROVIDER ,
130
+ enforcementState : EnforcementState . OFF
131
+ } ) ;
98
132
} ) ;
99
133
100
134
it ( '#getProviderEnforcementState should return the correct enforcement state of the provider' , ( ) => {
@@ -108,6 +142,11 @@ describe('platform_browser/recaptcha/recaptcha', () => {
108
142
RecaptchaProvider . PHONE_PROVIDER
109
143
)
110
144
) . to . eq ( EnforcementState . AUDIT ) ;
145
+ expect (
146
+ recaptchaConfigEnforceAndOff . getProviderEnforcementState (
147
+ RecaptchaProvider . PHONE_PROVIDER
148
+ )
149
+ ) . to . eq ( EnforcementState . OFF ) ;
111
150
expect ( recaptchaConfig . getProviderEnforcementState ( 'invalid-provider' ) ) . to
112
151
. be . null ;
113
152
} ) ;
@@ -121,29 +160,18 @@ describe('platform_browser/recaptcha/recaptcha', () => {
121
160
expect (
122
161
recaptchaConfig . isProviderEnabled ( RecaptchaProvider . PHONE_PROVIDER )
123
162
) . to . be . true ;
163
+ expect (
164
+ recaptchaConfigEnforceAndOff . isProviderEnabled (
165
+ RecaptchaProvider . PHONE_PROVIDER
166
+ )
167
+ ) . to . be . false ;
124
168
expect ( recaptchaConfig . isProviderEnabled ( 'invalid-provider' ) ) . to . be . false ;
125
169
} ) ;
126
170
127
171
it ( '#isAnyProviderEnabled should return true if at least one provider is enabled' , ( ) => {
128
172
expect ( recaptchaConfig . isAnyProviderEnabled ( ) ) . to . be . true ;
129
-
130
- const getRecaptchaConfigResponse : GetRecaptchaConfigResponse = {
131
- recaptchaKey : 'projects/testproj/keys/' + TEST_SITE_KEY ,
132
- recaptchaEnforcementState : [
133
- {
134
- provider : RecaptchaProvider . EMAIL_PASSWORD_PROVIDER ,
135
- enforcementState : EnforcementState . OFF
136
- } ,
137
- {
138
- provider : RecaptchaProvider . PHONE_PROVIDER ,
139
- enforcementState : EnforcementState . OFF
140
- }
141
- ]
142
- } ;
143
- const configNoProviderEnabled = new RecaptchaConfig (
144
- getRecaptchaConfigResponse
145
- ) ;
146
- expect ( configNoProviderEnabled . isAnyProviderEnabled ( ) ) . to . be . false ;
173
+ expect ( recaptchaConfigEnforceAndOff . isAnyProviderEnabled ( ) ) . to . be . true ;
174
+ expect ( recaptchaConfigOff . isAnyProviderEnabled ( ) ) . to . be . false ;
147
175
} ) ;
148
176
} ) ;
149
177
} ) ;
0 commit comments