@tinycloudlabs/sdk-services-test 1.0.0

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.
@@ -0,0 +1,314 @@
1
+ /**
2
+ * Test Utilities for SDK Services
3
+ *
4
+ * Factory functions and helpers for creating test fixtures.
5
+ */
6
+ import { MockServiceContext, } from "./MockServiceContext";
7
+ import { MockKVService } from "./MockKVService";
8
+ /**
9
+ * Create a mock ServiceSession for testing.
10
+ *
11
+ * @param overrides - Optional overrides for session fields
12
+ * @returns A mock ServiceSession
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const session = createMockSession();
17
+ * const customSession = createMockSession({
18
+ * spaceId: 'space:custom-id',
19
+ * });
20
+ * ```
21
+ */
22
+ export function createMockSession(overrides) {
23
+ return {
24
+ delegationHeader: {
25
+ Authorization: "Bearer mock-delegation-token",
26
+ },
27
+ delegationCid: "bafy2bzaced5example",
28
+ spaceId: "space:mock-test-space-id",
29
+ verificationMethod: "did:key:z6MkexampleKey#z6MkexampleKey",
30
+ jwk: {
31
+ kty: "OKP",
32
+ crv: "Ed25519",
33
+ x: "mockPublicKeyX",
34
+ d: "mockPrivateKeyD",
35
+ },
36
+ ...overrides,
37
+ };
38
+ }
39
+ /**
40
+ * Create a MockServiceContext with sensible defaults for testing.
41
+ *
42
+ * @param options - Configuration options
43
+ * @returns A configured MockServiceContext
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * // Create an authenticated context
48
+ * const context = createTestContext({ authenticated: true });
49
+ *
50
+ * // Create with custom fetch responses
51
+ * const context = createTestContext({
52
+ * authenticated: true,
53
+ * fetchResponses: new Map([
54
+ * ['/invoke', { ok: true, status: 200, body: { data: 'test' } }],
55
+ * ]),
56
+ * });
57
+ * ```
58
+ */
59
+ export function createTestContext(options = {}) {
60
+ const { authenticated = false, sessionOverrides, ...config } = options;
61
+ let session = config.session ?? null;
62
+ if (authenticated && !session) {
63
+ session = createMockSession(sessionOverrides);
64
+ }
65
+ return new MockServiceContext({
66
+ ...config,
67
+ session,
68
+ hosts: config.hosts ?? ["https://mock.tinycloud.test"],
69
+ });
70
+ }
71
+ /**
72
+ * Create a MockKVService with initial data.
73
+ *
74
+ * @param initialData - Key-value pairs to seed the store
75
+ * @param config - Additional configuration
76
+ * @returns A configured MockKVService
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * const kv = createMockKV({
81
+ * 'user/settings': { theme: 'dark' },
82
+ * 'user/profile': { name: 'Alice' },
83
+ * });
84
+ *
85
+ * // With latency simulation
86
+ * const kv = createMockKV(
87
+ * { 'key': 'value' },
88
+ * { latencyMs: 50 }
89
+ * );
90
+ * ```
91
+ */
92
+ export function createMockKV(initialData, config) {
93
+ return new MockKVService({
94
+ ...config,
95
+ initialData,
96
+ });
97
+ }
98
+ /**
99
+ * Wait for a specific event to be emitted from a context.
100
+ *
101
+ * @param context - The MockServiceContext to listen on
102
+ * @param eventName - The event name to wait for
103
+ * @param timeoutMs - Timeout in milliseconds (default: 5000)
104
+ * @returns Promise that resolves with the event data
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * // Wait for session change event
109
+ * const eventPromise = waitForEvent(context, 'session.changed');
110
+ * context.setSession(createMockSession());
111
+ * const eventData = await eventPromise;
112
+ * expect(eventData.authenticated).toBe(true);
113
+ * ```
114
+ */
115
+ export function waitForEvent(context, eventName, timeoutMs = 5000) {
116
+ return new Promise((resolve, reject) => {
117
+ const timeout = setTimeout(() => {
118
+ unsubscribe();
119
+ reject(new Error(`Timeout waiting for event: ${eventName}`));
120
+ }, timeoutMs);
121
+ const unsubscribe = context.on(eventName, (data) => {
122
+ clearTimeout(timeout);
123
+ unsubscribe();
124
+ resolve(data);
125
+ });
126
+ });
127
+ }
128
+ /**
129
+ * Wait for multiple events to be emitted.
130
+ *
131
+ * @param context - The MockServiceContext to listen on
132
+ * @param eventName - The event name to wait for
133
+ * @param count - Number of events to wait for
134
+ * @param timeoutMs - Timeout in milliseconds (default: 5000)
135
+ * @returns Promise that resolves with array of event data
136
+ *
137
+ * @example
138
+ * ```typescript
139
+ * // Wait for 3 service requests
140
+ * const eventsPromise = waitForEvents(context, 'service.request', 3);
141
+ * await kv.get('key1');
142
+ * await kv.get('key2');
143
+ * await kv.get('key3');
144
+ * const events = await eventsPromise;
145
+ * expect(events).toHaveLength(3);
146
+ * ```
147
+ */
148
+ export function waitForEvents(context, eventName, count, timeoutMs = 5000) {
149
+ return new Promise((resolve, reject) => {
150
+ const events = [];
151
+ const timeout = setTimeout(() => {
152
+ unsubscribe();
153
+ reject(new Error(`Timeout waiting for ${count} events of type ${eventName}. Received ${events.length}.`));
154
+ }, timeoutMs);
155
+ const unsubscribe = context.on(eventName, (data) => {
156
+ events.push(data);
157
+ if (events.length >= count) {
158
+ clearTimeout(timeout);
159
+ unsubscribe();
160
+ resolve(events);
161
+ }
162
+ });
163
+ });
164
+ }
165
+ /**
166
+ * Create a mock fetch response for success scenarios.
167
+ *
168
+ * @param body - Response body
169
+ * @param headers - Optional response headers
170
+ * @returns MockFetchResponse
171
+ *
172
+ * @example
173
+ * ```typescript
174
+ * const response = mockOkResponse({ keys: ['a', 'b'] });
175
+ * context.addFetchResponse('/invoke', response);
176
+ * ```
177
+ */
178
+ export function mockOkResponse(body, headers) {
179
+ return {
180
+ ok: true,
181
+ status: 200,
182
+ statusText: "OK",
183
+ headers: {
184
+ "content-type": "application/json",
185
+ ...headers,
186
+ },
187
+ body,
188
+ };
189
+ }
190
+ /**
191
+ * Create a mock fetch response for error scenarios.
192
+ *
193
+ * @param status - HTTP status code
194
+ * @param body - Error body
195
+ * @param statusText - Optional status text
196
+ * @returns MockFetchResponse
197
+ *
198
+ * @example
199
+ * ```typescript
200
+ * const response = mockErrorResponse(404, { error: 'Not found' });
201
+ * context.addFetchResponse('/invoke', response);
202
+ * ```
203
+ */
204
+ export function mockErrorResponse(status, body, statusText) {
205
+ return {
206
+ ok: false,
207
+ status,
208
+ statusText: statusText ?? `Error ${status}`,
209
+ headers: {
210
+ "content-type": "application/json",
211
+ },
212
+ body: body ?? { error: statusText ?? `Error ${status}` },
213
+ };
214
+ }
215
+ /**
216
+ * Create a delayed mock fetch handler for testing latency.
217
+ *
218
+ * @param response - The response to return after delay
219
+ * @param delayMs - Delay in milliseconds
220
+ * @returns Mock fetch handler function
221
+ *
222
+ * @example
223
+ * ```typescript
224
+ * context.addFetchResponse(
225
+ * '/invoke',
226
+ * delayedResponse(mockOkResponse({ data: 'test' }), 100)
227
+ * );
228
+ * ```
229
+ */
230
+ export function delayedResponse(response, delayMs) {
231
+ return async () => {
232
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
233
+ return response;
234
+ };
235
+ }
236
+ /**
237
+ * Create a sequence of mock responses that cycle through.
238
+ *
239
+ * @param responses - Array of responses to cycle through
240
+ * @returns Mock fetch handler function
241
+ *
242
+ * @example
243
+ * ```typescript
244
+ * // First call returns error, subsequent calls succeed
245
+ * context.addFetchResponse(
246
+ * '/invoke',
247
+ * sequenceResponses([
248
+ * mockErrorResponse(503, 'Temporarily unavailable'),
249
+ * mockOkResponse({ data: 'success' }),
250
+ * ])
251
+ * );
252
+ * ```
253
+ */
254
+ export function sequenceResponses(responses) {
255
+ let index = 0;
256
+ return () => {
257
+ const response = responses[index];
258
+ if (index < responses.length - 1) {
259
+ index++;
260
+ }
261
+ return response;
262
+ };
263
+ }
264
+ /**
265
+ * Assert that an operation was recorded with specific properties.
266
+ *
267
+ * @param kv - The MockKVService to check
268
+ * @param expected - Expected operation properties
269
+ * @returns Whether a matching operation was found
270
+ *
271
+ * @example
272
+ * ```typescript
273
+ * await kv.put('key', 'value');
274
+ * expect(wasOperationRecorded(kv, { type: 'put', key: 'key' })).toBe(true);
275
+ * ```
276
+ */
277
+ export function wasOperationRecorded(kv, expected) {
278
+ return kv.getOperations().some((op) => {
279
+ if (expected.type !== undefined && op.type !== expected.type)
280
+ return false;
281
+ if (expected.key !== undefined && op.key !== expected.key)
282
+ return false;
283
+ if (expected.value !== undefined) {
284
+ return JSON.stringify(op.value) === JSON.stringify(expected.value);
285
+ }
286
+ return true;
287
+ });
288
+ }
289
+ /**
290
+ * Setup a MockKVService with a MockServiceContext.
291
+ *
292
+ * @param kvConfig - MockKVService configuration
293
+ * @param contextConfig - MockServiceContext configuration
294
+ * @returns Object with initialized kv and context
295
+ *
296
+ * @example
297
+ * ```typescript
298
+ * const { kv, context } = setupMockKV(
299
+ * { initialData: { 'key': 'value' } },
300
+ * { authenticated: true }
301
+ * );
302
+ *
303
+ * const result = await kv.get('key');
304
+ * expect(result.ok).toBe(true);
305
+ * ```
306
+ */
307
+ export function setupMockKV(kvConfig, contextConfig) {
308
+ const context = createTestContext(contextConfig);
309
+ const kv = new MockKVService(kvConfig);
310
+ kv.initialize(context);
311
+ context.registerService("kv", kv);
312
+ return { kv, context };
313
+ }
314
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * TinyCloud SDK Services - Test Utilities
3
+ *
4
+ * Mock implementations and test helpers for testing services
5
+ * without network dependencies.
6
+ *
7
+ * @packageDocumentation
8
+ * @module @tinycloudlabs/sdk-services-test
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import {
13
+ * createTestContext,
14
+ * createMockKV,
15
+ * createMockSession,
16
+ * waitForEvent,
17
+ * } from '@tinycloudlabs/sdk-services-test';
18
+ *
19
+ * // Create an authenticated test context
20
+ * const context = createTestContext({ authenticated: true });
21
+ *
22
+ * // Create a mock KV service with seed data
23
+ * const kv = createMockKV({ 'key': 'value' });
24
+ * kv.initialize(context);
25
+ *
26
+ * // Test service operations
27
+ * const result = await kv.get('key');
28
+ * expect(result.ok).toBe(true);
29
+ * ```
30
+ */
31
+ export { MockServiceContext, type MockServiceContextConfig, type RecordedEvent, type MockFetchResponse, type MockFetchHandler, } from "./MockServiceContext";
32
+ export { MockKVService, type MockKVServiceConfig, type RecordedOperation, type ErrorInjection, } from "./MockKVService";
33
+ export { createMockSession, createTestContext, createMockKV, waitForEvent, waitForEvents, mockOkResponse, mockErrorResponse, delayedResponse, sequenceResponses, wasOperationRecorded, setupMockKV, type CreateTestContextOptions, } from "./helpers";
34
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,EACL,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,KAAK,wBAAwB,GAC9B,MAAM,WAAW,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,36 @@
1
+ /**
2
+ * TinyCloud SDK Services - Test Utilities
3
+ *
4
+ * Mock implementations and test helpers for testing services
5
+ * without network dependencies.
6
+ *
7
+ * @packageDocumentation
8
+ * @module @tinycloudlabs/sdk-services-test
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import {
13
+ * createTestContext,
14
+ * createMockKV,
15
+ * createMockSession,
16
+ * waitForEvent,
17
+ * } from '@tinycloudlabs/sdk-services-test';
18
+ *
19
+ * // Create an authenticated test context
20
+ * const context = createTestContext({ authenticated: true });
21
+ *
22
+ * // Create a mock KV service with seed data
23
+ * const kv = createMockKV({ 'key': 'value' });
24
+ * kv.initialize(context);
25
+ *
26
+ * // Test service operations
27
+ * const result = await kv.get('key');
28
+ * expect(result.ok).toBe(true);
29
+ * ```
30
+ */
31
+ // Mock implementations
32
+ export { MockServiceContext, } from "./MockServiceContext";
33
+ export { MockKVService, } from "./MockKVService";
34
+ // Test helpers
35
+ export { createMockSession, createTestContext, createMockKV, waitForEvent, waitForEvents, mockOkResponse, mockErrorResponse, delayedResponse, sequenceResponses, wasOperationRecorded, setupMockKV, } from "./helpers";
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,uBAAuB;AACvB,OAAO,EACL,kBAAkB,GAKnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,GAId,MAAM,iBAAiB,CAAC;AAEzB,eAAe;AACf,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,GAEZ,MAAM,WAAW,CAAC"}
package/package.json ADDED
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "@tinycloudlabs/sdk-services-test",
3
+ "version": "1.0.0",
4
+ "description": "Testing utilities for TinyCloud SDK Services",
5
+ "author": "TinyCloud, Inc.",
6
+ "license": "EGPL",
7
+ "type": "module",
8
+ "main": "dist/index.js",
9
+ "module": "dist/index.js",
10
+ "types": "dist/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js",
15
+ "default": "./dist/index.js"
16
+ }
17
+ },
18
+ "files": [
19
+ "dist"
20
+ ],
21
+ "scripts": {
22
+ "build": "tsc",
23
+ "clean": "rm -rf dist",
24
+ "test": "bun test"
25
+ },
26
+ "peerDependencies": {
27
+ "@tinycloudlabs/sdk-services": "workspace:*"
28
+ },
29
+ "devDependencies": {
30
+ "@tinycloudlabs/sdk-services": "workspace:*",
31
+ "@types/node": "^20",
32
+ "typescript": "^5.0.0"
33
+ },
34
+ "repository": {
35
+ "type": "git",
36
+ "url": "https://github.com/tinycloudlabs/web-sdk"
37
+ }
38
+ }