@polka-codes/cli 0.10.22 → 0.10.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +3990 -353
- package/package.json +4 -4
- package/dist/ApiProviderConfig.js +0 -57
- package/dist/ApiProviderConfig.js.map +0 -1
- package/dist/ApiProviderConfig.test.js +0 -278
- package/dist/ApiProviderConfig.test.js.map +0 -1
- package/dist/agent/advanced-discovery.js +0 -604
- package/dist/agent/advanced-discovery.js.map +0 -1
- package/dist/agent/config.js +0 -139
- package/dist/agent/config.js.map +0 -1
- package/dist/agent/config.test.js +0 -140
- package/dist/agent/config.test.js.map +0 -1
- package/dist/agent/constants.js +0 -172
- package/dist/agent/constants.js.map +0 -1
- package/dist/agent/constants.test.js +0 -132
- package/dist/agent/constants.test.js.map +0 -1
- package/dist/agent/debug-logger.js +0 -281
- package/dist/agent/debug-logger.js.map +0 -1
- package/dist/agent/debug-logger.test.js +0 -294
- package/dist/agent/debug-logger.test.js.map +0 -1
- package/dist/agent/error-handling.js +0 -114
- package/dist/agent/error-handling.js.map +0 -1
- package/dist/agent/error-handling.test.js +0 -191
- package/dist/agent/error-handling.test.js.map +0 -1
- package/dist/agent/errors.js +0 -301
- package/dist/agent/errors.js.map +0 -1
- package/dist/agent/executor.js +0 -206
- package/dist/agent/executor.js.map +0 -1
- package/dist/agent/executor.test.js +0 -228
- package/dist/agent/executor.test.js.map +0 -1
- package/dist/agent/goal-decomposer.js +0 -281
- package/dist/agent/goal-decomposer.js.map +0 -1
- package/dist/agent/goal-decomposer.test.js +0 -225
- package/dist/agent/goal-decomposer.test.js.map +0 -1
- package/dist/agent/health-monitor.js +0 -89
- package/dist/agent/health-monitor.js.map +0 -1
- package/dist/agent/improvement-loop.js +0 -177
- package/dist/agent/improvement-loop.js.map +0 -1
- package/dist/agent/index.js +0 -38
- package/dist/agent/index.js.map +0 -1
- package/dist/agent/metrics.js +0 -158
- package/dist/agent/metrics.js.map +0 -1
- package/dist/agent/metrics.test.js +0 -311
- package/dist/agent/metrics.test.js.map +0 -1
- package/dist/agent/orchestrator.js +0 -438
- package/dist/agent/orchestrator.js.map +0 -1
- package/dist/agent/planner.js +0 -199
- package/dist/agent/planner.js.map +0 -1
- package/dist/agent/planner.test.js +0 -135
- package/dist/agent/planner.test.js.map +0 -1
- package/dist/agent/progress.js +0 -298
- package/dist/agent/progress.js.map +0 -1
- package/dist/agent/progress.test.js +0 -255
- package/dist/agent/progress.test.js.map +0 -1
- package/dist/agent/resource-monitor.js +0 -114
- package/dist/agent/resource-monitor.js.map +0 -1
- package/dist/agent/safety/approval.js +0 -178
- package/dist/agent/safety/approval.js.map +0 -1
- package/dist/agent/safety/approval.test.js +0 -142
- package/dist/agent/safety/approval.test.js.map +0 -1
- package/dist/agent/safety/checks.js +0 -152
- package/dist/agent/safety/checks.js.map +0 -1
- package/dist/agent/safety/checks.test.js +0 -89
- package/dist/agent/safety/checks.test.js.map +0 -1
- package/dist/agent/safety/interrupt.js +0 -92
- package/dist/agent/safety/interrupt.js.map +0 -1
- package/dist/agent/safety/interrupt.test.js +0 -53
- package/dist/agent/safety/interrupt.test.js.map +0 -1
- package/dist/agent/session.js +0 -117
- package/dist/agent/session.js.map +0 -1
- package/dist/agent/session.test.js +0 -213
- package/dist/agent/session.test.js.map +0 -1
- package/dist/agent/state-manager.js +0 -287
- package/dist/agent/state-manager.js.map +0 -1
- package/dist/agent/task-discovery.js +0 -433
- package/dist/agent/task-discovery.js.map +0 -1
- package/dist/agent/task-discovery.test.js +0 -40
- package/dist/agent/task-discovery.test.js.map +0 -1
- package/dist/agent/task-history.js +0 -128
- package/dist/agent/task-history.js.map +0 -1
- package/dist/agent/task-prioritizer.js +0 -286
- package/dist/agent/task-prioritizer.js.map +0 -1
- package/dist/agent/test-fixtures.js +0 -112
- package/dist/agent/test-fixtures.js.map +0 -1
- package/dist/agent/types.js +0 -15
- package/dist/agent/types.js.map +0 -1
- package/dist/agent/workflow-adapter.js +0 -219
- package/dist/agent/workflow-adapter.js.map +0 -1
- package/dist/agent/workflow-adapter.test.js +0 -11
- package/dist/agent/workflow-adapter.test.js.map +0 -1
- package/dist/agent/working-dir-discovery.js +0 -54
- package/dist/agent/working-dir-discovery.js.map +0 -1
- package/dist/agent/working-space.js +0 -484
- package/dist/agent/working-space.js.map +0 -1
- package/dist/agent/working-space.test.js +0 -436
- package/dist/agent/working-space.test.js.map +0 -1
- package/dist/api.js +0 -279
- package/dist/api.js.map +0 -1
- package/dist/builtin-commands.js +0 -20
- package/dist/builtin-commands.js.map +0 -1
- package/dist/chunk-2LRQ2QH6.js +0 -1353
- package/dist/chunk-FSNPWI3C.js +0 -128
- package/dist/chunk-HB7PTE3H.js +0 -176
- package/dist/chunk-LLMPMGV3.js +0 -140
- package/dist/chunk-NRDSZGMF.js +0 -675
- package/dist/chunk-UEEU3SCC.js +0 -390
- package/dist/chunk-YPUL66UK.js +0 -277
- package/dist/chunk-ZS4K5RFU.js +0 -176
- package/dist/chunk-ZU4UU65A.js +0 -40
- package/dist/code.workflow-5TAWK2DE.js +0 -10
- package/dist/commandSummarizer.js +0 -96
- package/dist/commandSummarizer.js.map +0 -1
- package/dist/commands/__tests__/command-detection.integration.test.js +0 -238
- package/dist/commands/__tests__/command-detection.integration.test.js.map +0 -1
- package/dist/commands/__tests__/script-generator.integration.test.js +0 -271
- package/dist/commands/__tests__/script-generator.integration.test.js.map +0 -1
- package/dist/commands/agent.js +0 -218
- package/dist/commands/agent.js.map +0 -1
- package/dist/commands/code.js +0 -102
- package/dist/commands/code.js.map +0 -1
- package/dist/commands/command.constants.js +0 -13
- package/dist/commands/command.constants.js.map +0 -1
- package/dist/commands/commit.js +0 -17
- package/dist/commands/commit.js.map +0 -1
- package/dist/commands/fix.js +0 -17
- package/dist/commands/fix.js.map +0 -1
- package/dist/commands/init.js +0 -501
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/mcp-server.js +0 -122
- package/dist/commands/mcp-server.js.map +0 -1
- package/dist/commands/memory.js +0 -410
- package/dist/commands/memory.js.map +0 -1
- package/dist/commands/memory.test.js +0 -453
- package/dist/commands/memory.test.js.map +0 -1
- package/dist/commands/meta.js +0 -142
- package/dist/commands/meta.js.map +0 -1
- package/dist/commands/plan.js +0 -39
- package/dist/commands/plan.js.map +0 -1
- package/dist/commands/pr.js +0 -14
- package/dist/commands/pr.js.map +0 -1
- package/dist/commands/review-json.test.js +0 -33
- package/dist/commands/review-json.test.js.map +0 -1
- package/dist/commands/review.js +0 -137
- package/dist/commands/review.js.map +0 -1
- package/dist/commands/review.usage.test.js +0 -41
- package/dist/commands/review.usage.test.js.map +0 -1
- package/dist/commands/run.js +0 -107
- package/dist/commands/run.js.map +0 -1
- package/dist/commands/skills.js +0 -175
- package/dist/commands/skills.js.map +0 -1
- package/dist/commands/task.js +0 -34
- package/dist/commands/task.js.map +0 -1
- package/dist/commands/workflow.js +0 -117
- package/dist/commands/workflow.js.map +0 -1
- package/dist/commit.workflow-Z64PNSTS.js +0 -9
- package/dist/configPrompt.js +0 -39
- package/dist/configPrompt.js.map +0 -1
- package/dist/env.js +0 -22
- package/dist/env.js.map +0 -1
- package/dist/errors.js +0 -132
- package/dist/errors.js.map +0 -1
- package/dist/errors.test.js +0 -21
- package/dist/errors.test.js.map +0 -1
- package/dist/file-attachments.js +0 -77
- package/dist/file-attachments.js.map +0 -1
- package/dist/file-attachments.test.js +0 -214
- package/dist/file-attachments.test.js.map +0 -1
- package/dist/fix.workflow-KLHJU5Z6.js +0 -7
- package/dist/getModel.js +0 -229
- package/dist/getModel.js.map +0 -1
- package/dist/getModel.test.js +0 -67
- package/dist/getModel.test.js.map +0 -1
- package/dist/getProviderOptions.js +0 -58
- package/dist/getProviderOptions.js.map +0 -1
- package/dist/git-operations.js +0 -363
- package/dist/git-operations.js.map +0 -1
- package/dist/git-operations.test.js +0 -81
- package/dist/git-operations.test.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/logger.js +0 -41
- package/dist/logger.js.map +0 -1
- package/dist/mcp/client.js +0 -11
- package/dist/mcp/client.js.map +0 -1
- package/dist/mcp/error-scenarios.test.js +0 -206
- package/dist/mcp/error-scenarios.test.js.map +0 -1
- package/dist/mcp/errors.js +0 -63
- package/dist/mcp/errors.js.map +0 -1
- package/dist/mcp/index.js +0 -9
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp/manager.js +0 -231
- package/dist/mcp/manager.js.map +0 -1
- package/dist/mcp/manager.test.js +0 -40
- package/dist/mcp/manager.test.js.map +0 -1
- package/dist/mcp/sdk-client.js +0 -166
- package/dist/mcp/sdk-client.js.map +0 -1
- package/dist/mcp/shared-types.js +0 -3
- package/dist/mcp/shared-types.js.map +0 -1
- package/dist/mcp/tools-integration.test.js +0 -198
- package/dist/mcp/tools-integration.test.js.map +0 -1
- package/dist/mcp/tools.js +0 -60
- package/dist/mcp/tools.js.map +0 -1
- package/dist/mcp/transport.js +0 -257
- package/dist/mcp/transport.js.map +0 -1
- package/dist/mcp/types.js +0 -3
- package/dist/mcp/types.js.map +0 -1
- package/dist/mcp-server/index.js +0 -5
- package/dist/mcp-server/index.js.map +0 -1
- package/dist/mcp-server/plan-formatting.test.js +0 -74
- package/dist/mcp-server/plan-formatting.test.js.map +0 -1
- package/dist/mcp-server/sdk-server.js +0 -102
- package/dist/mcp-server/sdk-server.js.map +0 -1
- package/dist/mcp-server/sdk-server.test.js +0 -363
- package/dist/mcp-server/sdk-server.test.js.map +0 -1
- package/dist/mcp-server/tools.js +0 -785
- package/dist/mcp-server/tools.js.map +0 -1
- package/dist/mcp-server/types.js +0 -3
- package/dist/mcp-server/types.js.map +0 -1
- package/dist/options.js +0 -85
- package/dist/options.js.map +0 -1
- package/dist/options.test.js +0 -177
- package/dist/options.test.js.map +0 -1
- package/dist/plan.workflow-P2Y6W4FA.js +0 -8
- package/dist/prices.js +0 -61
- package/dist/prices.js.map +0 -1
- package/dist/prices.test.js +0 -148
- package/dist/prices.test.js.map +0 -1
- package/dist/review.workflow-I7RHWKU7.js +0 -8
- package/dist/runWorkflow.js +0 -313
- package/dist/runWorkflow.js.map +0 -1
- package/dist/script/__tests__/execution.integration.test.js +0 -274
- package/dist/script/__tests__/execution.integration.test.js.map +0 -1
- package/dist/script/__tests__/runner.test.js +0 -176
- package/dist/script/__tests__/runner.test.js.map +0 -1
- package/dist/script/__tests__/validator.test.js +0 -180
- package/dist/script/__tests__/validator.test.js.map +0 -1
- package/dist/script/executor.js +0 -127
- package/dist/script/executor.js.map +0 -1
- package/dist/script/index.js +0 -4
- package/dist/script/index.js.map +0 -1
- package/dist/script/runner.js +0 -258
- package/dist/script/runner.js.map +0 -1
- package/dist/sdk-client-KBYJRPEG.js +0 -155
- package/dist/skillIntegration.js +0 -46
- package/dist/skillIntegration.js.map +0 -1
- package/dist/skillIntegration.test.js +0 -128
- package/dist/skillIntegration.test.js.map +0 -1
- package/dist/test/utils.js +0 -200
- package/dist/test/utils.js.map +0 -1
- package/dist/test/workflow-fixtures.js +0 -120
- package/dist/test/workflow-fixtures.js.map +0 -1
- package/dist/tool-implementations.js +0 -521
- package/dist/tool-implementations.js.map +0 -1
- package/dist/tool-implementations.skill-tools.test.js +0 -106
- package/dist/tool-implementations.skill-tools.test.js.map +0 -1
- package/dist/tools/getTodoItem.js +0 -33
- package/dist/tools/getTodoItem.js.map +0 -1
- package/dist/tools/gitDiff.js +0 -108
- package/dist/tools/gitDiff.js.map +0 -1
- package/dist/tools/index.js +0 -8
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/listMemoryTopics.js +0 -24
- package/dist/tools/listMemoryTopics.js.map +0 -1
- package/dist/tools/listTodoItems.js +0 -35
- package/dist/tools/listTodoItems.js.map +0 -1
- package/dist/tools/listTodoItems.test.js +0 -89
- package/dist/tools/listTodoItems.test.js.map +0 -1
- package/dist/tools/readMemory.js +0 -33
- package/dist/tools/readMemory.js.map +0 -1
- package/dist/tools/updateMemory.js +0 -62
- package/dist/tools/updateMemory.js.map +0 -1
- package/dist/tools/updateMemory.test.js +0 -109
- package/dist/tools/updateMemory.test.js.map +0 -1
- package/dist/tools/updateTodoItem.js +0 -31
- package/dist/tools/updateTodoItem.js.map +0 -1
- package/dist/tools/utils/diffLineNumbers.js +0 -178
- package/dist/tools/utils/diffLineNumbers.js.map +0 -1
- package/dist/utils/cacheControl.js +0 -59
- package/dist/utils/cacheControl.js.map +0 -1
- package/dist/utils/cacheControl.test.js +0 -128
- package/dist/utils/cacheControl.test.js.map +0 -1
- package/dist/utils/command.js +0 -50
- package/dist/utils/command.js.map +0 -1
- package/dist/utils/shell.js +0 -56
- package/dist/utils/shell.js.map +0 -1
- package/dist/utils/userInput.js +0 -47
- package/dist/utils/userInput.js.map +0 -1
- package/dist/workflow-tools.js +0 -21
- package/dist/workflow-tools.js.map +0 -1
- package/dist/workflows/agent-builder.js +0 -90
- package/dist/workflows/agent-builder.js.map +0 -1
- package/dist/workflows/agent-builder.test.js +0 -115
- package/dist/workflows/agent-builder.test.js.map +0 -1
- package/dist/workflows/code.workflow.js +0 -145
- package/dist/workflows/code.workflow.js.map +0 -1
- package/dist/workflows/commit.workflow.js +0 -111
- package/dist/workflows/commit.workflow.js.map +0 -1
- package/dist/workflows/commit.workflow.test.js +0 -141
- package/dist/workflows/commit.workflow.test.js.map +0 -1
- package/dist/workflows/fix.workflow.js +0 -172
- package/dist/workflows/fix.workflow.js.map +0 -1
- package/dist/workflows/fix.workflow.test.js +0 -137
- package/dist/workflows/fix.workflow.test.js.map +0 -1
- package/dist/workflows/git-file-tools.js +0 -408
- package/dist/workflows/git-file-tools.js.map +0 -1
- package/dist/workflows/index.js +0 -12
- package/dist/workflows/index.js.map +0 -1
- package/dist/workflows/init-interactive.workflow.js +0 -198
- package/dist/workflows/init-interactive.workflow.js.map +0 -1
- package/dist/workflows/init.workflow.js +0 -41
- package/dist/workflows/init.workflow.js.map +0 -1
- package/dist/workflows/meta.workflow.js +0 -107
- package/dist/workflows/meta.workflow.js.map +0 -1
- package/dist/workflows/plan.workflow.js +0 -275
- package/dist/workflows/plan.workflow.js.map +0 -1
- package/dist/workflows/plan.workflow.test.js +0 -419
- package/dist/workflows/plan.workflow.test.js.map +0 -1
- package/dist/workflows/pr.workflow.js +0 -54
- package/dist/workflows/pr.workflow.js.map +0 -1
- package/dist/workflows/pr.workflow.test.js +0 -98
- package/dist/workflows/pr.workflow.test.js.map +0 -1
- package/dist/workflows/prompts/coder.js +0 -85
- package/dist/workflows/prompts/coder.js.map +0 -1
- package/dist/workflows/prompts/commit.js +0 -16
- package/dist/workflows/prompts/commit.js.map +0 -1
- package/dist/workflows/prompts/fix.js +0 -44
- package/dist/workflows/prompts/fix.js.map +0 -1
- package/dist/workflows/prompts/index.js +0 -10
- package/dist/workflows/prompts/index.js.map +0 -1
- package/dist/workflows/prompts/init.js +0 -48
- package/dist/workflows/prompts/init.js.map +0 -1
- package/dist/workflows/prompts/meta.js +0 -17
- package/dist/workflows/prompts/meta.js.map +0 -1
- package/dist/workflows/prompts/plan.js +0 -212
- package/dist/workflows/prompts/plan.js.map +0 -1
- package/dist/workflows/prompts/pr.js +0 -15
- package/dist/workflows/prompts/pr.js.map +0 -1
- package/dist/workflows/prompts/review.js +0 -145
- package/dist/workflows/prompts/review.js.map +0 -1
- package/dist/workflows/prompts/shared.js +0 -93
- package/dist/workflows/prompts/shared.js.map +0 -1
- package/dist/workflows/review.workflow.js +0 -357
- package/dist/workflows/review.workflow.js.map +0 -1
- package/dist/workflows/task.workflow.js +0 -47
- package/dist/workflows/task.workflow.js.map +0 -1
- package/dist/workflows/testing/helper.js +0 -41
- package/dist/workflows/testing/helper.js.map +0 -1
- package/dist/workflows/workflow.utils.js +0 -351
- package/dist/workflows/workflow.utils.js.map +0 -1
- package/dist/workflows/workflow.utils.test.js +0 -45
- package/dist/workflows/workflow.utils.test.js.map +0 -1
package/dist/test/utils.js
DELETED
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Testing Utilities and Fixtures
|
|
3
|
-
*
|
|
4
|
-
* Provides reusable test fixtures and utilities to reduce duplication
|
|
5
|
-
* and improve test maintainability across the codebase.
|
|
6
|
-
*/
|
|
7
|
-
import { mock } from 'bun:test';
|
|
8
|
-
import { randomUUID } from 'node:crypto';
|
|
9
|
-
import { mkdtempSync, rmSync } from 'node:fs';
|
|
10
|
-
import { tmpdir } from 'node:os';
|
|
11
|
-
import { join } from 'node:path';
|
|
12
|
-
/**
|
|
13
|
-
* Temporary directory fixture for isolated test environments
|
|
14
|
-
*
|
|
15
|
-
* Creates a unique temp directory for each test and ensures proper cleanup.
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```ts
|
|
19
|
-
* describe('MyTest', () => {
|
|
20
|
-
* let fixture: TempDirectoryFixture
|
|
21
|
-
*
|
|
22
|
-
* beforeEach(async () => {
|
|
23
|
-
* fixture = new TempDirectoryFixture()
|
|
24
|
-
* const dir = await fixture.setup()
|
|
25
|
-
* })
|
|
26
|
-
*
|
|
27
|
-
* afterEach(async () => {
|
|
28
|
-
* await fixture.teardown()
|
|
29
|
-
* })
|
|
30
|
-
* })
|
|
31
|
-
* ```
|
|
32
|
-
*/
|
|
33
|
-
export class TempDirectoryFixture {
|
|
34
|
-
dir = null;
|
|
35
|
-
/**
|
|
36
|
-
* Create a unique temporary directory
|
|
37
|
-
* @returns Path to the created directory
|
|
38
|
-
*/
|
|
39
|
-
async setup() {
|
|
40
|
-
this.dir = mkdtempSync(join(tmpdir(), 'test-'));
|
|
41
|
-
return this.dir;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Clean up the temporary directory
|
|
45
|
-
* Logs cleanup failures for debugging
|
|
46
|
-
*/
|
|
47
|
-
async teardown() {
|
|
48
|
-
if (this.dir) {
|
|
49
|
-
try {
|
|
50
|
-
rmSync(this.dir, { recursive: true, force: true });
|
|
51
|
-
}
|
|
52
|
-
catch (error) {
|
|
53
|
-
console.error(`[TempDirectoryFixture] Failed to cleanup: ${this.dir}`, error);
|
|
54
|
-
}
|
|
55
|
-
this.dir = null;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Get a path within the temp directory
|
|
60
|
-
* @param segments - Path segments to join
|
|
61
|
-
* @returns Full path to the file/directory
|
|
62
|
-
* @throws Error if setup() hasn't been called
|
|
63
|
-
*/
|
|
64
|
-
getPath(...segments) {
|
|
65
|
-
if (!this.dir) {
|
|
66
|
-
throw new Error('TempDirectoryFixture not initialized. Call setup() first.');
|
|
67
|
-
}
|
|
68
|
-
return join(this.dir, ...segments);
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Check if the fixture has been initialized
|
|
72
|
-
*/
|
|
73
|
-
isInitialized() {
|
|
74
|
-
return this.dir !== null;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Mock helpers for creating typed mocks
|
|
79
|
-
*
|
|
80
|
-
* These helpers reduce the need for 'any' type assertions in tests
|
|
81
|
-
*/
|
|
82
|
-
/**
|
|
83
|
-
* Create a mock function with proper type safety
|
|
84
|
-
* @returns A mock function that can be configured
|
|
85
|
-
*/
|
|
86
|
-
export function createMockFunction(implementation) {
|
|
87
|
-
const mockFn = mock(implementation);
|
|
88
|
-
return mockFn;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Helper to create a partial mock (only mock specific methods)
|
|
92
|
-
* @param obj - Object to create partial mock of
|
|
93
|
-
* @param mockedMethods - Methods to mock
|
|
94
|
-
* @returns Partial mock with specified methods mocked
|
|
95
|
-
*/
|
|
96
|
-
export function createPartialMock(obj, mockedMethods) {
|
|
97
|
-
const result = {};
|
|
98
|
-
for (const key in obj) {
|
|
99
|
-
if (mockedMethods.includes(key)) {
|
|
100
|
-
result[key] = mock();
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
result[key] = obj[key];
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
return result;
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Snapshot testing helpers
|
|
110
|
-
*/
|
|
111
|
-
/**
|
|
112
|
-
* Fields that should be redacted from snapshots
|
|
113
|
-
* These are typically unstable or environment-specific
|
|
114
|
-
*/
|
|
115
|
-
export const SNAPSHOT_REDACT_FIELDS = [
|
|
116
|
-
'id',
|
|
117
|
-
'timestamp',
|
|
118
|
-
'date',
|
|
119
|
-
'created_at',
|
|
120
|
-
'updated_at',
|
|
121
|
-
'last_accessed',
|
|
122
|
-
'filePath',
|
|
123
|
-
'absolutePath',
|
|
124
|
-
];
|
|
125
|
-
/**
|
|
126
|
-
* Redact unstable fields from an object for snapshot testing
|
|
127
|
-
* @param obj - Object to redact fields from
|
|
128
|
-
* @param fields - Fields to redact (defaults to SNAPSHOT_REDACT_FIELDS)
|
|
129
|
-
* @returns Object with unstable fields replaced with matchers
|
|
130
|
-
*/
|
|
131
|
-
export function redactUnstableFields(obj, fields = SNAPSHOT_REDACT_FIELDS) {
|
|
132
|
-
const result = { ...obj };
|
|
133
|
-
for (const field of fields) {
|
|
134
|
-
if (field in result) {
|
|
135
|
-
// Use a placeholder for unstable fields - actual replacement done in tests
|
|
136
|
-
result[field] = '[REDACTED]';
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
return result;
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Async test helpers
|
|
143
|
-
*/
|
|
144
|
-
/**
|
|
145
|
-
* Run an async test with timeout
|
|
146
|
-
* @param fn - Test function to run
|
|
147
|
-
* @param timeoutMs - Timeout in milliseconds (default: 5000)
|
|
148
|
-
* @returns Promise that rejects if timeout
|
|
149
|
-
*/
|
|
150
|
-
export function withTimeout(fn, timeoutMs = 5000) {
|
|
151
|
-
const timeoutPromise = new Promise((_, reject) => {
|
|
152
|
-
setTimeout(() => reject(new Error(`Test timed out after ${timeoutMs}ms`)), timeoutMs);
|
|
153
|
-
});
|
|
154
|
-
return Promise.race([fn(), timeoutPromise]);
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Database test helpers
|
|
158
|
-
*/
|
|
159
|
-
/**
|
|
160
|
-
* Generate a unique database name for testing
|
|
161
|
-
* @returns Unique database name
|
|
162
|
-
*/
|
|
163
|
-
export function generateTestDbName() {
|
|
164
|
-
return `test-${randomUUID().slice(0, 8)}.sqlite`;
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Memory test helpers
|
|
168
|
-
*/
|
|
169
|
-
/**
|
|
170
|
-
* Create a test memory entry with required fields
|
|
171
|
-
* @param overrides - Fields to override from defaults
|
|
172
|
-
* @returns Test memory entry
|
|
173
|
-
*/
|
|
174
|
-
export function createTestMemoryEntry(overrides = {}) {
|
|
175
|
-
const now = Date.now();
|
|
176
|
-
return {
|
|
177
|
-
name: `test-entry-${randomUUID().slice(0, 8)}`,
|
|
178
|
-
content: 'Test content',
|
|
179
|
-
entry_type: 'note',
|
|
180
|
-
status: 'active',
|
|
181
|
-
priority: 'medium',
|
|
182
|
-
tags: '',
|
|
183
|
-
created_at: now,
|
|
184
|
-
updated_at: now,
|
|
185
|
-
last_accessed: now,
|
|
186
|
-
...overrides,
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Assert helpers (deprecated - use expect() directly in tests)
|
|
191
|
-
*/
|
|
192
|
-
// Note: These helper functions are not used. Use expect() directly in tests.
|
|
193
|
-
// export function expectToRejectWithMessage(fn: () => Promise<any>, errorMessage: string): Promise<void> {
|
|
194
|
-
// return expect(fn()).rejects.toThrow(errorMessage)
|
|
195
|
-
// }
|
|
196
|
-
//
|
|
197
|
-
// export function expectToThrowWithType<T extends Error>(fn: () => any, errorType: new (...args: any[]) => T): Promise<void> {
|
|
198
|
-
// return expect(fn()).toThrow(errorType)
|
|
199
|
-
// }
|
|
200
|
-
//# sourceMappingURL=utils.js.map
|
package/dist/test/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/test/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Workflow Testing Fixtures
|
|
3
|
-
*
|
|
4
|
-
* Provides reusable fixtures for workflow testing with reduced mock usage
|
|
5
|
-
* and better type safety. Addresses P0 mock overuse issues from test review plan.
|
|
6
|
-
*/
|
|
7
|
-
import { mock } from 'bun:test';
|
|
8
|
-
/**
|
|
9
|
-
* Create a workflow test context with properly typed mocks
|
|
10
|
-
*
|
|
11
|
-
* This is a minimal fixture - only mocks what cannot be tested with real implementations.
|
|
12
|
-
* Following the test review plan's guidance:
|
|
13
|
-
* - Prefer real implementations over mocks
|
|
14
|
-
* - Use typed mocks, not 'any'
|
|
15
|
-
* - Maximum 3-5 mocks per test (enforced by this fixture's API)
|
|
16
|
-
*/
|
|
17
|
-
export function createWorkflowTestContext() {
|
|
18
|
-
// Only mock the tools that are actually needed for workflow testing
|
|
19
|
-
const tools = {
|
|
20
|
-
executeCommand: mock(),
|
|
21
|
-
input: mock(),
|
|
22
|
-
generateText: mock(),
|
|
23
|
-
taskEvent: mock(),
|
|
24
|
-
getMemoryContext: mock().mockResolvedValue(''),
|
|
25
|
-
updateMemory: mock(),
|
|
26
|
-
printChangeFile: mock(),
|
|
27
|
-
createCommit: mock(),
|
|
28
|
-
confirm: mock(),
|
|
29
|
-
select: mock(),
|
|
30
|
-
readFile: mock(),
|
|
31
|
-
writeToFile: mock(),
|
|
32
|
-
createPullRequest: mock(),
|
|
33
|
-
invokeTool: mock(),
|
|
34
|
-
};
|
|
35
|
-
const step = mock(async (_name, arg2, arg3) => {
|
|
36
|
-
const fn = typeof arg2 === 'function' ? arg2 : arg3;
|
|
37
|
-
if (typeof fn === 'function') {
|
|
38
|
-
return fn();
|
|
39
|
-
}
|
|
40
|
-
return undefined;
|
|
41
|
-
});
|
|
42
|
-
const logger = {
|
|
43
|
-
info: mock(() => { }),
|
|
44
|
-
error: mock(() => { }),
|
|
45
|
-
warn: mock(() => { }),
|
|
46
|
-
debug: mock(() => { }),
|
|
47
|
-
};
|
|
48
|
-
const context = {
|
|
49
|
-
tools,
|
|
50
|
-
step,
|
|
51
|
-
logger,
|
|
52
|
-
};
|
|
53
|
-
return { context, tools, step, logger };
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Helper to set up successful command execution
|
|
57
|
-
* @param tools - Tools object from createWorkflowTestContext
|
|
58
|
-
* @param stdout - Standard output to return
|
|
59
|
-
* @param stderr - Standard error to return (default: '')
|
|
60
|
-
* @param exitCode - Exit code to return (default: 0)
|
|
61
|
-
*/
|
|
62
|
-
export function mockSuccessfulCommand(tools, stdout, stderr = '', exitCode = 0) {
|
|
63
|
-
tools.executeCommand.mockResolvedValue({ exitCode, stdout, stderr });
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Helper to set up failed command execution
|
|
67
|
-
* @param tools - Tools object from createWorkflowTestContext
|
|
68
|
-
* @param stdout - Standard output to return (default: 'FAIL')
|
|
69
|
-
* @param stderr - Standard error to return (default: 'Error')
|
|
70
|
-
*/
|
|
71
|
-
export function mockFailedCommand(tools, stdout = 'FAIL', stderr = 'Error') {
|
|
72
|
-
tools.executeCommand.mockResolvedValue({ exitCode: 1, stdout, stderr });
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Helper to set up agent response
|
|
76
|
-
* @param tools - Tools object from createWorkflowTestContext
|
|
77
|
-
* @param summary - Summary text from agent
|
|
78
|
-
* @param bailReason - Optional bail reason
|
|
79
|
-
*/
|
|
80
|
-
export function mockAgentResponse(tools, summary, bailReason) {
|
|
81
|
-
const content = JSON.stringify({ summary, bailReason: bailReason ?? null });
|
|
82
|
-
tools.generateText.mockResolvedValue([
|
|
83
|
-
{
|
|
84
|
-
role: 'assistant',
|
|
85
|
-
content: `\`\`\`json\n${content}\n\`\`\``,
|
|
86
|
-
},
|
|
87
|
-
]);
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Helper to set up multiple command attempts (e.g., for retry logic)
|
|
91
|
-
* @param tools - Tools object from createWorkflowTestContext
|
|
92
|
-
* @param attempts - Array of exit codes for each attempt
|
|
93
|
-
*/
|
|
94
|
-
export function mockCommandAttempts(tools, attempts) {
|
|
95
|
-
for (const exitCode of attempts) {
|
|
96
|
-
tools.executeCommand.mockResolvedValueOnce({
|
|
97
|
-
exitCode,
|
|
98
|
-
stdout: exitCode === 0 ? 'PASS' : 'FAIL',
|
|
99
|
-
stderr: exitCode === 0 ? '' : 'Error',
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Helper to verify exact number of tool calls (deprecated - use expect() directly)
|
|
105
|
-
* @param tools - Tools object from createWorkflowTestContext
|
|
106
|
-
* @param expectations - Object mapping tool names to expected call counts
|
|
107
|
-
*/
|
|
108
|
-
// Note: Not used - use expect(tool).toHaveBeenCalledTimes(count) directly in tests
|
|
109
|
-
/*
|
|
110
|
-
export function expectToolCalls(
|
|
111
|
-
tools: WorkflowTestContext['tools'],
|
|
112
|
-
expectations: Partial<Record<keyof WorkflowTestContext['tools'], number>>,
|
|
113
|
-
): void {
|
|
114
|
-
for (const [toolName, expectedCount] of Object.entries(expectations)) {
|
|
115
|
-
const tool = tools[toolName as keyof typeof tools]
|
|
116
|
-
expect(tool).toHaveBeenCalledTimes(expectedCount)
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
*/
|
|
120
|
-
//# sourceMappingURL=workflow-fixtures.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-fixtures.js","sourceRoot":"","sources":["../../src/test/workflow-fixtures.ts"],"names":[],"mappings":"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"}
|