fix(coding-agent): stabilize self-update tests

This commit is contained in:
Armin Ronacher
2026-06-16 20:02:20 +02:00
parent 0b0b9eae62
commit a78cd7ccb1

View File

@@ -5,6 +5,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
import { ENV_AGENT_DIR, PACKAGE_NAME, VERSION } from "../src/config.ts";
import { ProjectTrustStore } from "../src/core/trust-manager.ts";
import { main } from "../src/main.ts";
import { handlePackageCommand } from "../src/package-manager-cli.ts";
describe("package commands", () => {
let tempDir: string;
@@ -22,6 +23,10 @@ describe("package commands", () => {
return `${major}.${minor}.${Number.parseInt(patch, 10) + 1}`;
}
async function runPackageCommandDirectly(args: string[]): Promise<void> {
expect(await handlePackageCommand(args)).toBe(true);
}
beforeEach(() => {
tempDir = join(tmpdir(), `pi-package-commands-${Date.now()}-${Math.random().toString(36).slice(2)}`);
agentDir = join(tempDir, "agent");
@@ -404,7 +409,7 @@ else fs.writeFileSync(${JSON.stringify(recordPath)},JSON.stringify(args));
const errorSpy = vi.spyOn(console, "error").mockImplementation(() => {});
try {
await expect(main(["update", "--self", "--force"])).resolves.toBeUndefined();
await expect(runPackageCommandDirectly(["update", "--self", "--force"])).resolves.toBeUndefined();
expect(process.exitCode).toBeUndefined();
expect(errorSpy).not.toHaveBeenCalled();
@@ -448,7 +453,7 @@ else fs.writeFileSync(${JSON.stringify(recordPath)},JSON.stringify(args));
const errorSpy = vi.spyOn(console, "error").mockImplementation(() => {});
try {
await expect(main(["update", "--self"])).resolves.toBeUndefined();
await expect(runPackageCommandDirectly(["update", "--self"])).resolves.toBeUndefined();
expect(process.exitCode).toBeUndefined();
expect(errorSpy).not.toHaveBeenCalled();
@@ -497,7 +502,7 @@ else {
const errorSpy = vi.spyOn(console, "error").mockImplementation(() => {});
try {
await expect(main(["update", "--self"])).resolves.toBeUndefined();
await expect(runPackageCommandDirectly(["update", "--self"])).resolves.toBeUndefined();
expect(process.exitCode).toBeUndefined();
expect(errorSpy).not.toHaveBeenCalled();
@@ -550,7 +555,7 @@ if(args.includes("install")) process.exit(23);
const errorSpy = vi.spyOn(console, "error").mockImplementation(() => {});
try {
await expect(main(["update", "--self"])).resolves.toBeUndefined();
await expect(runPackageCommandDirectly(["update", "--self"])).resolves.toBeUndefined();
expect(process.exitCode).toBe(1);
const stdout = logSpy.mock.calls.map(([message]) => String(message)).join("\n");