ai-evaluate 2.1.7 → 2.2.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.
- package/README.md +61 -4
- package/dist/evaluate.d.ts.map +1 -1
- package/dist/evaluate.js +18 -16
- package/dist/evaluate.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/miniflare-pool.d.ts +109 -0
- package/dist/miniflare-pool.d.ts.map +1 -0
- package/dist/miniflare-pool.js +308 -0
- package/dist/miniflare-pool.js.map +1 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +42 -10
- package/dist/node.js.map +1 -1
- package/dist/shared.d.ts +66 -0
- package/dist/shared.d.ts.map +1 -0
- package/dist/shared.js +169 -0
- package/dist/shared.js.map +1 -0
- package/dist/static/index.d.ts +111 -0
- package/dist/static/index.d.ts.map +1 -0
- package/dist/static/index.js +347 -0
- package/dist/static/index.js.map +1 -0
- package/dist/type-guards.d.ts +21 -0
- package/dist/type-guards.d.ts.map +1 -0
- package/dist/type-guards.js +216 -0
- package/dist/type-guards.js.map +1 -0
- package/dist/types.d.ts +17 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/validation.d.ts +26 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +104 -0
- package/dist/validation.js.map +1 -0
- package/dist/worker-template/code-transforms.d.ts +9 -0
- package/dist/worker-template/code-transforms.d.ts.map +1 -0
- package/dist/worker-template/code-transforms.js +28 -0
- package/dist/worker-template/code-transforms.js.map +1 -0
- package/{src/worker-template.d.ts → dist/worker-template/core.d.ts} +7 -15
- package/dist/worker-template/core.d.ts.map +1 -0
- package/dist/worker-template/core.js +502 -0
- package/dist/worker-template/core.js.map +1 -0
- package/dist/worker-template/helpers.d.ts +14 -0
- package/dist/worker-template/helpers.d.ts.map +1 -0
- package/dist/worker-template/helpers.js +79 -0
- package/dist/worker-template/helpers.js.map +1 -0
- package/dist/worker-template/index.d.ts +14 -0
- package/dist/worker-template/index.d.ts.map +1 -0
- package/dist/worker-template/index.js +19 -0
- package/dist/worker-template/index.js.map +1 -0
- package/dist/worker-template/sdk-generator.d.ts +17 -0
- package/dist/worker-template/sdk-generator.d.ts.map +1 -0
- package/{src/worker-template.js → dist/worker-template/sdk-generator.js} +377 -1506
- package/dist/worker-template/sdk-generator.js.map +1 -0
- package/dist/worker-template/test-generator.d.ts +16 -0
- package/dist/worker-template/test-generator.d.ts.map +1 -0
- package/dist/worker-template/test-generator.js +357 -0
- package/dist/worker-template/test-generator.js.map +1 -0
- package/dist/worker-template.d.ts +2 -2
- package/dist/worker-template.d.ts.map +1 -1
- package/dist/worker-template.js +22 -10
- package/dist/worker-template.js.map +1 -1
- package/package.json +17 -6
- package/public/capnweb.mjs +220 -0
- package/public/index.mjs +426 -0
- package/public/scaffold.mjs +198 -0
- package/.turbo/turbo-build.log +0 -4
- package/.turbo/turbo-test.log +0 -54
- package/.turbo/turbo-typecheck.log +0 -4
- package/CHANGELOG.md +0 -48
- package/example/package.json +0 -20
- package/example/src/index.ts +0 -214
- package/example/wrangler.jsonc +0 -25
- package/src/capnweb-bundle.ts +0 -2596
- package/src/evaluate.js +0 -187
- package/src/evaluate.ts +0 -325
- package/src/index.js +0 -10
- package/src/index.ts +0 -21
- package/src/node.d.ts +0 -17
- package/src/node.d.ts.map +0 -1
- package/src/node.js +0 -168
- package/src/node.js.map +0 -1
- package/src/node.ts +0 -200
- package/src/repl.ts +0 -228
- package/src/types.d.ts +0 -172
- package/src/types.d.ts.map +0 -1
- package/src/types.js +0 -4
- package/src/types.js.map +0 -1
- package/src/types.ts +0 -180
- package/src/worker-template.d.ts.map +0 -1
- package/src/worker-template.js.map +0 -1
- package/src/worker-template.ts +0 -3806
- package/test/evaluate-extended.test.js +0 -429
- package/test/evaluate-extended.test.ts +0 -469
- package/test/evaluate.test.js +0 -235
- package/test/evaluate.test.ts +0 -253
- package/test/index.test.js +0 -77
- package/test/index.test.ts +0 -95
- package/test/worker-template.test.js +0 -365
- package/test/worker-template.test.ts +0 -430
- package/tsconfig.json +0 -22
- package/vitest.config.js +0 -21
- package/vitest.config.ts +0 -28
package/test/evaluate.test.ts
DELETED
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeAll, afterAll } from 'vitest'
|
|
2
|
-
import { evaluate } from '../src/index.js'
|
|
3
|
-
|
|
4
|
-
describe('evaluate', () => {
|
|
5
|
-
describe('script execution', () => {
|
|
6
|
-
it('executes simple expressions', async () => {
|
|
7
|
-
const result = await evaluate({
|
|
8
|
-
script: 'return 1 + 1'
|
|
9
|
-
})
|
|
10
|
-
expect(result.success).toBe(true)
|
|
11
|
-
expect(result.value).toBe(2)
|
|
12
|
-
})
|
|
13
|
-
|
|
14
|
-
it('captures console output', async () => {
|
|
15
|
-
const result = await evaluate({
|
|
16
|
-
script: `
|
|
17
|
-
console.log('hello');
|
|
18
|
-
console.warn('warning');
|
|
19
|
-
console.error('error');
|
|
20
|
-
return 'done';
|
|
21
|
-
`
|
|
22
|
-
})
|
|
23
|
-
expect(result.success).toBe(true)
|
|
24
|
-
expect(result.value).toBe('done')
|
|
25
|
-
expect(result.logs).toHaveLength(3)
|
|
26
|
-
expect(result.logs[0].level).toBe('log')
|
|
27
|
-
expect(result.logs[0].message).toBe('hello')
|
|
28
|
-
expect(result.logs[1].level).toBe('warn')
|
|
29
|
-
expect(result.logs[2].level).toBe('error')
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
it('handles script errors', async () => {
|
|
33
|
-
const result = await evaluate({
|
|
34
|
-
script: 'throw new Error("test error")'
|
|
35
|
-
})
|
|
36
|
-
expect(result.success).toBe(false)
|
|
37
|
-
expect(result.error).toContain('test error')
|
|
38
|
-
})
|
|
39
|
-
})
|
|
40
|
-
|
|
41
|
-
describe('module exports', () => {
|
|
42
|
-
it('exposes exports to script', async () => {
|
|
43
|
-
const result = await evaluate({
|
|
44
|
-
module: `
|
|
45
|
-
exports.add = (a, b) => a + b;
|
|
46
|
-
exports.multiply = (a, b) => a * b;
|
|
47
|
-
`,
|
|
48
|
-
script: 'return add(2, 3) + multiply(4, 5)'
|
|
49
|
-
})
|
|
50
|
-
expect(result.success).toBe(true)
|
|
51
|
-
expect(result.value).toBe(25) // 5 + 20
|
|
52
|
-
})
|
|
53
|
-
|
|
54
|
-
it('exposes exports to tests', async () => {
|
|
55
|
-
const result = await evaluate({
|
|
56
|
-
module: `
|
|
57
|
-
exports.double = (n) => n * 2;
|
|
58
|
-
`,
|
|
59
|
-
tests: `
|
|
60
|
-
describe('double', () => {
|
|
61
|
-
it('doubles a number', () => {
|
|
62
|
-
expect(double(5)).toBe(10);
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
`
|
|
66
|
-
})
|
|
67
|
-
expect(result.success).toBe(true)
|
|
68
|
-
expect(result.testResults?.total).toBe(1)
|
|
69
|
-
expect(result.testResults?.passed).toBe(1)
|
|
70
|
-
})
|
|
71
|
-
})
|
|
72
|
-
|
|
73
|
-
describe('test framework', () => {
|
|
74
|
-
it('runs passing tests', async () => {
|
|
75
|
-
const result = await evaluate({
|
|
76
|
-
tests: `
|
|
77
|
-
describe('math', () => {
|
|
78
|
-
it('adds', () => {
|
|
79
|
-
expect(1 + 1).toBe(2);
|
|
80
|
-
});
|
|
81
|
-
it('subtracts', () => {
|
|
82
|
-
expect(5 - 3).toBe(2);
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
`
|
|
86
|
-
})
|
|
87
|
-
expect(result.success).toBe(true)
|
|
88
|
-
expect(result.testResults?.total).toBe(2)
|
|
89
|
-
expect(result.testResults?.passed).toBe(2)
|
|
90
|
-
expect(result.testResults?.failed).toBe(0)
|
|
91
|
-
})
|
|
92
|
-
|
|
93
|
-
it('reports failing tests', async () => {
|
|
94
|
-
const result = await evaluate({
|
|
95
|
-
tests: `
|
|
96
|
-
it('fails', () => {
|
|
97
|
-
expect(1).toBe(2);
|
|
98
|
-
});
|
|
99
|
-
`
|
|
100
|
-
})
|
|
101
|
-
expect(result.success).toBe(false)
|
|
102
|
-
expect(result.testResults?.total).toBe(1)
|
|
103
|
-
expect(result.testResults?.failed).toBe(1)
|
|
104
|
-
expect(result.testResults?.tests[0].error).toContain('Expected 2')
|
|
105
|
-
})
|
|
106
|
-
|
|
107
|
-
it('supports skipped tests', async () => {
|
|
108
|
-
const result = await evaluate({
|
|
109
|
-
tests: `
|
|
110
|
-
it.skip('skipped', () => {
|
|
111
|
-
expect(1).toBe(2);
|
|
112
|
-
});
|
|
113
|
-
it('runs', () => {
|
|
114
|
-
expect(1).toBe(1);
|
|
115
|
-
});
|
|
116
|
-
`
|
|
117
|
-
})
|
|
118
|
-
expect(result.success).toBe(true)
|
|
119
|
-
expect(result.testResults?.total).toBe(2)
|
|
120
|
-
expect(result.testResults?.passed).toBe(1)
|
|
121
|
-
expect(result.testResults?.skipped).toBe(1)
|
|
122
|
-
})
|
|
123
|
-
|
|
124
|
-
it('supports beforeEach hooks', async () => {
|
|
125
|
-
const result = await evaluate({
|
|
126
|
-
tests: `
|
|
127
|
-
let count = 0;
|
|
128
|
-
beforeEach(() => {
|
|
129
|
-
count++;
|
|
130
|
-
});
|
|
131
|
-
it('first', () => {
|
|
132
|
-
expect(count).toBe(1);
|
|
133
|
-
});
|
|
134
|
-
it('second', () => {
|
|
135
|
-
expect(count).toBe(2);
|
|
136
|
-
});
|
|
137
|
-
`
|
|
138
|
-
})
|
|
139
|
-
expect(result.success).toBe(true)
|
|
140
|
-
expect(result.testResults?.passed).toBe(2)
|
|
141
|
-
})
|
|
142
|
-
|
|
143
|
-
it('supports async tests', async () => {
|
|
144
|
-
const result = await evaluate({
|
|
145
|
-
tests: `
|
|
146
|
-
it('async test', async () => {
|
|
147
|
-
const value = await Promise.resolve(42);
|
|
148
|
-
expect(value).toBe(42);
|
|
149
|
-
});
|
|
150
|
-
`
|
|
151
|
-
})
|
|
152
|
-
expect(result.success).toBe(true)
|
|
153
|
-
expect(result.testResults?.passed).toBe(1)
|
|
154
|
-
})
|
|
155
|
-
})
|
|
156
|
-
|
|
157
|
-
describe('expect matchers', () => {
|
|
158
|
-
it('toBe', async () => {
|
|
159
|
-
const result = await evaluate({
|
|
160
|
-
tests: `
|
|
161
|
-
it('works', () => {
|
|
162
|
-
expect(1).toBe(1);
|
|
163
|
-
expect('a').toBe('a');
|
|
164
|
-
});
|
|
165
|
-
`
|
|
166
|
-
})
|
|
167
|
-
expect(result.success).toBe(true)
|
|
168
|
-
})
|
|
169
|
-
|
|
170
|
-
it('toEqual', async () => {
|
|
171
|
-
const result = await evaluate({
|
|
172
|
-
tests: `
|
|
173
|
-
it('works', () => {
|
|
174
|
-
expect({ a: 1 }).toEqual({ a: 1 });
|
|
175
|
-
expect([1, 2]).toEqual([1, 2]);
|
|
176
|
-
});
|
|
177
|
-
`
|
|
178
|
-
})
|
|
179
|
-
expect(result.success).toBe(true)
|
|
180
|
-
})
|
|
181
|
-
|
|
182
|
-
it('toContain', async () => {
|
|
183
|
-
const result = await evaluate({
|
|
184
|
-
tests: `
|
|
185
|
-
it('works', () => {
|
|
186
|
-
expect([1, 2, 3]).toContain(2);
|
|
187
|
-
expect('hello').toContain('ell');
|
|
188
|
-
});
|
|
189
|
-
`
|
|
190
|
-
})
|
|
191
|
-
expect(result.success).toBe(true)
|
|
192
|
-
})
|
|
193
|
-
|
|
194
|
-
it('toThrow', async () => {
|
|
195
|
-
const result = await evaluate({
|
|
196
|
-
tests: `
|
|
197
|
-
it('works', () => {
|
|
198
|
-
expect(() => { throw new Error('boom'); }).toThrow('boom');
|
|
199
|
-
expect(() => { throw new Error('boom'); }).toThrow(/boom/);
|
|
200
|
-
});
|
|
201
|
-
`
|
|
202
|
-
})
|
|
203
|
-
expect(result.success).toBe(true)
|
|
204
|
-
})
|
|
205
|
-
|
|
206
|
-
it('toHaveProperty', async () => {
|
|
207
|
-
const result = await evaluate({
|
|
208
|
-
tests: `
|
|
209
|
-
it('works', () => {
|
|
210
|
-
expect({ a: { b: 1 } }).toHaveProperty('a.b');
|
|
211
|
-
expect({ a: { b: 1 } }).toHaveProperty('a.b', 1);
|
|
212
|
-
});
|
|
213
|
-
`
|
|
214
|
-
})
|
|
215
|
-
expect(result.success).toBe(true)
|
|
216
|
-
})
|
|
217
|
-
|
|
218
|
-
it('toMatchObject', async () => {
|
|
219
|
-
const result = await evaluate({
|
|
220
|
-
tests: `
|
|
221
|
-
it('works', () => {
|
|
222
|
-
expect({ a: 1, b: 2 }).toMatchObject({ a: 1 });
|
|
223
|
-
});
|
|
224
|
-
`
|
|
225
|
-
})
|
|
226
|
-
expect(result.success).toBe(true)
|
|
227
|
-
})
|
|
228
|
-
|
|
229
|
-
it('not matchers', async () => {
|
|
230
|
-
const result = await evaluate({
|
|
231
|
-
tests: `
|
|
232
|
-
it('works', () => {
|
|
233
|
-
expect(1).not.toBe(2);
|
|
234
|
-
expect({ a: 1 }).not.toEqual({ a: 2 });
|
|
235
|
-
expect([1, 2]).not.toContain(3);
|
|
236
|
-
});
|
|
237
|
-
`
|
|
238
|
-
})
|
|
239
|
-
expect(result.success).toBe(true)
|
|
240
|
-
})
|
|
241
|
-
|
|
242
|
-
it('toBeCloseTo', async () => {
|
|
243
|
-
const result = await evaluate({
|
|
244
|
-
tests: `
|
|
245
|
-
it('works', () => {
|
|
246
|
-
expect(0.1 + 0.2).toBeCloseTo(0.3);
|
|
247
|
-
});
|
|
248
|
-
`
|
|
249
|
-
})
|
|
250
|
-
expect(result.success).toBe(true)
|
|
251
|
-
})
|
|
252
|
-
})
|
|
253
|
-
})
|
package/test/index.test.js
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
describe('index exports', () => {
|
|
3
|
-
it('exports evaluate function', async () => {
|
|
4
|
-
const { evaluate } = await import('../src/index.js');
|
|
5
|
-
expect(typeof evaluate).toBe('function');
|
|
6
|
-
});
|
|
7
|
-
it('exports createEvaluator function', async () => {
|
|
8
|
-
const { createEvaluator } = await import('../src/index.js');
|
|
9
|
-
expect(typeof createEvaluator).toBe('function');
|
|
10
|
-
});
|
|
11
|
-
it('exports types', async () => {
|
|
12
|
-
// Types are compile-time only, so we just check the module loads
|
|
13
|
-
await import('../src/index.js');
|
|
14
|
-
});
|
|
15
|
-
});
|
|
16
|
-
describe('types', () => {
|
|
17
|
-
it('EvaluateOptions interface is usable', async () => {
|
|
18
|
-
const { evaluate } = await import('../src/index.js');
|
|
19
|
-
// Test that options conform to EvaluateOptions
|
|
20
|
-
const options = {
|
|
21
|
-
module: 'exports.x = 1;',
|
|
22
|
-
tests: 'it("test", () => {});',
|
|
23
|
-
script: 'return 1;',
|
|
24
|
-
timeout: 5000,
|
|
25
|
-
env: { FOO: 'bar' },
|
|
26
|
-
fetch: null
|
|
27
|
-
};
|
|
28
|
-
const result = await evaluate(options);
|
|
29
|
-
expect(result).toHaveProperty('success');
|
|
30
|
-
});
|
|
31
|
-
it('EvaluateResult has correct shape', async () => {
|
|
32
|
-
const { evaluate } = await import('../src/index.js');
|
|
33
|
-
const result = await evaluate({ script: 'return 42;' });
|
|
34
|
-
expect(result).toHaveProperty('success');
|
|
35
|
-
expect(result).toHaveProperty('logs');
|
|
36
|
-
expect(result).toHaveProperty('duration');
|
|
37
|
-
expect(typeof result.success).toBe('boolean');
|
|
38
|
-
expect(Array.isArray(result.logs)).toBe(true);
|
|
39
|
-
expect(typeof result.duration).toBe('number');
|
|
40
|
-
});
|
|
41
|
-
it('LogEntry has correct shape', async () => {
|
|
42
|
-
const { evaluate } = await import('../src/index.js');
|
|
43
|
-
const result = await evaluate({
|
|
44
|
-
script: 'console.log("test"); return true;'
|
|
45
|
-
});
|
|
46
|
-
const log = result.logs[0];
|
|
47
|
-
expect(log).toHaveProperty('level');
|
|
48
|
-
expect(log).toHaveProperty('message');
|
|
49
|
-
expect(log).toHaveProperty('timestamp');
|
|
50
|
-
expect(['log', 'warn', 'error', 'info', 'debug']).toContain(log.level);
|
|
51
|
-
});
|
|
52
|
-
it('TestResults has correct shape when tests provided', async () => {
|
|
53
|
-
const { evaluate } = await import('../src/index.js');
|
|
54
|
-
const result = await evaluate({
|
|
55
|
-
tests: 'it("test", () => { expect(1).toBe(1); });'
|
|
56
|
-
});
|
|
57
|
-
expect(result.testResults).toBeDefined();
|
|
58
|
-
expect(result.testResults).toHaveProperty('total');
|
|
59
|
-
expect(result.testResults).toHaveProperty('passed');
|
|
60
|
-
expect(result.testResults).toHaveProperty('failed');
|
|
61
|
-
expect(result.testResults).toHaveProperty('skipped');
|
|
62
|
-
expect(result.testResults).toHaveProperty('tests');
|
|
63
|
-
expect(result.testResults).toHaveProperty('duration');
|
|
64
|
-
});
|
|
65
|
-
it('TestResult has correct shape', async () => {
|
|
66
|
-
const { evaluate } = await import('../src/index.js');
|
|
67
|
-
const result = await evaluate({
|
|
68
|
-
tests: 'it("my test", () => {});'
|
|
69
|
-
});
|
|
70
|
-
const test = result.testResults?.tests[0];
|
|
71
|
-
expect(test).toHaveProperty('name');
|
|
72
|
-
expect(test).toHaveProperty('passed');
|
|
73
|
-
expect(test).toHaveProperty('duration');
|
|
74
|
-
expect(test?.name).toBe('my test');
|
|
75
|
-
expect(test?.passed).toBe(true);
|
|
76
|
-
});
|
|
77
|
-
});
|
package/test/index.test.ts
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest'
|
|
2
|
-
|
|
3
|
-
describe('index exports', () => {
|
|
4
|
-
it('exports evaluate function', async () => {
|
|
5
|
-
const { evaluate } = await import('../src/index.js')
|
|
6
|
-
expect(typeof evaluate).toBe('function')
|
|
7
|
-
})
|
|
8
|
-
|
|
9
|
-
it('exports createEvaluator function', async () => {
|
|
10
|
-
const { createEvaluator } = await import('../src/index.js')
|
|
11
|
-
expect(typeof createEvaluator).toBe('function')
|
|
12
|
-
})
|
|
13
|
-
|
|
14
|
-
it('exports types', async () => {
|
|
15
|
-
// Types are compile-time only, so we just check the module loads
|
|
16
|
-
await import('../src/index.js')
|
|
17
|
-
})
|
|
18
|
-
})
|
|
19
|
-
|
|
20
|
-
describe('types', () => {
|
|
21
|
-
it('EvaluateOptions interface is usable', async () => {
|
|
22
|
-
const { evaluate } = await import('../src/index.js')
|
|
23
|
-
|
|
24
|
-
// Test that options conform to EvaluateOptions
|
|
25
|
-
const options = {
|
|
26
|
-
module: 'exports.x = 1;',
|
|
27
|
-
tests: 'it("test", () => {});',
|
|
28
|
-
script: 'return 1;',
|
|
29
|
-
timeout: 5000,
|
|
30
|
-
env: { FOO: 'bar' },
|
|
31
|
-
fetch: null as null
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const result = await evaluate(options)
|
|
35
|
-
expect(result).toHaveProperty('success')
|
|
36
|
-
})
|
|
37
|
-
|
|
38
|
-
it('EvaluateResult has correct shape', async () => {
|
|
39
|
-
const { evaluate } = await import('../src/index.js')
|
|
40
|
-
|
|
41
|
-
const result = await evaluate({ script: 'return 42;' })
|
|
42
|
-
|
|
43
|
-
expect(result).toHaveProperty('success')
|
|
44
|
-
expect(result).toHaveProperty('logs')
|
|
45
|
-
expect(result).toHaveProperty('duration')
|
|
46
|
-
expect(typeof result.success).toBe('boolean')
|
|
47
|
-
expect(Array.isArray(result.logs)).toBe(true)
|
|
48
|
-
expect(typeof result.duration).toBe('number')
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
it('LogEntry has correct shape', async () => {
|
|
52
|
-
const { evaluate } = await import('../src/index.js')
|
|
53
|
-
|
|
54
|
-
const result = await evaluate({
|
|
55
|
-
script: 'console.log("test"); return true;'
|
|
56
|
-
})
|
|
57
|
-
|
|
58
|
-
const log = result.logs[0]
|
|
59
|
-
expect(log).toHaveProperty('level')
|
|
60
|
-
expect(log).toHaveProperty('message')
|
|
61
|
-
expect(log).toHaveProperty('timestamp')
|
|
62
|
-
expect(['log', 'warn', 'error', 'info', 'debug']).toContain(log.level)
|
|
63
|
-
})
|
|
64
|
-
|
|
65
|
-
it('TestResults has correct shape when tests provided', async () => {
|
|
66
|
-
const { evaluate } = await import('../src/index.js')
|
|
67
|
-
|
|
68
|
-
const result = await evaluate({
|
|
69
|
-
tests: 'it("test", () => { expect(1).toBe(1); });'
|
|
70
|
-
})
|
|
71
|
-
|
|
72
|
-
expect(result.testResults).toBeDefined()
|
|
73
|
-
expect(result.testResults).toHaveProperty('total')
|
|
74
|
-
expect(result.testResults).toHaveProperty('passed')
|
|
75
|
-
expect(result.testResults).toHaveProperty('failed')
|
|
76
|
-
expect(result.testResults).toHaveProperty('skipped')
|
|
77
|
-
expect(result.testResults).toHaveProperty('tests')
|
|
78
|
-
expect(result.testResults).toHaveProperty('duration')
|
|
79
|
-
})
|
|
80
|
-
|
|
81
|
-
it('TestResult has correct shape', async () => {
|
|
82
|
-
const { evaluate } = await import('../src/index.js')
|
|
83
|
-
|
|
84
|
-
const result = await evaluate({
|
|
85
|
-
tests: 'it("my test", () => {});'
|
|
86
|
-
})
|
|
87
|
-
|
|
88
|
-
const test = result.testResults?.tests[0]
|
|
89
|
-
expect(test).toHaveProperty('name')
|
|
90
|
-
expect(test).toHaveProperty('passed')
|
|
91
|
-
expect(test).toHaveProperty('duration')
|
|
92
|
-
expect(test?.name).toBe('my test')
|
|
93
|
-
expect(test?.passed).toBe(true)
|
|
94
|
-
})
|
|
95
|
-
})
|