Skip to content

Commit 725f2b4

Browse files
committed
add generator validation
1 parent 7167716 commit 725f2b4

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import assert from 'node:assert/strict';
2+
import { describe, it } from 'node:test';
3+
4+
import semver from 'semver';
5+
6+
import { allGenerators } from '../index.mjs';
7+
8+
const validDependencies = [...Object.keys(allGenerators), 'ast'];
9+
const generatorEntries = Object.entries(allGenerators);
10+
11+
describe('All Generators', () => {
12+
it('should have keys matching their name property', () => {
13+
generatorEntries.forEach(([key, generator]) => {
14+
assert.equal(
15+
key,
16+
generator.name,
17+
`Generator key "${key}" does not match its name property "${generator.name}"`
18+
);
19+
});
20+
});
21+
22+
it('should have valid semver versions', () => {
23+
generatorEntries.forEach(([key, generator]) => {
24+
const isValid = semver.valid(generator.version);
25+
assert.ok(
26+
isValid,
27+
`Generator "${key}" has invalid semver version: "${generator.version}"`
28+
);
29+
});
30+
});
31+
32+
it('should have valid dependsOn references', () => {
33+
generatorEntries.forEach(([key, generator]) => {
34+
if (generator.dependsOn) {
35+
assert.ok(
36+
validDependencies.includes(generator.dependsOn),
37+
`Generator "${key}" depends on "${generator.dependsOn}" which is not a valid generator or 'ast'`
38+
);
39+
}
40+
});
41+
});
42+
});

0 commit comments

Comments
 (0)