@@ -6,29 +6,53 @@ cd ../../testrepo
66bold " Test: Clean succeeds when the module graph is invalid"
77
88rewatch clean > /dev/null 2>&1
9+ cp rescript.json rescript.json.clean-invalid.bak
10+
11+ restore_fixture () {
12+ rm -rf src/dupe-a src/dupe-b
13+ if [ -f rescript.json.clean-invalid.bak ]; then
14+ mv rescript.json.clean-invalid.bak rescript.json
15+ fi
16+ rewatch build > /dev/null 2>&1 || true
17+ }
18+ trap restore_fixture EXIT
19+
20+ node -e '
21+ const fs = require("fs");
22+ const path = process.argv[1];
23+ const config = JSON.parse(fs.readFileSync(path, "utf8"));
24+ config["package-specs"] = [
25+ {module: "esmodule", "in-source": true},
26+ {module: "esmodule", "in-source": false, suffix: ".out.mjs"},
27+ ];
28+ fs.writeFileSync(path, `${JSON.stringify(config, null, 2)}\n`);
29+ ' rescript.json
30+
931rewatch build > /dev/null 2>&1
1032
11- mkdir -p packages/main/src/dupe-a packages/main/src/dupe-b
12- echo ' let value = 1' > packages/main/src/dupe-a/DuplicateModule.res
13- echo ' let value = 2' > packages/main/src/dupe-b/DuplicateModule.res
33+ if [ ! -f src/Test.mjs ] || [ ! -f lib/es6/src/Test.out.mjs ]; then
34+ error " Test setup did not produce both in-source and out-of-source outputs"
35+ exit 1
36+ fi
37+
38+ mkdir -p src/dupe-a src/dupe-b
39+ echo ' let value = 1' > src/dupe-a/DuplicateModule.res
40+ echo ' let value = 2' > src/dupe-b/DuplicateModule.res
1441
1542error_output=$( rewatch clean 2>&1 )
1643clean_status=$?
1744
18- rm -rf packages/main/src/dupe-a packages/main/src/dupe-b
19-
2045if [ $clean_status -ne 0 ]; then
2146 error " Clean failed for an invalid module graph"
2247 printf " %s\n" " $error_output " >&2
23- rewatch build > /dev/null 2>&1
2448 exit 1
2549fi
2650
27- if [ -f packages/main/src/Main.bs.js ]; then
28- error " Clean left an in-source output behind"
29- rewatch build > /dev/null 2>&1
51+ if [ -f src/Test.mjs ] || [ -f lib/es6/src/Test.out.mjs ]; then
52+ error " Clean left a generated output behind"
3053 exit 1
3154fi
3255
33- rewatch build > /dev/null 2>&1
56+ restore_fixture
57+ trap - EXIT
3458success " Invalid module graph cleaned"
0 commit comments