mirror of
https://github.com/oven-sh/bun
synced 2026-02-12 11:59:00 +00:00
@paperdave we must always use `bunEnv` in the `env` to ensure that the color settings and other stuff doesn't cause bun to produce extraneous stdout input when using console.log Additionally, the console.log was left in (which is okay)
42 lines
1019 B
TypeScript
42 lines
1019 B
TypeScript
// https://github.com/oven-sh/bun/issues/3216
|
|
import { test, expect } from "bun:test";
|
|
import { tmpdir } from "os";
|
|
import { mkdtempSync, writeFileSync } from "fs";
|
|
import { join } from "path";
|
|
import { bunEnv, bunExe } from "harness";
|
|
|
|
test("runtime directory caching gets invalidated", () => {
|
|
const tmp = mkdtempSync(join(tmpdir(), "bun-test-"));
|
|
writeFileSync(
|
|
join(tmp, "index.ts"),
|
|
`const file = \`\${import.meta.dir}/temp.mjs\`;
|
|
|
|
import { existsSync, unlinkSync, writeFileSync } from "fs";
|
|
|
|
if (existsSync(file)) {
|
|
console.log("temp.mjs cannot exist before running this script");
|
|
unlinkSync(file);
|
|
process.exit(2);
|
|
}
|
|
|
|
writeFileSync(file, "export default 1;");
|
|
|
|
try {
|
|
const module = await import(file);
|
|
console.log(module.default);
|
|
} finally {
|
|
unlinkSync(file);
|
|
}
|
|
`,
|
|
);
|
|
|
|
const result = Bun.spawnSync({
|
|
cmd: [bunExe(), "run", join(tmp, "index.ts")],
|
|
cwd: tmp,
|
|
env: bunEnv,
|
|
});
|
|
|
|
expect(result.exitCode).toBe(0);
|
|
expect(result.stdout.toString("utf-8")).toBe("1\n");
|
|
});
|