@@ -20,6 +20,7 @@ const DEFAULT_TEST_PASSWORD = '123456'
2020const GROUP_ID = 'policy-e2e-group'
2121const GROUP_ADMIN_USER = 'policy-e2e-group-admin'
2222const END_USER = 'policy-e2e-end-user'
23+ const INSTANCE_RESET_USER = 'policy-e2e-instance-reset-user'
2324const POLICY_KEY = 'signature_flow'
2425
2526type OcsPolicyResponse = {
@@ -208,3 +209,43 @@ test('personas can manage policies according to permissions and override toggles
208209 ] )
209210 }
210211} )
212+
213+ test ( 'admin can remove explicit instance policy and restore system baseline' , async ( { page } ) => {
214+ await ensureUserExists ( page . request , INSTANCE_RESET_USER , DEFAULT_TEST_PASSWORD )
215+
216+ const adminRequest = await createAuthenticatedRequestContext ( ADMIN_USER , ADMIN_PASSWORD )
217+ const instanceResetUserRequest = await createAuthenticatedRequestContext ( INSTANCE_RESET_USER , DEFAULT_TEST_PASSWORD )
218+
219+ try {
220+ await clearOwnUserPreference ( instanceResetUserRequest )
221+
222+ let result = await policyRequest (
223+ adminRequest ,
224+ 'POST' ,
225+ `/apps/libresign/api/v1/policies/system/${ POLICY_KEY } ` ,
226+ { value : 'parallel' , allowChildOverride : true } ,
227+ )
228+ expect ( result . httpStatus ) . toBe ( 200 )
229+
230+ let effectivePolicy = await getEffectivePolicy ( instanceResetUserRequest )
231+ expect ( effectivePolicy ?. effectiveValue ) . toBe ( 'parallel' )
232+ expect ( effectivePolicy ?. sourceScope ) . toBe ( 'global' )
233+
234+ result = await policyRequest (
235+ adminRequest ,
236+ 'POST' ,
237+ `/apps/libresign/api/v1/policies/system/${ POLICY_KEY } ` ,
238+ { value : null , allowChildOverride : false } ,
239+ )
240+ expect ( result . httpStatus ) . toBe ( 200 )
241+
242+ effectivePolicy = await getEffectivePolicy ( instanceResetUserRequest )
243+ expect ( effectivePolicy ?. effectiveValue ) . toBe ( 'none' )
244+ expect ( effectivePolicy ?. sourceScope ) . toBe ( 'system' )
245+ } finally {
246+ await Promise . all ( [
247+ adminRequest . dispose ( ) ,
248+ instanceResetUserRequest . dispose ( ) ,
249+ ] )
250+ }
251+ } )
0 commit comments