Automate issuer overlay creation from ticker searches

This commit is contained in:
2026-03-19 20:44:58 -04:00
parent 17de3dd72d
commit 391d6d34ce
79 changed files with 4746 additions and 695 deletions

View File

@@ -158,6 +158,9 @@ const mockUpsertFilingsRecords = mock(async () => ({
const mockDeleteCompanyFinancialBundlesForTicker = mock(async () => {});
const mockGetFilingTaxonomySnapshotByFilingId = mock(async () => null);
const mockNormalizeFilingTaxonomySnapshotPayload = mock((input: unknown) => {
return input as Record<string, unknown>;
});
const mockUpsertFilingTaxonomySnapshot = mock(async () => {});
const mockValidateMetricsWithPdfLlm = mock(async () => ({
validation_result: {
@@ -252,6 +255,14 @@ const mockFetchRecentFilings = mock(async () => [
const mockEnqueueTask = mock(async () => ({
id: "search-task-1",
}));
const mockGenerateIssuerOverlayForTicker = mock(async () => ({
published: false,
activeRevisionId: null,
sampledSnapshotIds: [1],
}));
const mockRecordIssuerOverlayBuildFailure = mock(async () => {});
const mockGetActiveIssuerOverlayDefinition = mock(async () => null);
const mockGetIssuerOverlay = mock(async () => null);
const mockHydrateFilingTaxonomySnapshot = mock(
async (input: { filingId: number }) => ({
filing_id: input.filingId,
@@ -338,6 +349,8 @@ mock.module("@/lib/server/repos/company-financial-bundles", () => ({
}));
mock.module("@/lib/server/repos/filing-taxonomy", () => ({
getFilingTaxonomySnapshotByFilingId: mockGetFilingTaxonomySnapshotByFilingId,
normalizeFilingTaxonomySnapshotPayload:
mockNormalizeFilingTaxonomySnapshotPayload,
upsertFilingTaxonomySnapshot: mockUpsertFilingTaxonomySnapshot,
}));
mock.module("@/lib/server/repos/holdings", () => ({
@@ -358,6 +371,14 @@ mock.module("@/lib/server/sec", () => ({
mock.module("@/lib/server/tasks", () => ({
enqueueTask: mockEnqueueTask,
}));
mock.module("@/lib/server/issuer-overlays", () => ({
generateIssuerOverlayForTicker: mockGenerateIssuerOverlayForTicker,
recordIssuerOverlayBuildFailure: mockRecordIssuerOverlayBuildFailure,
}));
mock.module("@/lib/server/repos/issuer-overlays", () => ({
getActiveIssuerOverlayDefinition: mockGetActiveIssuerOverlayDefinition,
getIssuerOverlay: mockGetIssuerOverlay,
}));
mock.module("@/lib/server/taxonomy/engine", () => ({
hydrateFilingTaxonomySnapshot: mockHydrateFilingTaxonomySnapshot,
}));
@@ -413,6 +434,11 @@ describe("task processor outcomes", () => {
mockUpdateTaskStage.mockClear();
mockEnqueueTask.mockClear();
mockValidateMetricsWithPdfLlm.mockClear();
mockGenerateIssuerOverlayForTicker.mockClear();
mockRecordIssuerOverlayBuildFailure.mockClear();
mockGetActiveIssuerOverlayDefinition.mockClear();
mockGetIssuerOverlay.mockClear();
mockNormalizeFilingTaxonomySnapshotPayload.mockClear();
});
it("returns sync filing completion detail and progress context", async () => {