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