Skip to content

Commit df73bf0

Browse files
committed
improvement(logs): type the new test helpers instead of using any
1 parent 774d3c2 commit df73bf0

2 files changed

Lines changed: 25 additions & 9 deletions

File tree

apps/sim/lib/logs/execution/logger.test.ts

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
queueTableRows,
66
resetDbChainMock,
77
} from '@sim/testing'
8+
import { isPlainRecord } from '@sim/utils/object'
89
import { afterAll, beforeEach, describe, expect, test, vi } from 'vitest'
910
import { recordUsage } from '@/lib/billing/core/usage-log'
1011
import { ExecutionLogger } from '@/lib/logs/execution/logger'
@@ -328,13 +329,17 @@ describe('ExecutionLogger', () => {
328329
dbChainMockFns.returning.mockResolvedValueOnce([
329330
{ id: 'log-1', executionData: {}, startedAt, createdAt: startedAt },
330331
])
331-
vi.spyOn(logger as any, 'applyPiiRedaction').mockImplementation(
332-
async (_workspaceId: unknown, payload: any) =>
332+
const internals = logger as unknown as {
333+
applyPiiRedaction: (workspaceId: string, payload: Record<string, unknown>) => unknown
334+
recordExecutionUsage: () => Promise<number>
335+
}
336+
vi.spyOn(internals, 'applyPiiRedaction').mockImplementation(
337+
async (_workspaceId: string, payload: Record<string, unknown>) =>
333338
Object.hasOwn(params, 'redactedState')
334339
? { ...payload, executionState: params.redactedState }
335340
: payload
336341
)
337-
vi.spyOn(logger as any, 'recordExecutionUsage').mockResolvedValue(0)
342+
vi.spyOn(internals, 'recordExecutionUsage').mockResolvedValue(0)
338343

339344
await logger.completeWorkflowExecution({
340345
executionId: 'execution-1',
@@ -356,8 +361,8 @@ describe('ExecutionLogger', () => {
356361
})
357362

358363
return dbChainMockFns.set.mock.calls
359-
.map(([values]: [any]) => values?.executionData)
360-
.find((data: any) => data && typeof data === 'object')
364+
.map(([values]: [{ executionData?: unknown }]) => values?.executionData)
365+
.find((data): data is Record<string, unknown> => isPlainRecord(data))
361366
}
362367

363368
/**
@@ -745,7 +750,12 @@ describe('ExecutionLogger', () => {
745750
}
746751

747752
function compactWithProvenance(traceSpans: unknown[], finalOutput: unknown) {
748-
const loggerInstance = new ExecutionLogger() as any
753+
const loggerInstance = new ExecutionLogger() as unknown as {
754+
compactExecutionDataForStorage: (
755+
data: Record<string, unknown>,
756+
executionId: string
757+
) => Record<string, unknown>
758+
}
749759
return loggerInstance.compactExecutionDataForStorage(
750760
{
751761
secretProjectionVersion: SECRET_PROJECTION_VERSION,

apps/sim/lib/logs/execution/trace-store.test.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,12 @@ describe('projectExecutionDataForDisplay provenance handling', () => {
312312
}
313313
}
314314

315+
/** First span of a projected display payload. */
316+
function firstSpan(displayData: Record<string, unknown>): Record<string, unknown> {
317+
const [span] = displayData.traceSpans as Record<string, unknown>[]
318+
return span
319+
}
320+
315321
it.each([
316322
['a contract row', () => truncatedRow({ [RESOLVED_SECRET_PROVENANCE_KEY]: PROVENANCE })],
317323
['a legacy row', () => ({ [RESOLVED_SECRET_PROVENANCE_KEY]: PROVENANCE, finalOutput: {} })],
@@ -330,13 +336,13 @@ describe('projectExecutionDataForDisplay provenance handling', () => {
330336
)
331337

332338
expect(displayData.finalOutput).toEqual({ result: 'unknown-secret' })
333-
expect((displayData.traceSpans as any[])[0]).toHaveProperty('input')
339+
expect(firstSpan(displayData)).toHaveProperty('input')
334340
})
335341

336342
it('keeps write-time-projected spans on a truncated row with no provenance', async () => {
337343
const displayData = await projectExecutionDataForDisplay(truncatedRow(), CONTEXT)
338344

339-
expect((displayData.traceSpans as any[])[0]).toMatchObject({
345+
expect(firstSpan(displayData)).toMatchObject({
340346
input: { code: 'const activeEmails = rows.length' },
341347
output: { error: 'nested large values' },
342348
})
@@ -351,7 +357,7 @@ describe('projectExecutionDataForDisplay provenance handling', () => {
351357
])('fails closed when %s', async (_case, overrides) => {
352358
const displayData = await projectExecutionDataForDisplay(truncatedRow(overrides), CONTEXT)
353359

354-
const [span] = displayData.traceSpans as Record<string, unknown>[]
360+
const span = firstSpan(displayData)
355361
expect(span).not.toHaveProperty('input')
356362
expect(span).not.toHaveProperty('output')
357363
})

0 commit comments

Comments
 (0)