-
Notifications
You must be signed in to change notification settings - Fork 45
Expand file tree
/
Copy pathindex.test.mjs
More file actions
42 lines (36 loc) · 1.23 KB
/
index.test.mjs
File metadata and controls
42 lines (36 loc) · 1.23 KB
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
import assert from 'node:assert/strict';
import { describe, it } from 'node:test';
import semver from 'semver';
import { allGenerators } from '../index.mjs';
const validDependencies = [...Object.keys(allGenerators), 'ast'];
const generatorEntries = Object.entries(allGenerators);
describe('All Generators', () => {
it('should have keys matching their name property', () => {
generatorEntries.forEach(([key, generator]) => {
assert.equal(
key,
generator.name,
`Generator key "${key}" does not match its name property "${generator.name}"`
);
});
});
it('should have valid semver versions', () => {
generatorEntries.forEach(([key, generator]) => {
const isValid = semver.valid(generator.version);
assert.ok(
isValid,
`Generator "${key}" has invalid semver version: "${generator.version}"`
);
});
});
it('should have valid dependsOn references', () => {
generatorEntries.forEach(([key, generator]) => {
if (generator.dependsOn) {
assert.ok(
validDependencies.includes(generator.dependsOn),
`Generator "${key}" depends on "${generator.dependsOn}" which is not a valid generator or 'ast'`
);
}
});
});
});