mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-04-06 17:23:28 +08:00
64 lines
1.7 KiB
JavaScript
64 lines
1.7 KiB
JavaScript
/**
|
|
* Tests for scripts/build-opencode.js
|
|
*/
|
|
|
|
const assert = require("assert")
|
|
const fs = require("fs")
|
|
const path = require("path")
|
|
const { spawnSync } = require("child_process")
|
|
|
|
function runTest(name, fn) {
|
|
try {
|
|
fn()
|
|
console.log(` ✓ ${name}`)
|
|
return true
|
|
} catch (error) {
|
|
console.log(` ✗ ${name}`)
|
|
console.error(` ${error.message}`)
|
|
return false
|
|
}
|
|
}
|
|
|
|
function main() {
|
|
console.log("\n=== Testing build-opencode.js ===\n")
|
|
|
|
let passed = 0
|
|
let failed = 0
|
|
|
|
const repoRoot = path.join(__dirname, "..", "..")
|
|
const packageJson = JSON.parse(
|
|
fs.readFileSync(path.join(repoRoot, "package.json"), "utf8")
|
|
)
|
|
const buildScript = path.join(repoRoot, "scripts", "build-opencode.js")
|
|
const distEntry = path.join(repoRoot, ".opencode", "dist", "index.js")
|
|
const tests = [
|
|
["package.json exposes the OpenCode build and prepack hooks", () => {
|
|
assert.strictEqual(packageJson.scripts["build:opencode"], "node scripts/build-opencode.js")
|
|
assert.strictEqual(packageJson.scripts.prepack, "npm run build:opencode")
|
|
assert.ok(packageJson.files.includes(".opencode/dist/"))
|
|
}],
|
|
["build script generates .opencode/dist", () => {
|
|
const result = spawnSync("node", [buildScript], {
|
|
cwd: repoRoot,
|
|
encoding: "utf8",
|
|
})
|
|
assert.strictEqual(result.status, 0, result.stderr)
|
|
assert.ok(fs.existsSync(distEntry), ".opencode/dist/index.js should exist after build")
|
|
}],
|
|
]
|
|
|
|
for (const [name, fn] of tests) {
|
|
if (runTest(name, fn)) {
|
|
passed += 1
|
|
} else {
|
|
failed += 1
|
|
}
|
|
}
|
|
|
|
console.log(`\nPassed: ${passed}`)
|
|
console.log(`Failed: ${failed}`)
|
|
process.exit(failed > 0 ? 1 : 0)
|
|
}
|
|
|
|
main()
|