also looking at this
fix(mobile): preserve native editing, navigation, and durable media requests
#369
36 files
+864
-185
Review threads live on the whole diff, not on one commit, so none are shown here - a thread's line means something in the branch's final form, and painting it into an intermediate step would put it on code it is not about.
| @@ -315,14 +315,17 @@ describe('bridge reply correlation', () => { | ||
| 315 | 315 | |
| 316 | 316 | it('puts a distinct id on every message, fire-and-forget included', async () => { |
| 317 | 317 | const h = loadBridge() |
| 318 | h.craft.tags.get('/a') | |
| 318 | const tags = h.craft.tags.get('/a') | |
| 319 | 319 | h.craft.keychain.set('svc', 'acct', 'pw') // _send, no reply expected |
| 320 | 320 | h.craft.window.show?.() |
| 321 | h.craft.autoLaunch.isEnabled() | |
| 321 | const autoLaunch = h.craft.autoLaunch.isEnabled() | |
| 322 | 322 | |
| 323 | 323 | const ids = h.sent.map(m => m.i) |
| 324 | 324 | expect(ids.every(i => typeof i === 'number' && i > 0)).toBe(true) |
| 325 | 325 | expect(new Set(ids).size).toBe(ids.length) |
| 326 | h.reply('get', { tags: [] }, h.sent[0].i!) | |
| 327 | h.reply('isEnabled', { value: true }, h.sent.at(-1)!.i!) | |
| 328 | await Promise.all([tags, autoLaunch]) | |
| 326 | 329 | }) |
| 327 | 330 | |
| 328 | 331 | it('reports a fire-and-forget failure rather than rejecting a live call', async () => { |