feat(companion): support default canvas session in platform clients
This commit is contained in:
@@ -183,4 +183,44 @@ describe('platform companion clients', () => {
|
||||
}),
|
||||
);
|
||||
});
|
||||
|
||||
it('uses defaultSessionId for canvas operations when sessionId is omitted', async () => {
|
||||
const mock = createRuntimeMock();
|
||||
const client = new IOSCompanionClient({
|
||||
runtime: mock.runtime,
|
||||
nodeId: 'ios-node',
|
||||
defaultSessionId: 'ws:default-canvas',
|
||||
});
|
||||
|
||||
await client.putCanvasArtifact({
|
||||
type: 'markdown',
|
||||
content: { body: 'default session' },
|
||||
});
|
||||
await client.listCanvasArtifacts();
|
||||
await client.getCanvasArtifact({ artifactId: 'a1' });
|
||||
await client.deleteCanvasArtifact({ artifactId: 'a1' });
|
||||
await client.clearCanvasArtifacts();
|
||||
|
||||
expect(mock.putCanvasArtifact).toHaveBeenCalledWith({
|
||||
sessionId: 'ws:default-canvas',
|
||||
type: 'markdown',
|
||||
content: { body: 'default session' },
|
||||
artifactId: undefined,
|
||||
title: undefined,
|
||||
metadata: undefined,
|
||||
});
|
||||
expect(mock.listCanvasArtifacts).toHaveBeenCalledWith('ws:default-canvas');
|
||||
expect(mock.getCanvasArtifact).toHaveBeenCalledWith({ sessionId: 'ws:default-canvas', artifactId: 'a1' });
|
||||
expect(mock.deleteCanvasArtifact).toHaveBeenCalledWith({ sessionId: 'ws:default-canvas', artifactId: 'a1' });
|
||||
expect(mock.clearCanvasArtifacts).toHaveBeenCalledWith('ws:default-canvas');
|
||||
});
|
||||
|
||||
it('throws when canvas sessionId is missing and no defaultSessionId is configured', async () => {
|
||||
const mock = createRuntimeMock();
|
||||
const client = new MacOSCompanionClient({ runtime: mock.runtime, nodeId: 'mac-node' });
|
||||
|
||||
expect(() => client.listCanvasArtifacts()).toThrow(
|
||||
'sessionId is required (provide one or configure defaultSessionId)',
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user