fix(FN-952): activate projects after CLI registration

- Set project status to 'active' after registration in runInit (kb init)
- Set project status to 'active' after registration in runProjectAdd (kb project add)
- Set project status to 'active' after interactive registration in resolveProjectDirectory
- Add updateProject mock to init.test.ts, project.test.ts, and project-resolver.test.ts
This commit is contained in:
gsxdsm
2026-04-04 21:07:43 -07:00
parent 2b40605203
commit 5e6e1e8fe6
6 changed files with 17 additions and 0 deletions

View File

@@ -12,6 +12,7 @@ const mockCentralInit = vi.fn();
const mockCentralClose = vi.fn();
const mockGetProjectByPath = vi.fn();
const mockRegisterProject = vi.fn();
const mockUpdateProject = vi.fn().mockResolvedValue({});
vi.mock("@fusion/core", () => ({
CentralCore: vi.fn().mockImplementation(() => ({
@@ -19,6 +20,7 @@ vi.mock("@fusion/core", () => ({
close: mockCentralClose,
getProjectByPath: mockGetProjectByPath,
registerProject: mockRegisterProject,
updateProject: mockUpdateProject,
})),
resolveGlobalDir: vi.fn(),
}));

View File

@@ -109,6 +109,9 @@ export async function runInit(options: InitOptions = {}): Promise<void> {
isolationMode: "in-process",
});
// Activate the project (registration sets it to 'initializing')
await central.updateProject(project.id, { status: "active" });
console.log(` ✓ Registered in central database`);
console.log(`\n✓ Project "${project.name}" initialized successfully!`);
console.log(`\n Next steps:`);

View File

@@ -5,6 +5,7 @@ import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
const mockListProjects = vi.fn();
const mockRegisterProject = vi.fn();
const mockUpdateProject = vi.fn().mockResolvedValue({});
const mockUnregisterProject = vi.fn();
const mockGetProject = vi.fn();
const mockGetProjectByPath = vi.fn();
@@ -28,6 +29,7 @@ vi.mock("@fusion/core", () => ({
close: mockClose.mockResolvedValue(undefined),
listProjects: mockListProjects,
registerProject: mockRegisterProject,
updateProject: mockUpdateProject,
unregisterProject: mockUnregisterProject,
getProject: mockGetProject,
getProjectByPath: mockGetProjectByPath,

View File

@@ -361,6 +361,9 @@ export async function runProjectAdd(
isolationMode,
});
// Activate the project (registration sets it to 'initializing')
await central.updateProject(project.id, { status: "active" });
console.log();
console.log(` ✓ Registered project '${projectName}'`);
console.log(` Location: ${formatDisplayPath(project.path)}`);