@@ -22,7 +22,7 @@ function collectHandlers() {
2222 return { invoke, on }
2323}
2424
25- const fileEvent = { senderFrame : { url : 'file:///app/static/settings .html' } }
25+ const fileEvent = { senderFrame : { url : 'file:///app/static/offline .html' } }
2626const appEvent = { senderFrame : { url : `${ APP } /workspace/ws1` } }
2727const evilEvent = { senderFrame : { url : 'https://evil.example/page' } }
2828
@@ -38,9 +38,6 @@ describe('registerIpcHandlers', () => {
3838 allowHttpLocalhost : ( ) => false ,
3939 retryLoad : vi . fn ( ) ,
4040 beginOAuthConnect : vi . fn ( async ( ) => true ) ,
41- openSettings : vi . fn ( ) ,
42- closeSettings : vi . fn ( ) ,
43- applyOrigin : vi . fn ( async ( ) => ( { ok : true as const , origin : 'https://sim.ai' } ) ) ,
4441 localFilesystem : new LocalFilesystemService ( {
4542 chooseDirectory : vi . fn ( async ( ) => null ) ,
4643 } ) ,
@@ -50,18 +47,6 @@ describe('registerIpcHandlers', () => {
5047 hide : vi . fn ( ) ,
5148 resize : vi . fn ( ) ,
5249 } ,
53- launcherShortcut : {
54- get : vi . fn ( ( ) => ( {
55- shortcut : 'Alt+Space' ,
56- presets : [ 'Alt+Space' ] ,
57- status : 'registered' as const ,
58- } ) ) ,
59- set : vi . fn ( ( ) => ( {
60- shortcut : 'Control+Space' ,
61- presets : [ 'Alt+Space' ] ,
62- status : 'registered' as const ,
63- } ) ) ,
64- } ,
6550 }
6651 registerIpcHandlers ( deps )
6752 } )
@@ -86,9 +71,9 @@ describe('registerIpcHandlers', () => {
8671
8772 // Chip-initiated connects carry workspace/credential scope; malformed
8873 // scopes (wrong types, unsafe ids) are rejected before the handoff.
89- expect (
90- await handler ?. ( appEvent , 'slack' , { workspaceId : 'ws1' , credentialId : 'cred_1' } )
91- ) . toBe ( true )
74+ expect ( await handler ?. ( appEvent , 'slack' , { workspaceId : 'ws1' , credentialId : 'cred_1' } ) ) . toBe (
75+ true
76+ )
9277 expect ( deps . beginOAuthConnect ) . toHaveBeenCalledWith ( 'slack' , {
9378 workspaceId : 'ws1' ,
9479 credentialId : 'cred_1' ,
@@ -107,36 +92,19 @@ describe('registerIpcHandlers', () => {
10792 ) . toEqual ( { ok : true , data : { mounts : [ ] } } )
10893 } )
10994
110- it ( 'restricts shell-control channels to bundled local pages' , async ( ) => {
111- const { invoke , on } = collectHandlers ( )
95+ it ( 'restricts shell-control channels to bundled local pages' , ( ) => {
96+ const { on } = collectHandlers ( )
11297
11398 on . get ( 'offline:retry' ) ?.( appEvent )
11499 expect ( deps . retryLoad ) . not . toHaveBeenCalled ( )
115100 on . get ( 'offline:retry' ) ?.( fileEvent )
116101 expect ( deps . retryLoad ) . toHaveBeenCalledTimes ( 1 )
117-
118- on . get ( 'settings:open' ) ?.( evilEvent )
119- expect ( deps . openSettings ) . not . toHaveBeenCalled ( )
120- on . get ( 'settings:open' ) ?.( fileEvent )
121- expect ( deps . openSettings ) . toHaveBeenCalledTimes ( 1 )
122-
123- expect ( await invoke . get ( 'settings:get' ) ?.( appEvent ) ) . toBeNull ( )
124- expect ( await invoke . get ( 'settings:get' ) ?.( fileEvent ) ) . toEqual ( {
125- origin : 'https://sim.ai' ,
126- isDefault : true ,
127- } )
128-
129- expect ( await invoke . get ( 'settings:save' ) ?.( appEvent , 'https://other.example' ) ) . toEqual ( {
130- ok : false ,
131- error : 'Not allowed' ,
132- } )
133- await invoke . get ( 'settings:save' ) ?.( fileEvent , 'https://other.example' )
134- expect ( deps . applyOrigin ) . toHaveBeenCalledWith ( 'https://other.example' )
135102 } )
136103
137104 it ( 'handles a missing senderFrame safely' , async ( ) => {
138105 const { invoke } = collectHandlers ( )
139- expect ( await invoke . get ( 'settings:get' ) ?.( { senderFrame : null } ) ) . toBeNull ( )
106+ expect ( await invoke . get ( 'desktop:oauth-connect' ) ?.( { senderFrame : null } , 'slack' ) ) . toBe ( false )
107+ expect ( deps . beginOAuthConnect ) . not . toHaveBeenCalled ( )
140108 } )
141109
142110 it ( 'restricts browser-agent tool execution to the app origin and known tools' , async ( ) => {
@@ -208,19 +176,4 @@ describe('registerIpcHandlers', () => {
208176 on . get ( 'launcher:resize' ) ?.( appEvent , 400 )
209177 expect ( deps . launcher . resize ) . toHaveBeenCalledWith ( 400 )
210178 } )
211-
212- it ( 'restricts launcher shortcut settings to bundled local pages' , async ( ) => {
213- const { invoke } = collectHandlers ( )
214- expect ( await invoke . get ( 'settings:launcher-shortcut-get' ) ?.( appEvent ) ) . toBeNull ( )
215- expect ( await invoke . get ( 'settings:launcher-shortcut-get' ) ?.( fileEvent ) ) . toMatchObject ( {
216- shortcut : 'Alt+Space' ,
217- status : 'registered' ,
218- } )
219- expect ( await invoke . get ( 'settings:launcher-shortcut-set' ) ?.( appEvent , 'Control+Space' ) ) . toBe (
220- null
221- )
222- expect ( await invoke . get ( 'settings:launcher-shortcut-set' ) ?.( fileEvent , 42 ) ) . toBeNull ( )
223- await invoke . get ( 'settings:launcher-shortcut-set' ) ?.( fileEvent , 'Control+Space' )
224- expect ( deps . launcherShortcut . set ) . toHaveBeenCalledWith ( 'Control+Space' )
225- } )
226179} )
0 commit comments