@stratix/testing 0.1.0 → 0.1.3

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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @stratix/testing
2
2
 
3
- Test utilities for Stratix applications.
3
+ Comprehensive testing utilities for Stratix applications, with specialized support for AI agents.
4
4
 
5
5
  ## Installation
6
6
 
@@ -10,27 +10,356 @@ pnpm add -D @stratix/testing
10
10
 
11
11
  ## Features
12
12
 
13
- - **MockLLMProvider** - Deterministic LLM responses
14
- - **InMemoryEventBus** - Event bus for testing
15
- - **TestContainer** - DI container for tests
16
- - Helper functions for test entities
13
+ ### AI Agent Testing
17
14
 
18
- ## Quick Example
15
+ - **MockLLMProvider** - Mock LLM provider for deterministic agent testing
16
+ - **AgentTester** - High-level testing utility with timeout support
17
+ - **Agent Assertions** - Specialized assertions for agent results
18
+ - **Test Helpers** - Utilities for creating test contexts and IDs
19
+
20
+ ### General Testing
21
+
22
+ - **TestApplication** - Simplified test application builder
23
+ - **Result Assertions** - Assertions for Result pattern
24
+ - **EntityBuilder** - Fluent API for building test entities
25
+ - **DataFactory** - Generate test data (emails, IDs, dates, etc.)
26
+
27
+ ## Quick Examples
28
+
29
+ ### Testing AI Agents
30
+
31
+ ```typescript
32
+ import { AgentTester, expectSuccess } from '@stratix/testing';
33
+
34
+ describe('CustomerSupportAgent', () => {
35
+ let tester: AgentTester;
36
+
37
+ beforeEach(() => {
38
+ tester = new AgentTester();
39
+ });
40
+
41
+ it('should respond to greetings', async () => {
42
+ const agent = new CustomerSupportAgent(...);
43
+
44
+ // Set deterministic mock response
45
+ tester.setMockResponse({
46
+ content: 'Hello! How can I help you today?',
47
+ usage: { promptTokens: 10, completionTokens: 20, totalTokens: 30 }
48
+ });
49
+
50
+ const result = await tester.test(agent, { message: 'Hi' });
51
+
52
+ expect(result.passed).toBe(true);
53
+ expectSuccess(result.result);
54
+ expect(result.duration).toBeLessThan(1000);
55
+ });
56
+ });
57
+ ```
58
+
59
+ ### Using MockLLMProvider Directly
19
60
 
20
61
  ```typescript
21
62
  import { MockLLMProvider } from '@stratix/testing';
22
63
 
23
- const mockProvider = new MockLLMProvider({
24
- responses: ['Mocked response'],
25
- cost: 0.001
64
+ const mockProvider = new MockLLMProvider();
65
+ mockProvider.setResponse({
66
+ content: '{"result": "success"}',
67
+ usage: { promptTokens: 10, completionTokens: 20, totalTokens: 30 }
26
68
  });
27
69
 
28
- const agent = new MyAgent(mockProvider);
70
+ const agent = new MyAgent({ provider: mockProvider });
29
71
  const result = await agent.execute(input);
30
72
 
31
- // No API calls, deterministic results, zero cost
73
+ // Verify calls
74
+ expect(mockProvider.getCallCount()).toBe(1);
75
+ expect(mockProvider.getLastCall()).toBeDefined();
76
+ ```
77
+
78
+ ### Testing with TestApplication
79
+
80
+ ```typescript
81
+ import { TestApplication } from '@stratix/testing';
82
+
83
+ describe('Integration Tests', () => {
84
+ let app: Application;
85
+
86
+ beforeEach(async () => {
87
+ app = await TestApplication.create()
88
+ .useInMemoryDefaults()
89
+ .usePlugin(myPlugin)
90
+ .build();
91
+
92
+ await app.start();
93
+ });
94
+
95
+ afterEach(async () => {
96
+ await app.stop();
97
+ });
98
+
99
+ it('should process commands', async () => {
100
+ // Test with fully configured app
101
+ });
102
+ });
103
+ ```
104
+
105
+ ### Using Result Assertions
106
+
107
+ ```typescript
108
+ import { assertSuccess, unwrapSuccess } from '@stratix/testing';
109
+
110
+ const result = await commandHandler.execute(command);
111
+
112
+ // Assert success and throw if failed
113
+ assertSuccess(result);
114
+
115
+ // Or unwrap value directly
116
+ const value = unwrapSuccess(result);
117
+ expect(value.id).toBeDefined();
32
118
  ```
33
119
 
120
+ ### Building Test Entities
121
+
122
+ ```typescript
123
+ import { EntityBuilder } from '@stratix/testing';
124
+
125
+ const user = new EntityBuilder(User)
126
+ .withProps({ email: 'test@example.com', name: 'Test User' })
127
+ .withId(testUserId)
128
+ .build();
129
+
130
+ // Build multiple
131
+ const users = new EntityBuilder(User)
132
+ .withProps({ role: 'admin' })
133
+ .buildMany(5);
134
+ ```
135
+
136
+ ### Generating Test Data
137
+
138
+ ```typescript
139
+ import { DataFactory } from '@stratix/testing';
140
+
141
+ const email = DataFactory.email('user'); // user1@example.com
142
+ const id = DataFactory.entityId<'User'>();
143
+ const date = DataFactory.date(7); // 7 days ago
144
+ const status = DataFactory.pick(['active', 'inactive']);
145
+ ```
146
+
147
+ ## API Reference
148
+
149
+ ### AgentTester
150
+
151
+ High-level testing utility for AI agents.
152
+
153
+ ```typescript
154
+ class AgentTester {
155
+ constructor(options?: TestOptions)
156
+
157
+ // Mock configuration
158
+ setMockResponse(response: MockResponse): void
159
+ setMockResponses(responses: MockResponse[]): void
160
+ getMockProvider(): MockLLMProvider
161
+
162
+ // Testing
163
+ test<TInput, TOutput>(
164
+ agent: AIAgent<TInput, TOutput>,
165
+ input: TInput,
166
+ context?: AgentContext
167
+ ): Promise<TestResult<TOutput>>
168
+
169
+ // Assertions
170
+ assertSuccess<TOutput>(result: TestResult<TOutput>): void
171
+ assertFailure<TOutput>(result: TestResult<TOutput>): void
172
+ assertDuration<TOutput>(result: TestResult<TOutput>, maxDuration: number): void
173
+ assertCallCount(expectedCount: number): void
174
+
175
+ // Utilities
176
+ reset(): void
177
+ }
178
+ ```
179
+
180
+ ### MockLLMProvider
181
+
182
+ Mock LLM provider implementing the `LLMProvider` interface.
183
+
184
+ ```typescript
185
+ class MockLLMProvider implements LLMProvider {
186
+ // Configuration
187
+ setResponse(response: MockResponse): void
188
+ setResponses(responses: MockResponse[]): void
189
+ addResponse(response: MockResponse): void
190
+
191
+ // Inspection
192
+ getCallHistory(): ReadonlyArray<ChatParams>
193
+ getLastCall(): ChatParams | undefined
194
+ getCallCount(): number
195
+
196
+ // Utilities
197
+ reset(): void
198
+
199
+ // LLMProvider implementation
200
+ chat(params: ChatParams): Promise<ChatResponse>
201
+ streamChat(params: ChatParams): AsyncIterable<ChatChunk>
202
+ embeddings(params: EmbeddingParams): Promise<EmbeddingResponse>
203
+ }
204
+ ```
205
+
206
+ ### Agent Assertions
207
+
208
+ Specialized assertions for agent results.
209
+
210
+ ```typescript
211
+ // Success/Failure
212
+ expectSuccess<T>(result: AgentResult<T>): void
213
+ expectFailure<T>(result: AgentResult<T>): void
214
+
215
+ // Data validation
216
+ expectData<T>(result: AgentResult<T>, expected: T): void
217
+ expectDataContains<T>(result: AgentResult<T>, expected: Partial<T>): void
218
+
219
+ // Performance
220
+ expectCostWithinBudget<T>(result: AgentResult<T>, budget: number): void
221
+ expectDurationWithinLimit<T>(result: AgentResult<T>, maxDuration: number): void
222
+
223
+ // Error validation
224
+ expectErrorContains<T>(result: AgentResult<T>, expectedText: string): void
225
+
226
+ // Model validation
227
+ expectModel<T>(result: AgentResult<T>, expectedModel: string): void
228
+ ```
229
+
230
+ ### Test Helpers
231
+
232
+ Utilities for creating test data and running tests.
233
+
234
+ ```typescript
235
+ // Context creation
236
+ createTestContext(overrides?: Partial<{
237
+ userId: string;
238
+ sessionId: string;
239
+ environment: 'development' | 'staging' | 'production';
240
+ metadata: Record<string, unknown>;
241
+ budget: number;
242
+ }>): AgentContext
243
+
244
+ // ID creation
245
+ createTestAgentId(): AgentId
246
+ createDeterministicAgentId(seed: string): AgentId
247
+
248
+ // Timing utilities
249
+ wait(ms: number): Promise<void>
250
+ createTimeout(ms: number, message?: string): Promise<never>
251
+ measureTime<T>(fn: () => Promise<T>): Promise<{ result: T; duration: number }>
252
+
253
+ // Test execution
254
+ repeatTest<T>(times: number, testFn: (iteration: number) => Promise<T>): Promise<T[]>
255
+ runInParallel<T>(testFns: Array<() => Promise<T>>): Promise<T[]>
256
+
257
+ // Assertions
258
+ expectToReject(promise: Promise<unknown>, expectedError?: string | RegExp): Promise<void>
259
+ ```
260
+
261
+ ### Result Assertions
262
+
263
+ Assertions for the Result pattern.
264
+
265
+ ```typescript
266
+ // Assertions
267
+ assertSuccess<T>(result: Result<T>): void
268
+ assertFailure<T>(result: Result<T>): void
269
+
270
+ // Unwrapping
271
+ unwrapSuccess<T>(result: Result<T>): T
272
+ unwrapFailure<T>(result: Result<T>): Error
273
+ ```
274
+
275
+ ### TestApplication
276
+
277
+ Simplified application builder for integration tests.
278
+
279
+ ```typescript
280
+ class TestApplication {
281
+ static create(): TestApplication
282
+
283
+ useInMemoryDefaults(): this
284
+ useContainer(container: Container): this
285
+ useLogger(logger: Logger): this
286
+ usePlugin(plugin: Plugin, config?: unknown): this
287
+
288
+ build(): Promise<Application>
289
+ }
290
+
291
+ // Helper function
292
+ createTestApp(): Promise<Application>
293
+ ```
294
+
295
+ ### EntityBuilder
296
+
297
+ Fluent API for building test entities.
298
+
299
+ ```typescript
300
+ class EntityBuilder<E extends Entity<any>> {
301
+ constructor(EntityClass: new (props: any, id: any) => E)
302
+
303
+ withProps(props: Partial<any>): this
304
+ withId(id: any): this
305
+ build(): E
306
+ buildMany(count: number): E[]
307
+ }
308
+
309
+ // Helper function
310
+ entityBuilder<E extends Entity<any>>(
311
+ EntityClass: new (props: any, id: any) => E
312
+ ): EntityBuilder<E>
313
+ ```
314
+
315
+ ### DataFactory
316
+
317
+ Factory for generating test data.
318
+
319
+ ```typescript
320
+ class DataFactory {
321
+ static email(prefix?: string): Email
322
+ static string(prefix?: string): string
323
+ static number(min?: number, max?: number): number
324
+ static entityId<T extends string>(): EntityId<T>
325
+ static boolean(): boolean
326
+ static date(daysAgo?: number): Date
327
+ static pick<T>(array: T[]): T
328
+ static reset(): void
329
+ }
330
+ ```
331
+
332
+ ## Best Practices
333
+
334
+ ### AI Agent Testing
335
+
336
+ 1. **Use MockLLMProvider for unit tests** - Avoid real API calls, keep tests fast and deterministic
337
+ 2. **Test multiple conversation turns** - Use `setResponses()` to test multi-turn interactions
338
+ 3. **Verify token usage** - Ensure cost tracking works correctly
339
+ 4. **Test error scenarios** - Use mock responses with errors to test error handling
340
+ 5. **Check call history** - Verify the agent calls the LLM with correct parameters
341
+
342
+ ### Result Pattern Testing
343
+
344
+ 1. **Always assert before accessing values** - Use `assertSuccess()` or `unwrapSuccess()`
345
+ 2. **Test both success and failure paths** - Ensure error handling works
346
+ 3. **Use type-safe assertions** - TypeScript narrows types after assertions
347
+
348
+ ### Integration Testing
349
+
350
+ 1. **Use TestApplication for full stack tests** - Test with real implementations
351
+ 2. **Clean up after tests** - Always call `app.stop()` in afterEach
352
+ 3. **Use in-memory defaults** - Faster tests without external dependencies
353
+ 4. **Test plugin integration** - Verify plugins work together correctly
354
+
355
+ ## Examples
356
+
357
+ See the `examples/` directory in the repository for complete examples:
358
+
359
+ - `examples/ai-agents/echo-agent/` - Simple agent testing
360
+ - `examples/ai-agents/customer-support/` - Production agent with comprehensive tests
361
+ - `examples/rest-api/` - Integration testing with TestApplication
362
+
34
363
  ## License
35
364
 
36
365
  MIT
@@ -101,7 +101,7 @@ export class AgentTester {
101
101
  async executeWithTimeout(agent, input, _context) {
102
102
  const timeout = this.options.timeout;
103
103
  return Promise.race([
104
- agent.execute(input),
104
+ agent.executeWithEvents(input),
105
105
  new Promise((_, reject) => {
106
106
  setTimeout(() => {
107
107
  reject(new Error(`Test timeout after ${timeout}ms`));
@@ -1 +1 @@
1
- {"version":3,"file":"AgentTester.js","sourceRoot":"","sources":["../src/AgentTester.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentTester.js","sourceRoot":"","sources":["../src/AgentTester.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stratix/testing",
3
- "version": "0.1.0",
3
+ "version": "0.1.3",
4
4
  "description": "Testing utilities for Stratix AI agents",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -19,11 +19,11 @@
19
19
  "mock"
20
20
  ],
21
21
  "dependencies": {
22
- "@stratix/primitives": "0.1.0",
23
- "@stratix/abstractions": "0.1.0",
24
- "@stratix/impl-di-awilix": "0.1.0",
25
- "@stratix/impl-logger-console": "0.1.0",
26
- "@stratix/runtime": "0.1.0"
22
+ "@stratix/primitives": "0.1.3",
23
+ "@stratix/runtime": "0.1.3",
24
+ "@stratix/abstractions": "0.1.3",
25
+ "@stratix/impl-logger-console": "0.1.3",
26
+ "@stratix/impl-di-awilix": "0.1.3"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/node": "^20.10.0",