forked from promptfoo/promptfoo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.test.ts
79 lines (72 loc) · 2.1 KB
/
index.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import * as index from '../src/index';
describe('index.ts exports', () => {
const expectedNamedExports = [
'assertions',
'cache',
'evaluate',
'generateTable',
'isApiProvider',
'isGradingResult',
'isProviderOptions',
'providers',
'redteam',
];
const expectedSchemaExports = [
'AssertionSchema',
'AtomicTestCaseSchema',
'BaseAssertionTypesSchema',
'CommandLineOptionsSchema',
'CompletedPromptSchema',
'DerivedMetricSchema',
'OutputConfigSchema',
'OutputFileExtension',
'ScenarioSchema',
'TestCaseSchema',
'TestCaseWithVarsFileSchema',
'TestCasesWithMetadataPromptSchema',
'TestCasesWithMetadataSchema',
'TestSuiteConfigSchema',
'TestSuiteSchema',
'UnifiedConfigSchema',
'VarsSchema',
];
it('should export all expected named modules', () => {
expectedNamedExports.forEach((exportName) => {
expect(index).toHaveProperty(exportName);
});
});
it('should export all expected schemas', () => {
expectedSchemaExports.forEach((exportName) => {
expect(index).toHaveProperty(exportName);
});
});
it('should not have unexpected exports', () => {
const actualExports = Object.keys(index)
.filter((key) => key !== 'default')
.sort();
const expectedExports = [...expectedNamedExports, ...expectedSchemaExports].sort();
expect(actualExports).toHaveLength(expectedExports.length);
expect(actualExports).toEqual(expectedExports);
});
it('redteam should have expected properties', () => {
expect(index.redteam).toEqual(
expect.objectContaining({
Extractors: expect.objectContaining({
extractEntities: expect.anything(),
extractSystemPurpose: expect.anything(),
}),
Plugins: expect.anything(),
Strategies: expect.anything(),
}),
);
});
it('default export should match named exports', () => {
expect(index.default).toEqual({
assertions: index.assertions,
cache: index.cache,
evaluate: index.evaluate,
providers: index.providers,
redteam: index.redteam,
});
});
});