summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatt korwel <[email protected]>2025-07-06 20:16:42 -0700
committerGitHub <[email protected]>2025-07-07 03:16:42 +0000
commit20825e41148a58998a6b1e5869149eac8d09cfbd (patch)
treea228489987cd2e50925e5c9e97f5b9d0aa9c5e73
parent39d4095a4c0f3478235aa0c80c94586b9e2662c2 (diff)
Release misc (#3418)
-rw-r--r--.github/workflows/release.yml2
-rw-r--r--.vscode/launch.json10
-rw-r--r--integration-tests/list_directory.test.js9
-rw-r--r--integration-tests/run-tests.js50
-rw-r--r--integration-tests/test-helper.js4
-rw-r--r--package.json2
6 files changed, 52 insertions, 25 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index fde3ee4b..17085320 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -168,6 +168,6 @@ jobs:
gh issue create \
--title "Release Failed for ${{ steps.version.outputs.RELEASE_TAG || 'N/A' }} on $(date +'%Y-%m-%d')" \
--body "The release workflow failed. See the full run for details: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
- --label "type: bug,release-failure"
+ --label "kind/bug,release-failure"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.vscode/launch.json b/.vscode/launch.json
index 291c3c06..605a464d 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -21,10 +21,14 @@
"type": "node",
"request": "launch",
"name": "Launch E2E",
- "runtimeExecutable": "npm",
- "runtimeArgs": ["run", "test:e2e", "read_many_files"],
+ "program": "${workspaceFolder}/integration-tests/run-tests.js",
+ "args": ["--verbose", "--keep-output", "list_directory"],
"skipFiles": ["<node_internals>/**"],
- "cwd": "${workspaceFolder}"
+ "cwd": "${workspaceFolder}",
+ "console": "integratedTerminal",
+ "env": {
+ "GEMINI_SANDBOX": "false"
+ }
},
{
"name": "Attach",
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',
'',
diff --git a/package.json b/package.json
index c0710581..edb391da 100644
--- a/package.json
+++ b/package.json
@@ -30,7 +30,7 @@
"test:integration:sandbox:none": "GEMINI_SANDBOX=false node integration-tests/run-tests.js",
"test:integration:sandbox:docker": "GEMINI_SANDBOX=docker node integration-tests/run-tests.js",
"test:integration:sandbox:podman": "GEMINI_SANDBOX=podman node integration-tests/run-tests.js",
- "test:scripts": "vitest --config ./scripts/tests/vitest.config.ts",
+ "test:scripts": "vitest run --config ./scripts/tests/vitest.config.ts",
"start": "node scripts/start.js",
"debug": "cross-env DEBUG=1 node --inspect-brk scripts/start.js",
"lint:fix": "eslint . --fix && eslint integration-tests --fix",