@holokai/holo-test 1.4.2 → 1.5.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.
Files changed (169) hide show
  1. package/README.md +217 -80
  2. package/dist/conformance/audit-tests.d.ts +4 -0
  3. package/dist/conformance/audit-tests.d.ts.map +1 -0
  4. package/dist/conformance/audit-tests.js +55 -0
  5. package/dist/conformance/audit-tests.js.map +1 -0
  6. package/dist/conformance/datastore-tests.d.ts +13 -0
  7. package/dist/conformance/datastore-tests.d.ts.map +1 -0
  8. package/dist/conformance/datastore-tests.js +121 -0
  9. package/dist/conformance/datastore-tests.js.map +1 -0
  10. package/dist/conformance/holo-fixture-loader.d.ts +4 -0
  11. package/dist/conformance/holo-fixture-loader.d.ts.map +1 -0
  12. package/dist/conformance/holo-fixture-loader.js +79 -0
  13. package/dist/conformance/holo-fixture-loader.js.map +1 -0
  14. package/dist/conformance/holo-fixture-tests.d.ts +4 -0
  15. package/dist/conformance/holo-fixture-tests.d.ts.map +1 -0
  16. package/dist/conformance/holo-fixture-tests.js +273 -0
  17. package/dist/conformance/holo-fixture-tests.js.map +1 -0
  18. package/dist/conformance/holo-fixture-types.d.ts +93 -0
  19. package/dist/conformance/holo-fixture-types.d.ts.map +1 -0
  20. package/dist/conformance/holo-fixture-types.js +2 -0
  21. package/dist/conformance/holo-fixture-types.js.map +1 -0
  22. package/dist/conformance/loader.d.ts +7 -0
  23. package/dist/conformance/loader.d.ts.map +1 -0
  24. package/dist/conformance/loader.js +71 -0
  25. package/dist/conformance/loader.js.map +1 -0
  26. package/dist/conformance/pipeline-tests.d.ts +4 -0
  27. package/dist/conformance/pipeline-tests.d.ts.map +1 -0
  28. package/dist/conformance/pipeline-tests.js +73 -0
  29. package/dist/conformance/pipeline-tests.js.map +1 -0
  30. package/dist/conformance/runner.d.ts +2 -0
  31. package/dist/conformance/runner.d.ts.map +1 -0
  32. package/dist/conformance/runner.js +102 -0
  33. package/dist/conformance/runner.js.map +1 -0
  34. package/dist/conformance/sdk-tests.d.ts +12 -0
  35. package/dist/conformance/sdk-tests.d.ts.map +1 -0
  36. package/dist/{services/http-fixture-server.js → conformance/sdk-tests.js} +56 -17
  37. package/dist/conformance/sdk-tests.js.map +1 -0
  38. package/dist/conformance/translator-tests.d.ts +4 -0
  39. package/dist/conformance/translator-tests.d.ts.map +1 -0
  40. package/dist/conformance/translator-tests.js +49 -0
  41. package/dist/conformance/translator-tests.js.map +1 -0
  42. package/dist/conformance/types.d.ts +81 -0
  43. package/dist/conformance/types.d.ts.map +1 -0
  44. package/dist/conformance/types.js +2 -0
  45. package/dist/conformance/types.js.map +1 -0
  46. package/dist/conformance/wire-tests.d.ts +4 -0
  47. package/dist/conformance/wire-tests.d.ts.map +1 -0
  48. package/dist/conformance/wire-tests.js +52 -0
  49. package/dist/conformance/wire-tests.js.map +1 -0
  50. package/dist/fixtures/plugin.d.ts +27 -0
  51. package/dist/fixtures/plugin.d.ts.map +1 -0
  52. package/dist/fixtures/plugin.js +110 -0
  53. package/dist/fixtures/plugin.js.map +1 -0
  54. package/dist/helpers/env.d.ts +2 -0
  55. package/dist/helpers/env.d.ts.map +1 -1
  56. package/dist/helpers/env.js +5 -0
  57. package/dist/helpers/env.js.map +1 -1
  58. package/dist/helpers/ids.d.ts +2 -0
  59. package/dist/helpers/ids.d.ts.map +1 -0
  60. package/dist/helpers/ids.js +5 -0
  61. package/dist/helpers/ids.js.map +1 -0
  62. package/dist/helpers/matrix.d.ts +9 -1
  63. package/dist/helpers/matrix.d.ts.map +1 -1
  64. package/dist/helpers/matrix.js +8 -3
  65. package/dist/helpers/matrix.js.map +1 -1
  66. package/dist/helpers/mocks.d.ts +4 -0
  67. package/dist/helpers/mocks.d.ts.map +1 -0
  68. package/dist/helpers/mocks.js +37 -0
  69. package/dist/helpers/mocks.js.map +1 -0
  70. package/dist/helpers/polling.d.ts +3 -0
  71. package/dist/helpers/polling.d.ts.map +1 -0
  72. package/dist/helpers/polling.js +24 -0
  73. package/dist/helpers/polling.js.map +1 -0
  74. package/dist/helpers/vitest-helpers.d.ts +1 -1
  75. package/dist/helpers/vitest-helpers.d.ts.map +1 -1
  76. package/dist/index.d.ts +26 -23
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +22 -21
  79. package/dist/index.js.map +1 -1
  80. package/dist/live/assertions.d.ts.map +1 -1
  81. package/dist/live/assertions.js +54 -21
  82. package/dist/live/assertions.js.map +1 -1
  83. package/dist/live/error-payloads.d.ts +5 -0
  84. package/dist/live/error-payloads.d.ts.map +1 -0
  85. package/dist/live/error-payloads.js +47 -0
  86. package/dist/live/error-payloads.js.map +1 -0
  87. package/dist/live/error-tester.d.ts +3 -0
  88. package/dist/live/error-tester.d.ts.map +1 -0
  89. package/dist/live/error-tester.js +121 -0
  90. package/dist/live/error-tester.js.map +1 -0
  91. package/dist/live/index.d.ts +3 -1
  92. package/dist/live/index.d.ts.map +1 -1
  93. package/dist/live/index.js +2 -0
  94. package/dist/live/index.js.map +1 -1
  95. package/dist/live/live-tester.d.ts.map +1 -1
  96. package/dist/live/live-tester.js +17 -3
  97. package/dist/live/live-tester.js.map +1 -1
  98. package/dist/live/types.d.ts +9 -0
  99. package/dist/live/types.d.ts.map +1 -1
  100. package/dist/services/plugin-loader.d.ts +4 -2
  101. package/dist/services/plugin-loader.d.ts.map +1 -1
  102. package/dist/services/plugin-loader.js +14 -2
  103. package/dist/services/plugin-loader.js.map +1 -1
  104. package/dist/types.d.ts +0 -37
  105. package/dist/types.d.ts.map +1 -1
  106. package/package.json +3 -6
  107. package/dist/cli.d.ts +0 -3
  108. package/dist/cli.d.ts.map +0 -1
  109. package/dist/cli.js +0 -83
  110. package/dist/cli.js.map +0 -1
  111. package/dist/contracts/audit-contract.d.ts +0 -3
  112. package/dist/contracts/audit-contract.d.ts.map +0 -1
  113. package/dist/contracts/audit-contract.js +0 -11
  114. package/dist/contracts/audit-contract.js.map +0 -1
  115. package/dist/contracts/pipeline-contract.d.ts +0 -3
  116. package/dist/contracts/pipeline-contract.d.ts.map +0 -1
  117. package/dist/contracts/pipeline-contract.js +0 -9
  118. package/dist/contracts/pipeline-contract.js.map +0 -1
  119. package/dist/contracts/roundtrip-contract.d.ts +0 -3
  120. package/dist/contracts/roundtrip-contract.d.ts.map +0 -1
  121. package/dist/contracts/roundtrip-contract.js +0 -9
  122. package/dist/contracts/roundtrip-contract.js.map +0 -1
  123. package/dist/contracts/wire-contract.d.ts +0 -3
  124. package/dist/contracts/wire-contract.d.ts.map +0 -1
  125. package/dist/contracts/wire-contract.js +0 -9
  126. package/dist/contracts/wire-contract.js.map +0 -1
  127. package/dist/dsl/assertions.d.ts +0 -6
  128. package/dist/dsl/assertions.d.ts.map +0 -1
  129. package/dist/dsl/assertions.js +0 -54
  130. package/dist/dsl/assertions.js.map +0 -1
  131. package/dist/dsl/suite-builder.d.ts +0 -25
  132. package/dist/dsl/suite-builder.d.ts.map +0 -1
  133. package/dist/dsl/suite-builder.js +0 -96
  134. package/dist/dsl/suite-builder.js.map +0 -1
  135. package/dist/factories/worker-request-factory.d.ts +0 -5
  136. package/dist/factories/worker-request-factory.d.ts.map +0 -1
  137. package/dist/factories/worker-request-factory.js +0 -19
  138. package/dist/factories/worker-request-factory.js.map +0 -1
  139. package/dist/fixtures/fixture-loader.d.ts +0 -6
  140. package/dist/fixtures/fixture-loader.d.ts.map +0 -1
  141. package/dist/fixtures/fixture-loader.js +0 -23
  142. package/dist/fixtures/fixture-loader.js.map +0 -1
  143. package/dist/runner/test-reporter.d.ts +0 -3
  144. package/dist/runner/test-reporter.d.ts.map +0 -1
  145. package/dist/runner/test-reporter.js +0 -43
  146. package/dist/runner/test-reporter.js.map +0 -1
  147. package/dist/runner/test-runner.d.ts +0 -12
  148. package/dist/runner/test-runner.d.ts.map +0 -1
  149. package/dist/runner/test-runner.js +0 -37
  150. package/dist/runner/test-runner.js.map +0 -1
  151. package/dist/services/http-fixture-server.d.ts +0 -14
  152. package/dist/services/http-fixture-server.d.ts.map +0 -1
  153. package/dist/services/http-fixture-server.js.map +0 -1
  154. package/dist/testers/audit-tester.d.ts +0 -4
  155. package/dist/testers/audit-tester.d.ts.map +0 -1
  156. package/dist/testers/audit-tester.js +0 -74
  157. package/dist/testers/audit-tester.js.map +0 -1
  158. package/dist/testers/pipeline-tester.d.ts +0 -4
  159. package/dist/testers/pipeline-tester.d.ts.map +0 -1
  160. package/dist/testers/pipeline-tester.js +0 -62
  161. package/dist/testers/pipeline-tester.js.map +0 -1
  162. package/dist/testers/roundtrip-tester.d.ts +0 -3
  163. package/dist/testers/roundtrip-tester.d.ts.map +0 -1
  164. package/dist/testers/roundtrip-tester.js +0 -77
  165. package/dist/testers/roundtrip-tester.js.map +0 -1
  166. package/dist/testers/wire-tester.d.ts +0 -4
  167. package/dist/testers/wire-tester.d.ts.map +0 -1
  168. package/dist/testers/wire-tester.js +0 -87
  169. package/dist/testers/wire-tester.js.map +0 -1
@@ -1,62 +0,0 @@
1
- import { processProviderEvents } from '@holokai/holo-sdk/provider';
2
- import { assertEqual } from '../dsl/assertions.js';
3
- import { createTestWorkerRequest, createTestEnvelope } from '../factories/worker-request-factory.js';
4
- export async function testPipeline(plugin, fixture) {
5
- const start = performance.now();
6
- const errors = [];
7
- const workerRequest = createTestWorkerRequest(fixture);
8
- const envelope = createTestEnvelope(fixture, workerRequest);
9
- const wire = await plugin.createWireAdapter({
10
- requestId: workerRequest.requestId,
11
- isStreaming: fixture.streaming,
12
- protocol: fixture.protocol,
13
- });
14
- const providerEvents = fixture.providerChunks.map((chunk, i) => {
15
- const isLast = i === fixture.providerChunks.length - 1;
16
- if (isLast) {
17
- return {
18
- type: 'done',
19
- requestId: workerRequest.requestId,
20
- seq: i,
21
- message: chunk,
22
- text: fixture.expectedText,
23
- ts: Date.now(),
24
- };
25
- }
26
- return {
27
- type: 'stream_event',
28
- requestId: workerRequest.requestId,
29
- seq: i,
30
- event: chunk,
31
- ts: Date.now(),
32
- };
33
- });
34
- let auditedRecord = null;
35
- const publisher = {
36
- publishChunk: (_s, _r, _d) => Promise.resolve(),
37
- publishFinal: async (data) => {
38
- auditedRecord = data;
39
- }
40
- };
41
- const result = await processProviderEvents(toAsyncIterable(providerEvents), wire, workerRequest, envelope, publisher);
42
- const textErr = assertEqual('text', result.text, fixture.expectedText);
43
- if (textErr)
44
- errors.push(textErr);
45
- if (fixture.expectedAudit && auditedRecord) {
46
- const hasEvent = assertEqual('audit.hasProviderEvent', !!auditedRecord.providerEvent, true);
47
- if (hasEvent)
48
- errors.push(hasEvent);
49
- }
50
- return {
51
- name: fixture.name,
52
- category: 'pipeline',
53
- passed: errors.length === 0,
54
- errors,
55
- duration: performance.now() - start,
56
- };
57
- }
58
- async function* toAsyncIterable(items) {
59
- for (const item of items)
60
- yield item;
61
- }
62
- //# sourceMappingURL=pipeline-tester.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipeline-tester.js","sourceRoot":"","sources":["../../src/testers/pipeline-tester.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { FixtureScenario, SdkAdapter, TestResult } from '../types.js';
2
- export declare function testRoundTrip(fixture: FixtureScenario, adapter: SdkAdapter): Promise<TestResult>;
3
- //# sourceMappingURL=roundtrip-tester.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"roundtrip-tester.d.ts","sourceRoot":"","sources":["../../src/testers/roundtrip-tester.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAE,UAAU,EAAE,UAAU,EAAiB,MAAM,aAAa,CAAC;AAKzF,wBAAsB,aAAa,CAC/B,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,UAAU,GACpB,OAAO,CAAC,UAAU,CAAC,CAsErB"}
@@ -1,77 +0,0 @@
1
- import { assertPartialMatch } from '../dsl/assertions.js';
2
- import { HttpFixtureServer } from '../services/http-fixture-server.js';
3
- import { loadPlugin } from '../services/plugin-loader.js';
4
- export async function testRoundTrip(fixture, adapter) {
5
- const start = performance.now();
6
- const errors = [];
7
- if (!fixture.sdkRequest || !fixture.expectedSdkResult) {
8
- return {
9
- name: fixture.name,
10
- category: 'roundtrip',
11
- passed: true,
12
- errors: [],
13
- duration: performance.now() - start,
14
- };
15
- }
16
- const plugin = await loadPlugin(fixture.plugin);
17
- const server = new HttpFixtureServer();
18
- server.mount(fixture, plugin, adapter);
19
- let port;
20
- try {
21
- port = await server.start();
22
- }
23
- catch (err) {
24
- return {
25
- name: fixture.name,
26
- category: 'roundtrip',
27
- passed: false,
28
- errors: [{ field: 'server', expected: 'started', actual: `error: ${err}` }],
29
- duration: performance.now() - start,
30
- };
31
- }
32
- try {
33
- const result = await adapter.call(fixture, port);
34
- if (typeof fixture.expectedSdkResult === 'object' && !Array.isArray(fixture.expectedSdkResult)) {
35
- const err = assertPartialMatch('sdkResult', result, fixture.expectedSdkResult);
36
- if (err)
37
- errors.push(err);
38
- }
39
- else if (Array.isArray(fixture.expectedSdkResult)) {
40
- if (!Array.isArray(result)) {
41
- errors.push({ field: 'sdkResult', expected: 'array', actual: typeof result });
42
- }
43
- else if (result.length !== fixture.expectedSdkResult.length) {
44
- errors.push({
45
- field: 'sdkResult.length',
46
- expected: fixture.expectedSdkResult.length,
47
- actual: result.length,
48
- });
49
- }
50
- else {
51
- for (let i = 0; i < fixture.expectedSdkResult.length; i++) {
52
- const err = assertPartialMatch(`sdkResult[${i}]`, result[i], fixture.expectedSdkResult[i]);
53
- if (err)
54
- errors.push(err);
55
- }
56
- }
57
- }
58
- }
59
- catch (err) {
60
- errors.push({
61
- field: 'sdk.call',
62
- expected: 'success',
63
- actual: `error: ${err.message}`,
64
- });
65
- }
66
- finally {
67
- await server.stop();
68
- }
69
- return {
70
- name: fixture.name,
71
- category: 'roundtrip',
72
- passed: errors.length === 0,
73
- errors,
74
- duration: performance.now() - start,
75
- };
76
- }
77
- //# sourceMappingURL=roundtrip-tester.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"roundtrip-tester.js","sourceRoot":"","sources":["../../src/testers/roundtrip-tester.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import type { IProviderPlugin } from '@holokai/holo-types/plugin';
2
- import type { FixtureScenario, TestResult } from '../types.js';
3
- export declare function testWire(plugin: IProviderPlugin, fixture: FixtureScenario): Promise<TestResult>;
4
- //# sourceMappingURL=wire-tester.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wire-tester.d.ts","sourceRoot":"","sources":["../../src/testers/wire-tester.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAEhE,OAAO,KAAK,EAAC,eAAe,EAAE,UAAU,EAAiB,MAAM,aAAa,CAAC;AAG7E,wBAAsB,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAiDrG"}
@@ -1,87 +0,0 @@
1
- import { assertArrayEqual, assertEqual } from '../dsl/assertions.js';
2
- export async function testWire(plugin, fixture) {
3
- const start = performance.now();
4
- const errors = [];
5
- const wire = await plugin.createWireAdapter({
6
- requestId: 'test-req',
7
- isStreaming: fixture.streaming,
8
- protocol: fixture.protocol
9
- });
10
- const allChunks = [];
11
- for (let i = 0; i < fixture.providerChunks.length; i++) {
12
- const isLast = i === fixture.providerChunks.length - 1;
13
- const event = toProviderEvent(fixture, i, isLast);
14
- const chunks = await wire.fromProviderEvent(event);
15
- allChunks.push(...chunks);
16
- }
17
- const firstChunk = allChunks[0];
18
- if (firstChunk) {
19
- const statusErr = assertEqual('status', firstChunk.status, fixture.expectedStatus);
20
- if (statusErr)
21
- errors.push(statusErr);
22
- if (fixture.expectedHeaders && firstChunk.headers) {
23
- for (const [k, v] of Object.entries(fixture.expectedHeaders)) {
24
- const headerErr = assertEqual(`headers.${k}`, firstChunk.headers[k], v);
25
- if (headerErr)
26
- errors.push(headerErr);
27
- }
28
- }
29
- }
30
- else {
31
- errors.push({ field: 'wireChunks', expected: 'at least 1 chunk', actual: '0 chunks' });
32
- }
33
- const lastChunk = allChunks[allChunks.length - 1];
34
- if (lastChunk && !lastChunk.done) {
35
- errors.push({ field: 'lastChunk.done', expected: true, actual: lastChunk.done });
36
- }
37
- const wireBodies = allChunks.map(c => c.body);
38
- const wireErrors = assertArrayEqual('wireBody', wireBodies, fixture.expectedWire);
39
- errors.push(...wireErrors);
40
- return {
41
- name: fixture.name,
42
- category: 'wire',
43
- passed: errors.length === 0,
44
- errors,
45
- duration: performance.now() - start,
46
- };
47
- }
48
- function toProviderEvent(fixture, index, isLast) {
49
- const chunk = fixture.providerChunks[index];
50
- if (!fixture.streaming) {
51
- if (isLast) {
52
- return {
53
- type: 'done',
54
- requestId: 'test-req',
55
- seq: index,
56
- message: chunk,
57
- text: fixture.expectedText,
58
- ts: Date.now(),
59
- };
60
- }
61
- return {
62
- type: 'stream_event',
63
- requestId: 'test-req',
64
- seq: index,
65
- event: chunk,
66
- ts: Date.now(),
67
- };
68
- }
69
- if (isLast) {
70
- return {
71
- type: 'done',
72
- requestId: 'test-req',
73
- seq: index,
74
- message: chunk,
75
- text: fixture.expectedText,
76
- ts: Date.now(),
77
- };
78
- }
79
- return {
80
- type: 'stream_event',
81
- requestId: 'test-req',
82
- seq: index,
83
- event: chunk,
84
- ts: Date.now(),
85
- };
86
- }
87
- //# sourceMappingURL=wire-tester.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wire-tester.js","sourceRoot":"","sources":["../../src/testers/wire-tester.ts"],"names":[],"mappings":"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"}