diff options
| author | matt korwel <[email protected]> | 2025-07-06 20:16:42 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-07-07 03:16:42 +0000 |
| commit | 20825e41148a58998a6b1e5869149eac8d09cfbd (patch) | |
| tree | a228489987cd2e50925e5c9e97f5b9d0aa9c5e73 /integration-tests | |
| parent | 39d4095a4c0f3478235aa0c80c94586b9e2662c2 (diff) | |
Release misc (#3418)
Diffstat (limited to 'integration-tests')
| -rw-r--r-- | integration-tests/list_directory.test.js | 9 | ||||
| -rw-r--r-- | integration-tests/run-tests.js | 50 | ||||
| -rw-r--r-- | integration-tests/test-helper.js | 4 |
3 files changed, 43 insertions, 20 deletions
diff --git a/integration-tests/list_directory.test.js b/integration-tests/list_directory.test.js index 3190e482..af7aae78 100644 --- a/integration-tests/list_directory.test.js +++ b/integration-tests/list_directory.test.js @@ -15,11 +15,10 @@ test('should be able to list a directory', async (t) => { rig.mkdir('subdir'); rig.sync(); - const prompt = `Can you list the files in the current directory`; - const result = await rig.run(prompt); + const prompt = `Can you list the files in the current directory. Display them in the style of 'ls'`; + const result = rig.run(prompt); const lines = result.split('\n').filter((line) => line.trim() !== ''); - assert.equal(lines.length, 2); - assert.ok(lines.includes('file1.txt')); - assert.ok(lines.includes('subdir')); + assert.ok(lines.some((line) => line.includes('file1.txt'))); + assert.ok(lines.some((line) => line.includes('subdir'))); }); diff --git a/integration-tests/run-tests.js b/integration-tests/run-tests.js index 1e8ccad9..5923dfcf 100644 --- a/integration-tests/run-tests.js +++ b/integration-tests/run-tests.js @@ -72,35 +72,59 @@ async function main() { `------------- Running test file: ${testFileName} ------------------------------`, ); - const child = spawn('node', ['--test', testFile], { + const nodeArgs = ['--test']; + if (verbose) { + nodeArgs.push('--test-reporter=spec'); + } + nodeArgs.push(testFile); + + const child = spawn('node', nodeArgs, { stdio: 'pipe', env: { ...process.env, GEMINI_CLI_INTEGRATION_TEST: 'true', INTEGRATION_TEST_FILE_DIR: testFileDir, KEEP_OUTPUT: keepOutput.toString(), + VERBOSE: verbose.toString(), TEST_FILE_NAME: testFileName, }, }); - if (verbose) { - child.stdout.pipe(process.stdout); - child.stderr.pipe(process.stderr); - } - + let outputStream; if (keepOutput) { const outputFile = join(testFileDir, 'output.log'); - const outputStream = createWriteStream(outputFile); - child.stdout.pipe(outputStream); - child.stderr.pipe(outputStream); + outputStream = createWriteStream(outputFile); console.log(`Output for ${testFileName} written to: ${outputFile}`); - } else if (!verbose) { - child.stdout.pipe(process.stdout); - child.stderr.pipe(process.stderr); } + child.stdout.on('data', (data) => { + if (verbose) { + process.stdout.write(data); + } + if (outputStream) { + outputStream.write(data); + } + }); + + child.stderr.on('data', (data) => { + if (verbose) { + process.stderr.write(data); + } + if (outputStream) { + outputStream.write(data); + } + }); + const exitCode = await new Promise((resolve) => { - child.on('close', resolve); + child.on('close', (code) => { + if (outputStream) { + outputStream.end(() => { + resolve(code); + }); + } else { + resolve(code); + } + }); }); if (exitCode !== 0) { diff --git a/integration-tests/test-helper.js b/integration-tests/test-helper.js index 7acdc7aa..7ee3db87 100644 --- a/integration-tests/test-helper.js +++ b/integration-tests/test-helper.js @@ -72,7 +72,7 @@ export class TestRig { const output = execSync(command, execOptions); - if (env.KEEP_OUTPUT === 'true') { + if (env.KEEP_OUTPUT === 'true' || env.VERBOSE === 'true') { const testId = `${env.TEST_FILE_NAME.replace( '.test.js', '', @@ -87,7 +87,7 @@ export class TestRig { readFile(fileName) { const content = readFileSync(join(this.testDir, fileName), 'utf-8'); - if (env.KEEP_OUTPUT === 'true') { + if (env.KEEP_OUTPUT === 'true' || env.VERBOSE === 'true') { const testId = `${env.TEST_FILE_NAME.replace( '.test.js', '', |
