From bd8650e80ba34f89a053c99375d6e3496d3d2b07 Mon Sep 17 00:00:00 2001 From: Andras Schmelczer Date: Tue, 13 Jan 2026 20:28:06 +0000 Subject: [PATCH] Add initial documents before starting --- frontend/test-client/src/agent/mock-agent.ts | 23 +++++++++++++++++++ frontend/test-client/src/agent/mock-client.ts | 2 +- frontend/test-client/src/cli.ts | 11 +++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/frontend/test-client/src/agent/mock-agent.ts b/frontend/test-client/src/agent/mock-agent.ts index 5b0d3a8c..5ca85f2a 100644 --- a/frontend/test-client/src/agent/mock-agent.ts +++ b/frontend/test-client/src/agent/mock-agent.ts @@ -90,6 +90,29 @@ export class MockAgent extends MockClient { this.client.logger.info("Agent initialized"); } + public async createInitialDocuments(count: number): Promise { + this.client.logger.info(`Creating ${count} initial documents`); + + for (let i = 0; i < count; i++) { + const file = `initial-${i}.md`; + const content = this.getContent(); + this.client.logger.info( + `Creating initial file ${file} with content ${content}` + ); + await this.create(file, new TextEncoder().encode(` ${content} `), { + ignoreSlowFileEvents: true + }); + } + + // Wait for all initial documents to sync + await this.client.waitUntilFinished(); + this.client.logger.info(`Initial documents created and synced`); + } + + public async waitUntilSynced(): Promise { + await this.client.waitUntilFinished(); + } + public async act(): Promise { const options: (() => Promise)[] = [ this.createFileAction.bind(this) diff --git a/frontend/test-client/src/agent/mock-client.ts b/frontend/test-client/src/agent/mock-client.ts index f7b6e384..94cee762 100644 --- a/frontend/test-client/src/agent/mock-client.ts +++ b/frontend/test-client/src/agent/mock-client.ts @@ -183,7 +183,7 @@ export class MockClient implements FileSystemOperations { ), ignoreSlowFileEvents); } - private executeFileOperation(callback: () => unknown, ignoreSlowFileEvents: boolean = false): void { + private executeFileOperation(callback: () => unknown, ignoreSlowFileEvents = false): void { if (this.useSlowFileEvents && !ignoreSlowFileEvents) { // we aren't the best client and it takes some time to notice changes setTimeout(callback, Math.random() * 100); diff --git a/frontend/test-client/src/cli.ts b/frontend/test-client/src/cli.ts index e7303330..e3fd7000 100644 --- a/frontend/test-client/src/cli.ts +++ b/frontend/test-client/src/cli.ts @@ -6,6 +6,7 @@ import { v4 as uuidv4 } from "uuid"; import { randomCasing } from "./utils/random-casing"; const TEST_ITERATIONS = 5; +const MAX_INITIAL_DOCS = 5; // Simulate async file access by injecting waiting time before returning from file operations. let slowFileEvents = false; @@ -68,6 +69,16 @@ async function runTest({ try { await utils.awaitAll(clients.map(async (client) => client.init())); + for (const client of clients) { + const initialDocCount = Math.floor(Math.random() * MAX_INITIAL_DOCS); + if (initialDocCount > 0) { + logger.info( + `Creating ${initialDocCount} initial documents for ${client.name}` + ); + await client.createInitialDocuments(initialDocCount); + } + } + for (let i = 0; i < iterations; i++) { logger.info(`Iteration ${i + 1}/${iterations}`); await utils.awaitAll(clients.map(async (client) => client.act()));