@google/gemini-cli-a2a-server 0.12.0-nightly.20251023.a7faa208 → 0.12.0-nightly.20251027.cb0947c5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/a2a-server.mjs +1632 -1211
  2. package/dist/src/agent/task.d.ts +1 -0
  3. package/dist/src/agent/task.js +21 -9
  4. package/dist/src/agent/task.js.map +1 -1
  5. package/dist/src/agent/task.test.js +110 -1
  6. package/dist/src/agent/task.test.js.map +1 -1
  7. package/dist/src/commands/command-registry.d.ts +18 -0
  8. package/dist/src/commands/command-registry.js +22 -0
  9. package/dist/src/commands/command-registry.js.map +1 -0
  10. package/dist/src/commands/command-registry.test.d.ts +6 -0
  11. package/dist/src/commands/command-registry.test.js +41 -0
  12. package/dist/src/commands/command-registry.test.js.map +1 -0
  13. package/dist/src/commands/list-extensions.d.ts +11 -0
  14. package/dist/src/commands/list-extensions.js +13 -0
  15. package/dist/src/commands/list-extensions.js.map +1 -0
  16. package/dist/src/commands/list-extensions.test.d.ts +6 -0
  17. package/dist/src/commands/list-extensions.test.js +31 -0
  18. package/dist/src/commands/list-extensions.test.js.map +1 -0
  19. package/dist/src/config/config.js +1 -0
  20. package/dist/src/config/config.js.map +1 -1
  21. package/dist/src/config/settings.js +4 -4
  22. package/dist/src/config/settings.js.map +1 -1
  23. package/dist/src/http/app.js +36 -0
  24. package/dist/src/http/app.js.map +1 -1
  25. package/dist/src/http/app.test.js +215 -17
  26. package/dist/src/http/app.test.js.map +1 -1
  27. package/dist/src/persistence/gcs.test.js +48 -10
  28. package/dist/src/persistence/gcs.test.js.map +1 -1
  29. package/dist/src/types.d.ts +9 -2
  30. package/dist/src/types.js +4 -0
  31. package/dist/src/types.js.map +1 -1
  32. package/dist/tsconfig.tsbuildinfo +1 -1
  33. package/package.json +2 -2
@@ -11,6 +11,10 @@ import { logger } from '../utils/logger.js';
11
11
  import { GCSTaskStore, NoOpTaskStore } from '../persistence/gcs.js';
12
12
  import { CoderAgentExecutor } from '../agent/executor.js';
13
13
  import { requestStorage } from './requestStorage.js';
14
+ import { loadConfig, loadEnvironment, setTargetDir } from '../config/config.js';
15
+ import { loadSettings } from '../config/settings.js';
16
+ import { loadExtensions } from '../config/extension.js';
17
+ import { commandRegistry } from '../commands/command-registry.js';
14
18
  const coderAgentCard = {
15
19
  name: 'Gemini SDLC Agent',
16
20
  description: 'An agent that generates code based on natural language instructions and streams file outputs.',
@@ -51,6 +55,12 @@ export function updateCoderAgentCardUrl(port) {
51
55
  }
52
56
  export async function createApp() {
53
57
  try {
58
+ // Load the server configuration once on startup.
59
+ const workspaceRoot = setTargetDir(undefined);
60
+ loadEnvironment();
61
+ const settings = loadSettings(workspaceRoot);
62
+ const extensions = loadExtensions(workspaceRoot);
63
+ const config = await loadConfig(settings, extensions, 'a2a-server');
54
64
  // loadEnvironment() is called within getConfig now
55
65
  const bucketName = process.env['GCS_BUCKET_NAME'];
56
66
  let taskStoreForExecutor;
@@ -93,6 +103,32 @@ export async function createApp() {
93
103
  res.status(500).send({ error: errorMessage });
94
104
  }
95
105
  });
106
+ expressApp.post('/executeCommand', async (req, res) => {
107
+ try {
108
+ const { command, args } = req.body;
109
+ if (typeof command !== 'string') {
110
+ return res.status(400).json({ error: 'Invalid "command" field.' });
111
+ }
112
+ if (args && !Array.isArray(args)) {
113
+ return res
114
+ .status(400)
115
+ .json({ error: '"args" field must be an array.' });
116
+ }
117
+ const commandToExecute = commandRegistry.get(command);
118
+ if (!commandToExecute) {
119
+ return res
120
+ .status(404)
121
+ .json({ error: `Command not found: ${command}` });
122
+ }
123
+ const result = await commandToExecute.execute(config, args ?? []);
124
+ return res.status(200).json(result);
125
+ }
126
+ catch (e) {
127
+ logger.error('Error executing /executeCommand:', e);
128
+ const errorMessage = e instanceof Error ? e.message : 'Unknown error executing command';
129
+ return res.status(500).json({ error: errorMessage });
130
+ }
131
+ });
96
132
  expressApp.get('/tasks/metadata', async (req, res) => {
97
133
  // This endpoint is only meaningful if the task store is in-memory.
98
134
  if (!(taskStoreForExecutor instanceof InMemoryTaskStore)) {
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/http/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/http/app.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,7 @@ let config;
31
31
  const getToolRegistrySpy = vi.fn().mockReturnValue(ApprovalMode.DEFAULT);
32
32
  const getApprovalModeSpy = vi.fn();
33
33
  const getShellExecutionConfigSpy = vi.fn();
34
+ const getExtensionsSpy = vi.fn();
34
35
  vi.mock('../config/config.js', async () => {
35
36
  const actual = await vi.importActual('../config/config.js');
36
37
  return {
@@ -40,6 +41,7 @@ vi.mock('../config/config.js', async () => {
40
41
  getToolRegistry: getToolRegistrySpy,
41
42
  getApprovalMode: getApprovalModeSpy,
42
43
  getShellExecutionConfig: getShellExecutionConfigSpy,
44
+ getExtensions: getExtensionsSpy,
43
45
  });
44
46
  config = mockConfig;
45
47
  return config;
@@ -241,7 +243,7 @@ describe('E2E Tests', () => {
241
243
  const workingEvent = events[2].result;
242
244
  expect(workingEvent.kind).toBe('status-update');
243
245
  expect(workingEvent.status.state).toBe('working');
244
- // State Update: Validate each tool call
246
+ // State Update: Validate the first tool call
245
247
  const toolCallValidateEvent1 = events[3].result;
246
248
  expect(toolCallValidateEvent1.metadata?.['coderAgent']).toMatchObject({
247
249
  kind: 'tool-call-update',
@@ -254,45 +256,193 @@ describe('E2E Tests', () => {
254
256
  },
255
257
  },
256
258
  ]);
257
- const toolCallValidateEvent2 = events[4].result;
258
- expect(toolCallValidateEvent2.metadata?.['coderAgent']).toMatchObject({
259
+ // --- Assert the event stream ---
260
+ // 1. Initial "submitted" status.
261
+ expect(events[0].result.status.state).toBe('submitted');
262
+ // 2. "working" status after receiving the user prompt.
263
+ expect(events[1].result.status.state).toBe('working');
264
+ // 3. A "state-change" event from the agent.
265
+ expect(events[2].result.metadata?.['coderAgent']).toMatchObject({
266
+ kind: 'state-change',
267
+ });
268
+ // 4. Tool 1 is validating.
269
+ const toolCallUpdate1 = events[3].result;
270
+ expect(toolCallUpdate1.metadata?.['coderAgent']).toMatchObject({
259
271
  kind: 'tool-call-update',
260
272
  });
261
- expect(toolCallValidateEvent2.status.message?.parts).toMatchObject([
273
+ expect(toolCallUpdate1.status.message?.parts).toMatchObject([
262
274
  {
263
275
  data: {
276
+ request: { callId: 'test-call-id-1' },
264
277
  status: 'validating',
265
- request: { callId: 'test-call-id-2' },
266
278
  },
267
279
  },
268
280
  ]);
269
- // State Update: Set each tool call to awaiting
270
- const toolCallAwaitEvent1 = events[5].result;
271
- expect(toolCallAwaitEvent1.metadata?.['coderAgent']).toMatchObject({
272
- kind: 'tool-call-confirmation',
281
+ // 5. Tool 2 is validating.
282
+ const toolCallUpdate2 = events[4].result;
283
+ expect(toolCallUpdate2.metadata?.['coderAgent']).toMatchObject({
284
+ kind: 'tool-call-update',
273
285
  });
274
- expect(toolCallAwaitEvent1.status.message?.parts).toMatchObject([
286
+ expect(toolCallUpdate2.status.message?.parts).toMatchObject([
275
287
  {
276
288
  data: {
277
- status: 'awaiting_approval',
278
- request: { callId: 'test-call-id-1' },
289
+ request: { callId: 'test-call-id-2' },
290
+ status: 'validating',
279
291
  },
280
292
  },
281
293
  ]);
282
- const toolCallAwaitEvent2 = events[6].result;
283
- expect(toolCallAwaitEvent2.metadata?.['coderAgent']).toMatchObject({
294
+ // 6. Tool 1 is awaiting approval.
295
+ const toolCallAwaitEvent = events[5].result;
296
+ expect(toolCallAwaitEvent.metadata?.['coderAgent']).toMatchObject({
284
297
  kind: 'tool-call-confirmation',
285
298
  });
286
- expect(toolCallAwaitEvent2.status.message?.parts).toMatchObject([
299
+ expect(toolCallAwaitEvent.status.message?.parts).toMatchObject([
287
300
  {
288
301
  data: {
302
+ request: { callId: 'test-call-id-1' },
289
303
  status: 'awaiting_approval',
290
- request: { callId: 'test-call-id-2' },
291
304
  },
292
305
  },
293
306
  ]);
307
+ // 7. The final event is "input-required".
308
+ const finalEvent = events[6].result;
309
+ expect(finalEvent.final).toBe(true);
310
+ expect(finalEvent.status.state).toBe('input-required');
311
+ // The scheduler now waits for approval, so no more events are sent.
312
+ assertUniqueFinalEventIsLast(events);
313
+ expect(events.length).toBe(7);
314
+ });
315
+ it('should handle multiple tool calls sequentially in YOLO mode', async () => {
316
+ // Set YOLO mode to auto-approve tools and test sequential execution.
317
+ getApprovalModeSpy.mockReturnValue(ApprovalMode.YOLO);
318
+ // First call yields the tool request
319
+ sendMessageStreamSpy.mockImplementationOnce(async function* () {
320
+ yield* [
321
+ {
322
+ type: GeminiEventType.ToolCallRequest,
323
+ value: {
324
+ callId: 'test-call-id-1',
325
+ name: 'test-tool-1',
326
+ args: {},
327
+ },
328
+ },
329
+ {
330
+ type: GeminiEventType.ToolCallRequest,
331
+ value: {
332
+ callId: 'test-call-id-2',
333
+ name: 'test-tool-2',
334
+ args: {},
335
+ },
336
+ },
337
+ ];
338
+ });
339
+ // Subsequent calls yield nothing, as the tools will "succeed".
340
+ sendMessageStreamSpy.mockImplementation(async function* () {
341
+ yield* [{ type: 'content', value: 'All tools executed.' }];
342
+ });
343
+ const mockTool1 = new MockTool({
344
+ name: 'test-tool-1',
345
+ displayName: 'Test Tool 1',
346
+ shouldConfirmExecute: vi.fn(mockToolConfirmationFn),
347
+ execute: vi
348
+ .fn()
349
+ .mockResolvedValue({ llmContent: 'tool 1 done', returnDisplay: '' }),
350
+ });
351
+ const mockTool2 = new MockTool({
352
+ name: 'test-tool-2',
353
+ displayName: 'Test Tool 2',
354
+ shouldConfirmExecute: vi.fn(mockToolConfirmationFn),
355
+ execute: vi
356
+ .fn()
357
+ .mockResolvedValue({ llmContent: 'tool 2 done', returnDisplay: '' }),
358
+ });
359
+ getToolRegistrySpy.mockReturnValue({
360
+ getAllTools: vi.fn().mockReturnValue([mockTool1, mockTool2]),
361
+ getToolsByServer: vi.fn().mockReturnValue([]),
362
+ getTool: vi.fn().mockImplementation((name) => {
363
+ if (name === 'test-tool-1')
364
+ return mockTool1;
365
+ if (name === 'test-tool-2')
366
+ return mockTool2;
367
+ return undefined;
368
+ }),
369
+ });
370
+ const agent = request.agent(app);
371
+ const res = await agent
372
+ .post('/')
373
+ .send(createStreamMessageRequest('run two tools', 'a2a-multi-tool-test-message'))
374
+ .set('Content-Type', 'application/json')
375
+ .expect(200);
376
+ const events = streamToSSEEvents(res.text);
377
+ assertTaskCreationAndWorkingStatus(events);
378
+ // --- Assert the sequential execution flow ---
379
+ const eventStream = events.slice(2).map((e) => {
380
+ const update = e.result;
381
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
382
+ const agentData = update.metadata?.['coderAgent'];
383
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
384
+ const toolData = update.status.message?.parts[0];
385
+ if (!toolData) {
386
+ return { kind: agentData.kind };
387
+ }
388
+ return {
389
+ kind: agentData.kind,
390
+ status: toolData.data?.status,
391
+ callId: toolData.data?.request.callId,
392
+ };
393
+ });
394
+ const expectedFlow = [
395
+ // Initial state change
396
+ { kind: 'state-change', status: undefined, callId: undefined },
397
+ // Tool 1 Lifecycle
398
+ {
399
+ kind: 'tool-call-update',
400
+ status: 'validating',
401
+ callId: 'test-call-id-1',
402
+ },
403
+ {
404
+ kind: 'tool-call-update',
405
+ status: 'scheduled',
406
+ callId: 'test-call-id-1',
407
+ },
408
+ {
409
+ kind: 'tool-call-update',
410
+ status: 'executing',
411
+ callId: 'test-call-id-1',
412
+ },
413
+ {
414
+ kind: 'tool-call-update',
415
+ status: 'success',
416
+ callId: 'test-call-id-1',
417
+ },
418
+ // Tool 2 Lifecycle
419
+ {
420
+ kind: 'tool-call-update',
421
+ status: 'validating',
422
+ callId: 'test-call-id-2',
423
+ },
424
+ {
425
+ kind: 'tool-call-update',
426
+ status: 'scheduled',
427
+ callId: 'test-call-id-2',
428
+ },
429
+ {
430
+ kind: 'tool-call-update',
431
+ status: 'executing',
432
+ callId: 'test-call-id-2',
433
+ },
434
+ {
435
+ kind: 'tool-call-update',
436
+ status: 'success',
437
+ callId: 'test-call-id-2',
438
+ },
439
+ // Final updates
440
+ { kind: 'state-change', status: undefined, callId: undefined },
441
+ { kind: 'text-content', status: undefined, callId: undefined },
442
+ ];
443
+ // Use `toContainEqual` for flexibility if other events are interspersed.
444
+ expect(eventStream).toEqual(expect.arrayContaining(expectedFlow));
294
445
  assertUniqueFinalEventIsLast(events);
295
- expect(events.length).toBe(8);
296
446
  });
297
447
  it('should handle tool calls that do not require approval', async () => {
298
448
  // First call yields the tool request
@@ -539,5 +689,53 @@ describe('E2E Tests', () => {
539
689
  expect(thoughtEvent.kind).toBe('status-update');
540
690
  expect(thoughtEvent.metadata?.['traceId']).toBe(traceId);
541
691
  });
692
+ describe('/executeCommand', () => {
693
+ const mockExtensions = [{ name: 'test-extension', version: '0.0.1' }];
694
+ beforeEach(() => {
695
+ getExtensionsSpy.mockReturnValue(mockExtensions);
696
+ });
697
+ afterEach(() => {
698
+ getExtensionsSpy.mockClear();
699
+ });
700
+ it('should return extensions for valid command', async () => {
701
+ const agent = request.agent(app);
702
+ const res = await agent
703
+ .post('/executeCommand')
704
+ .send({ command: 'extensions list', args: [] })
705
+ .set('Content-Type', 'application/json')
706
+ .expect(200);
707
+ expect(res.body).toEqual(mockExtensions);
708
+ expect(getExtensionsSpy).toHaveBeenCalled();
709
+ });
710
+ it('should return 404 for invalid command', async () => {
711
+ const agent = request.agent(app);
712
+ const res = await agent
713
+ .post('/executeCommand')
714
+ .send({ command: 'invalid command' })
715
+ .set('Content-Type', 'application/json')
716
+ .expect(404);
717
+ expect(res.body.error).toBe('Command not found: invalid command');
718
+ expect(getExtensionsSpy).not.toHaveBeenCalled();
719
+ });
720
+ it('should return 400 for missing command', async () => {
721
+ const agent = request.agent(app);
722
+ await agent
723
+ .post('/executeCommand')
724
+ .send({ args: [] })
725
+ .set('Content-Type', 'application/json')
726
+ .expect(400);
727
+ expect(getExtensionsSpy).not.toHaveBeenCalled();
728
+ });
729
+ it('should return 400 if args is not an array', async () => {
730
+ const agent = request.agent(app);
731
+ const res = await agent
732
+ .post('/executeCommand')
733
+ .send({ command: 'extensions.list', args: 'not-an-array' })
734
+ .set('Content-Type', 'application/json')
735
+ .expect(400);
736
+ expect(res.body.error).toBe('"args" field must be an array.');
737
+ expect(getExtensionsSpy).not.toHaveBeenCalled();
738
+ });
739
+ });
542
740
  });
543
741
  //# sourceMappingURL=app.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.test.js","sourceRoot":"","sources":["../../../src/http/app.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.test.js","sourceRoot":"","sources":["../../../src/http/app.test.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,6 @@
5
5
  */
6
6
  import { Storage } from '@google-cloud/storage';
7
7
  import * as fse from 'fs-extra';
8
- import { promises as fsPromises, createReadStream } from 'node:fs';
9
8
  import * as tar from 'tar';
10
9
  import { gzipSync, gunzipSync } from 'node:zlib';
11
10
  import { v4 as uuidv4 } from 'uuid';
@@ -15,12 +14,17 @@ import { logger } from '../utils/logger.js';
15
14
  import * as configModule from '../config/config.js';
16
15
  import { getPersistedState, METADATA_KEY } from '../types.js';
17
16
  // Mock dependencies
17
+ const fsMocks = vi.hoisted(() => ({
18
+ readdir: vi.fn(),
19
+ createReadStream: vi.fn(),
20
+ }));
18
21
  vi.mock('@google-cloud/storage');
19
22
  vi.mock('fs-extra', () => ({
20
23
  pathExists: vi.fn(),
21
24
  readdir: vi.fn(),
22
25
  remove: vi.fn(),
23
26
  ensureDir: vi.fn(),
27
+ createReadStream: vi.fn(),
24
28
  }));
25
29
  vi.mock('node:fs', async () => {
26
30
  const actual = await vi.importActual('node:fs');
@@ -28,12 +32,37 @@ vi.mock('node:fs', async () => {
28
32
  ...actual,
29
33
  promises: {
30
34
  ...actual.promises,
31
- readdir: vi.fn(),
35
+ readdir: fsMocks.readdir,
36
+ },
37
+ createReadStream: fsMocks.createReadStream,
38
+ };
39
+ });
40
+ vi.mock('fs', async () => {
41
+ const actual = await vi.importActual('node:fs');
42
+ return {
43
+ ...actual,
44
+ promises: {
45
+ ...actual.promises,
46
+ readdir: fsMocks.readdir,
32
47
  },
33
- createReadStream: vi.fn(),
48
+ createReadStream: fsMocks.createReadStream,
49
+ };
50
+ });
51
+ vi.mock('tar', async () => {
52
+ const actualFs = await vi.importActual('node:fs');
53
+ return {
54
+ c: vi.fn(({ file }) => {
55
+ if (file) {
56
+ actualFs.writeFileSync(file, Buffer.from('dummy tar content'));
57
+ }
58
+ return Promise.resolve();
59
+ }),
60
+ x: vi.fn().mockResolvedValue(undefined),
61
+ t: vi.fn().mockResolvedValue(undefined),
62
+ r: vi.fn().mockResolvedValue(undefined),
63
+ u: vi.fn().mockResolvedValue(undefined),
34
64
  };
35
65
  });
36
- vi.mock('tar');
37
66
  vi.mock('zlib');
38
67
  vi.mock('uuid');
39
68
  vi.mock('../utils/logger.js', () => ({
@@ -59,7 +88,7 @@ vi.mock('../types.js', async (importOriginal) => {
59
88
  });
60
89
  const mockStorage = Storage;
61
90
  const mockFse = fse;
62
- const mockCreateReadStream = createReadStream;
91
+ const mockCreateReadStream = fsMocks.createReadStream;
63
92
  const mockTar = tar;
64
93
  const mockGzipSync = gzipSync;
65
94
  const mockGunzipSync = gunzipSync;
@@ -77,12 +106,20 @@ describe('GCSTaskStore', () => {
77
106
  vi.clearAllMocks();
78
107
  bucketName = 'test-bucket';
79
108
  mockWriteStream = {
109
+ emit: vi.fn().mockReturnValue(true),
110
+ removeListener: vi.fn().mockReturnValue(mockWriteStream),
80
111
  on: vi.fn((event, cb) => {
81
112
  if (event === 'finish')
82
113
  setTimeout(cb, 0); // Simulate async finish
83
114
  return mockWriteStream;
84
115
  }),
116
+ once: vi.fn((event, cb) => {
117
+ if (event === 'finish')
118
+ setTimeout(cb, 0); // Simulate async finish return mockWriteStream;
119
+ }),
85
120
  destroy: vi.fn(),
121
+ write: vi.fn().mockReturnValue(true),
122
+ end: vi.fn(),
86
123
  destroyed: false,
87
124
  };
88
125
  mockFile = {
@@ -109,14 +146,16 @@ describe('GCSTaskStore', () => {
109
146
  _taskState: 'submitted',
110
147
  });
111
148
  fse.pathExists.mockResolvedValue(true);
112
- fsPromises.readdir.mockResolvedValue(['file1.txt']);
113
- mockTar.c.mockResolvedValue(undefined);
114
- mockTar.x.mockResolvedValue(undefined);
149
+ fsMocks.readdir.mockResolvedValue(['file1.txt']);
115
150
  mockFse.remove.mockResolvedValue(undefined);
116
151
  mockFse.ensureDir.mockResolvedValue(undefined);
117
152
  mockGzipSync.mockReturnValue(Buffer.from('compressed'));
118
153
  mockGunzipSync.mockReturnValue(Buffer.from('{}'));
119
154
  mockCreateReadStream.mockReturnValue({ on: vi.fn(), pipe: vi.fn() });
155
+ mockFse.createReadStream.mockReturnValue({
156
+ on: vi.fn(),
157
+ pipe: vi.fn(),
158
+ });
120
159
  });
121
160
  describe('Constructor & Initialization', () => {
122
161
  it('should initialize and check bucket existence', async () => {
@@ -148,12 +187,11 @@ describe('GCSTaskStore', () => {
148
187
  status: { state: 'working' },
149
188
  metadata: {},
150
189
  };
151
- it.skip('should save metadata and workspace', async () => {
190
+ it('should save metadata and workspace', async () => {
152
191
  const store = new GCSTaskStore(bucketName);
153
192
  await store.save(mockTask);
154
193
  expect(mockFile.save).toHaveBeenCalledTimes(1);
155
194
  expect(mockTar.c).toHaveBeenCalledTimes(1);
156
- expect(mockCreateReadStream).toHaveBeenCalledTimes(1);
157
195
  expect(mockFse.remove).toHaveBeenCalledTimes(1);
158
196
  expect(logger.info).toHaveBeenCalledWith(expect.stringContaining('metadata saved to GCS'));
159
197
  expect(logger.info).toHaveBeenCalledWith(expect.stringContaining('workspace saved to GCS'));