@@ -34,13 +34,6 @@ test.each([
3434] as const ) (
3535 'When permission changes to %s, ensure permissionChange fires with %s' ,
3636 async ( permission , expected ) => {
37- if ( permission !== 'granted' ) {
38- await db . put ( 'Options' , {
39- key : 'notificationPermission' ,
40- value : 'granted' ,
41- } ) ;
42- }
43-
4437 const expectedPromise = expectPermissionChangeEvent ( expected ) ;
4538 await callPermissionChange ( permission ) ;
4639 await expectedPromise ;
@@ -97,6 +90,23 @@ test('Should update Notification.permission in time', async () => {
9790 await promise ;
9891} ) ;
9992
93+ test ( 'should handle denied permission' , async ( ) => {
94+ TestEnvironment . initialize ( {
95+ permission : 'default' ,
96+ } ) ;
97+
98+ const { resolve, promise } = Promise . withResolvers < void > ( ) ;
99+ OneSignal . Notifications . addEventListener ( 'permissionChange' , ( isGranted ) => {
100+ expect ( isGranted ) . toBe ( false ) ;
101+ expect ( OneSignal . Notifications . permission ) . toBe ( false ) ;
102+ expect ( OneSignal . Notifications . permissionNative ) . toBe ( 'denied' ) ;
103+ resolve ( ) ;
104+ } ) ;
105+
106+ callPermissionChange ( 'denied' ) ;
107+ await promise ;
108+ } ) ;
109+
100110Object . defineProperty ( global . navigator , 'serviceWorker' , {
101111 value : new MockServiceWorker ( ) ,
102112 writable : true ,
0 commit comments