From dffc0a9a15f423c63702b9e8f820f48f74aa8702 Mon Sep 17 00:00:00 2001 From: imccyu <276526105+imccyu@users.noreply.github.com> Date: Tue, 11 Aug 2026 21:05:33 +0800 Subject: [PATCH] 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. --- packages/api/gateway/tests/client.spec.ts | 32 +++++++++++++++++------ 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/packages/api/gateway/tests/client.spec.ts b/packages/api/gateway/tests/client.spec.ts index 788bdbbd78..067e254aec 100644 --- a/packages/api/gateway/tests/client.spec.ts +++ b/packages/api/gateway/tests/client.spec.ts @@ -209,9 +209,13 @@ describe('Client TypeRT API', () => { await expect(ctx.remote.probe.create('', { objective: 'ship' })).rejects.toThrow('rejected "agentId"') 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, - 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() @@ -219,9 +223,13 @@ describe('Client TypeRT API', () => { expect(ctx.get('remote.probe')).toBeUndefined() expect(ctx.get('probe')).toBe(businessProbe) 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, - 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() }) @@ -536,9 +544,13 @@ describe('Client TypeRT API', () => { await dispose() resolveCall({ ok: true, value: { ref: 'goal-1' } }) - await expect(invocation).resolves.toMatchObject({ + await expect(invocation).resolves.toEqual({ 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).probe).toBeUndefined() }) @@ -681,9 +693,13 @@ describe('Client TypeRT API', () => { .mockRejectedValue(new Error('carrier offline'))) 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, - error: { code: 'internal', message: expect.stringContaining('carrier offline') }, + error: { + code: 'internal', + message: 'client api: probe/create failed: carrier offline', + details: {}, + }, }) })