mirror of
https://github.com/tinyhumansai/openhuman.git
synced 2026-07-28 21:44:38 +00:00
45 lines
1.6 KiB
JavaScript
Executable File
45 lines
1.6 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
import { mkdtempSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
import { tmpdir } from 'node:os';
|
|
import path from 'node:path';
|
|
import { execSync } from 'node:child_process';
|
|
|
|
function run(cmd, cwd) {
|
|
return execSync(cmd, { cwd, stdio: 'pipe', encoding: 'utf8' });
|
|
}
|
|
|
|
function makeRepo(branchName) {
|
|
const dir = mkdtempSync(path.join(tmpdir(), 'codex-preflight-'));
|
|
mkdirSync(path.join(dir, 'gitbooks/developing'), { recursive: true });
|
|
mkdirSync(path.join(dir, 'app'), { recursive: true });
|
|
writeFileSync(path.join(dir, 'AGENTS.md'), '# test\n');
|
|
writeFileSync(path.join(dir, 'gitbooks/developing/README.md'), 'ok\n');
|
|
writeFileSync(path.join(dir, 'Cargo.toml'), '[package]\nname="x"\nversion="0.1.0"\n');
|
|
writeFileSync(path.join(dir, 'app/package.json'), '{"name":"x"}\n');
|
|
run('git init', dir);
|
|
run('git config user.email test@example.com', dir);
|
|
run('git config user.name test', dir);
|
|
run('git add .', dir);
|
|
run('git commit -m init', dir);
|
|
run(`git checkout -b ${branchName}`, dir);
|
|
run('git remote add origin git@github.com:jwalin-shah/openhuman.git', dir);
|
|
return dir;
|
|
}
|
|
|
|
const script = path.resolve('scripts/codex-pr-preflight.mjs');
|
|
const passRepo = makeRepo('codex/SYM-93-preflight');
|
|
run(`CODEX_EXPECT_REPO_PATH=${passRepo} node ${script} --strict-path --lightweight`, passRepo);
|
|
|
|
const failRepo = makeRepo('feature/not-codex');
|
|
let failed = false;
|
|
try {
|
|
run(`CODEX_EXPECT_REPO_PATH=${failRepo} node ${script} --strict-path --lightweight`, failRepo);
|
|
} catch {
|
|
failed = true;
|
|
}
|
|
if (!failed) {
|
|
throw new Error('Expected invalid branch naming to fail preflight');
|
|
}
|
|
|
|
console.log('codex preflight self-test passed');
|