Skip to content

Commit 7434589

Browse files
Test single exercise (#45)
* add test script that accepts `-- filename` * add command to test a single exercise * re-sync package.josn files
1 parent 4973a04 commit 7434589

30 files changed

Lines changed: 67 additions & 29 deletions

File tree

Makefile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ OUTDIR ?= "tmp"
77
# Define the files you want to ensure are synced across all exercises
88
FILES_TO_CHECK = package.json package-lock.json rescript.json .gitignore LICENSE
99

10+
# Camel to Pascal case utility
11+
TO_PASCAL = $(shell echo "$(1)" | sed -E 's/[-_]/ /g' | awk '{for(i=1;i<=NF;i++)sub(/./,toupper(substr($$i,1,1)),$$i)}1' | sed 's/ //g')
12+
1013
# check all exercise files that need to be in sync
1114
check-exercise-files:
1215
@for exercise in $(EXERCISES); do \
@@ -113,6 +116,12 @@ endif
113116
@node test_templates/$(PASCAL_EXERCISE)_template.res.js || exit 1
114117
npm run res:format-fix
115118

119+
# Test a single exercise - e.g. make test-one EXERCISE=eliuds-eggs
120+
test-one:
121+
$(MAKE) -s check-exercise-files
122+
$(MAKE) -s copy-all-exercises
123+
npm run test:only -- tmp/tests/$(call TO_PASCAL,$(EXERCISE))_test.res.js
124+
116125
test:
117126
$(MAKE) -s clean
118127
$(MAKE) -s check-exercise-files

exercises/practice/acronym/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
"res:start": "rescript build -w",
2121
"res:format-check": "rescript format --check",
2222
"res:format-fix": "rescript format",
23-
"test": "rescript && retest tests/*.js",
23+
"test": "rescript && retest tmp/tests/*.js",
24+
"test:only": "rescript && retest",
2425
"ci": "npm test"
2526
}
2627
}

exercises/practice/all-your-base/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
"res:start": "rescript build -w",
2121
"res:format-check": "rescript format --check",
2222
"res:format-fix": "rescript format",
23-
"test": "rescript && retest tests/*.js",
23+
"test": "rescript && retest tmp/tests/*.js",
24+
"test:only": "rescript && retest",
2425
"ci": "npm test"
2526
}
2627
}

exercises/practice/allergies/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
"res:start": "rescript build -w",
2121
"res:format-check": "rescript format --check",
2222
"res:format-fix": "rescript format",
23-
"test": "rescript && retest tests/*.js",
23+
"test": "rescript && retest tmp/tests/*.js",
24+
"test:only": "rescript && retest",
2425
"ci": "npm test"
2526
}
2627
}

exercises/practice/anagram/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
"res:start": "rescript build -w",
2121
"res:format-check": "rescript format --check",
2222
"res:format-fix": "rescript format",
23-
"test": "rescript && retest tests/*.js",
23+
"test": "rescript && retest tmp/tests/*.js",
24+
"test:only": "rescript && retest",
2425
"ci": "npm test"
2526
}
2627
}

exercises/practice/armstrong-numbers/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
"res:start": "rescript build -w",
2121
"res:format-check": "rescript format --check",
2222
"res:format-fix": "rescript format",
23-
"test": "rescript && retest tests/*.js",
23+
"test": "rescript && retest tmp/tests/*.js",
24+
"test:only": "rescript && retest",
2425
"ci": "npm test"
2526
}
2627
}

exercises/practice/atbash-cipher/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
"res:start": "rescript build -w",
2121
"res:format-check": "rescript format --check",
2222
"res:format-fix": "rescript format",
23-
"test": "rescript && retest tests/*.js",
23+
"test": "rescript && retest tmp/tests/*.js",
24+
"test:only": "rescript && retest",
2425
"ci": "npm test"
2526
}
2627
}

exercises/practice/binary-search/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
"res:start": "rescript build -w",
2121
"res:format-check": "rescript format --check",
2222
"res:format-fix": "rescript format",
23-
"test": "rescript && retest tests/*.js",
23+
"test": "rescript && retest tmp/tests/*.js",
24+
"test:only": "rescript && retest",
2425
"ci": "npm test"
2526
}
2627
}

exercises/practice/bob/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
"res:start": "rescript build -w",
2121
"res:format-check": "rescript format --check",
2222
"res:format-fix": "rescript format",
23-
"test": "rescript && retest tests/*.js",
23+
"test": "rescript && retest tmp/tests/*.js",
24+
"test:only": "rescript && retest",
2425
"ci": "npm test"
2526
}
2627
}

exercises/practice/change/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
"res:start": "rescript build -w",
2121
"res:format-check": "rescript format --check",
2222
"res:format-fix": "rescript format",
23-
"test": "rescript && retest tests/*.js",
23+
"test": "rescript && retest tmp/tests/*.js",
24+
"test:only": "rescript && retest",
2425
"ci": "npm test"
2526
}
2627
}

0 commit comments

Comments
 (0)