test(gateway): pin each folded carrier failure message verbatim

Matching the full `RemoteFailure` keeps the assertion inside the typed result
and drops the `expect.stringContaining` placeholders, whose `any` return the
lint rule rejects on assignment.
This commit is contained in:
imccyu
2026-08-11 23:33:18 +08:00
parent 7a9d7d2657
commit dffc0a9a15
+24 -8
View File
@@ -209,9 +209,13 @@ describe('Client TypeRT API', () => {
await expect(ctx.remote.probe.create('', { objective: 'ship' })).rejects.toThrow('rejected "agentId"') await expect(ctx.remote.probe.create('', { objective: 'ship' })).rejects.toThrow('rejected "agentId"')
call.mockResolvedValueOnce({ ok: true, value: { ref: 1 } }) call.mockResolvedValueOnce({ ok: true, value: { ref: 1 } })
await expect(ctx.remote.probe.create('agent-1', { objective: 'ship' })).resolves.toMatchObject({ await expect(ctx.remote.probe.create('agent-1', { objective: 'ship' })).resolves.toEqual({
ok: false, ok: false,
error: { code: 'internal', message: expect.stringContaining('rejected "result"') }, error: {
code: 'internal',
message: 'client api: probe/create failed: client api: probe/create rejected "result"',
details: {},
},
}) })
await assembly.dispose() await assembly.dispose()
@@ -219,9 +223,13 @@ describe('Client TypeRT API', () => {
expect(ctx.get('remote.probe')).toBeUndefined() expect(ctx.get('remote.probe')).toBeUndefined()
expect(ctx.get('probe')).toBe(businessProbe) expect(ctx.get('probe')).toBe(businessProbe)
expect(ctx.typert.remotes.list()).toEqual([]) expect(ctx.typert.remotes.list()).toEqual([])
await expect(retained?.('agent-1', { objective: 'ship' })).resolves.toMatchObject({ await expect(retained?.('agent-1', { objective: 'ship' })).resolves.toEqual({
ok: false, ok: false,
error: { code: 'internal', message: expect.stringContaining('no longer mounted') }, error: {
code: 'internal',
message: 'client api: Remote method probe/create is no longer mounted',
details: {},
},
}) })
disposeBusinessProbe() disposeBusinessProbe()
}) })
@@ -536,9 +544,13 @@ describe('Client TypeRT API', () => {
await dispose() await dispose()
resolveCall({ ok: true, value: { ref: 'goal-1' } }) resolveCall({ ok: true, value: { ref: 'goal-1' } })
await expect(invocation).resolves.toMatchObject({ await expect(invocation).resolves.toEqual({
ok: false, ok: false,
error: { code: 'internal', message: expect.stringContaining('no longer mounted') }, error: {
code: 'internal',
message: 'client api: Remote method probe/create is no longer mounted',
details: {},
},
}) })
expect((ctx.remote as unknown as Record<string, unknown>).probe).toBeUndefined() expect((ctx.remote as unknown as Record<string, unknown>).probe).toBeUndefined()
}) })
@@ -681,9 +693,13 @@ describe('Client TypeRT API', () => {
.mockRejectedValue(new Error('carrier offline'))) .mockRejectedValue(new Error('carrier offline')))
await ctx.remote.$mount({ package: '@fixture/probe', descriptors: [directDescriptor()] }) await ctx.remote.$mount({ package: '@fixture/probe', descriptors: [directDescriptor()] })
await expect(ctx.remote.probe.create('agent-1', { objective: 'ship' })).resolves.toMatchObject({ await expect(ctx.remote.probe.create('agent-1', { objective: 'ship' })).resolves.toEqual({
ok: false, ok: false,
error: { code: 'internal', message: expect.stringContaining('carrier offline') }, error: {
code: 'internal',
message: 'client api: probe/create failed: carrier offline',
details: {},
},
}) })
}) })