test: fix post-sync verification regressions

This commit is contained in:
dotta
2026-03-20 07:01:42 -05:00
parent 2a33acce3a
commit 616a2bc8f9
5 changed files with 24 additions and 5 deletions

View File

@@ -278,15 +278,15 @@
{ {
"idx": 39, "idx": 39,
"version": "7", "version": "7",
"when": 1773927102783, "when": 1773926116580,
"tag": "0039_eager_shotgun", "tag": "0038_fat_magneto",
"breakpoints": true "breakpoints": true
}, },
{ {
"idx": 40, "idx": 40,
"version": "7", "version": "7",
"when": 1773926116580, "when": 1773927102783,
"tag": "0038_fat_magneto", "tag": "0039_eager_shotgun",
"breakpoints": true "breakpoints": true
} }
] ]

View File

@@ -76,19 +76,27 @@ const mockSecretService = vi.hoisted(() => ({
resolveAdapterConfigForRuntime: vi.fn(), resolveAdapterConfigForRuntime: vi.fn(),
})); }));
const mockAgentInstructionsService = vi.hoisted(() => ({}));
const mockCompanySkillService = vi.hoisted(() => ({
listRuntimeSkillEntries: vi.fn(),
resolveRequestedSkillKeys: vi.fn(),
}));
const mockWorkspaceOperationService = vi.hoisted(() => ({})); const mockWorkspaceOperationService = vi.hoisted(() => ({}));
const mockLogActivity = vi.hoisted(() => vi.fn()); const mockLogActivity = vi.hoisted(() => vi.fn());
vi.mock("../services/index.js", () => ({ vi.mock("../services/index.js", () => ({
agentService: () => mockAgentService, agentService: () => mockAgentService,
agentInstructionsService: () => mockAgentInstructionsService,
accessService: () => mockAccessService, accessService: () => mockAccessService,
approvalService: () => mockApprovalService, approvalService: () => mockApprovalService,
companySkillService: () => mockCompanySkillService,
budgetService: () => mockBudgetService, budgetService: () => mockBudgetService,
heartbeatService: () => mockHeartbeatService, heartbeatService: () => mockHeartbeatService,
issueApprovalService: () => mockIssueApprovalService, issueApprovalService: () => mockIssueApprovalService,
issueService: () => mockIssueService, issueService: () => mockIssueService,
logActivity: mockLogActivity, logActivity: mockLogActivity,
secretService: () => mockSecretService, secretService: () => mockSecretService,
syncInstructionsBundleConfigFromFilePath: vi.fn((_agent, config) => config),
workspaceOperationService: () => mockWorkspaceOperationService, workspaceOperationService: () => mockWorkspaceOperationService,
})); }));
@@ -141,6 +149,8 @@ describe("agent permission routes", () => {
mockAccessService.listPrincipalGrants.mockResolvedValue([]); mockAccessService.listPrincipalGrants.mockResolvedValue([]);
mockAccessService.ensureMembership.mockResolvedValue(undefined); mockAccessService.ensureMembership.mockResolvedValue(undefined);
mockAccessService.setPrincipalPermission.mockResolvedValue(undefined); mockAccessService.setPrincipalPermission.mockResolvedValue(undefined);
mockCompanySkillService.listRuntimeSkillEntries.mockResolvedValue([]);
mockCompanySkillService.resolveRequestedSkillKeys.mockImplementation(async (_companyId, requested) => requested);
mockBudgetService.upsertPolicy.mockResolvedValue(undefined); mockBudgetService.upsertPolicy.mockResolvedValue(undefined);
mockSecretService.normalizeAdapterConfigForPersistence.mockImplementation(async (_companyId, config) => config); mockSecretService.normalizeAdapterConfigForPersistence.mockImplementation(async (_companyId, config) => config);
mockSecretService.resolveAdapterConfigForRuntime.mockImplementation(async (_companyId, config) => ({ config })); mockSecretService.resolveAdapterConfigForRuntime.mockImplementation(async (_companyId, config) => ({ config }));

View File

@@ -14,6 +14,10 @@ const mockAgentService = vi.hoisted(() => ({
const mockAccessService = vi.hoisted(() => ({ const mockAccessService = vi.hoisted(() => ({
canUser: vi.fn(), canUser: vi.fn(),
hasPermission: vi.fn(), hasPermission: vi.fn(),
getMembership: vi.fn(),
listPrincipalGrants: vi.fn(),
ensureMembership: vi.fn(),
setPrincipalPermission: vi.fn(),
})); }));
const mockApprovalService = vi.hoisted(() => ({})); const mockApprovalService = vi.hoisted(() => ({}));
@@ -186,6 +190,10 @@ describe("agent skill routes", () => {
mockLogActivity.mockResolvedValue(undefined); mockLogActivity.mockResolvedValue(undefined);
mockAccessService.canUser.mockResolvedValue(true); mockAccessService.canUser.mockResolvedValue(true);
mockAccessService.hasPermission.mockResolvedValue(true); mockAccessService.hasPermission.mockResolvedValue(true);
mockAccessService.getMembership.mockResolvedValue(null);
mockAccessService.listPrincipalGrants.mockResolvedValue([]);
mockAccessService.ensureMembership.mockResolvedValue(undefined);
mockAccessService.setPrincipalPermission.mockResolvedValue(undefined);
}); });
it("skips runtime materialization when listing Claude skills", async () => { it("skips runtime materialization when listing Claude skills", async () => {

View File

@@ -17,6 +17,7 @@ const accessSvc = {
ensureMembership: vi.fn(), ensureMembership: vi.fn(),
listActiveUserMemberships: vi.fn(), listActiveUserMemberships: vi.fn(),
copyActiveUserMemberships: vi.fn(), copyActiveUserMemberships: vi.fn(),
setPrincipalPermission: vi.fn(),
}; };
const projectSvc = { const projectSvc = {
@@ -258,6 +259,7 @@ describe("company portability", () => {
assetSvc.getById.mockReset(); assetSvc.getById.mockReset();
assetSvc.getById.mockResolvedValue(null); assetSvc.getById.mockResolvedValue(null);
assetSvc.create.mockReset(); assetSvc.create.mockReset();
accessSvc.setPrincipalPermission.mockResolvedValue(undefined);
assetSvc.create.mockResolvedValue({ assetSvc.create.mockResolvedValue({
id: "asset-created", id: "asset-created",
}); });

View File

@@ -7,7 +7,6 @@ import {
createCompanySchema, createCompanySchema,
updateCompanyBrandingSchema, updateCompanyBrandingSchema,
updateCompanySchema, updateCompanySchema,
updateCompanyBrandingSchema,
} from "@paperclipai/shared"; } from "@paperclipai/shared";
import { forbidden } from "../errors.js"; import { forbidden } from "../errors.js";
import { validate } from "../middleware/validate.js"; import { validate } from "../middleware/validate.js";