forked from TheOdinProject/javascript-exercises
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwriteExerciseSpec.js
35 lines (27 loc) · 1.07 KB
/
writeExerciseSpec.js
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
const { writeFile } = require("fs/promises");
const { join } = require("path");
const { splitDirectoryName } = require("./helpers");
async function writeExerciseSpec(exercisePath) {
const { exerciseName } = splitDirectoryName(exercisePath);
const isSolutionFile = exercisePath.includes("/solution");
const trueExerciseName = isSolutionFile
? `${exerciseName}-solution`
: exerciseName;
const exerciseSpecContent = `const ${exerciseName} = require('./${trueExerciseName}');
describe('${exerciseName}', () => {
test('First test description', () => {
// Replace this comment with any other necessary code, and update the expect line as necessary
expect(${exerciseName}()).toBe('');
});
test${isSolutionFile ? "" : ".skip"}('Second test description', () => {
// Replace this comment with any other necessary code, and update the expect line as necessary
expect(${exerciseName}()).toBe('');
});
});
`;
await writeFile(
join(exercisePath, `${trueExerciseName}.spec.js`),
exerciseSpecContent
);
}
module.exports = { writeExerciseSpec };