works perfectly when props.code updates unless it updates as a result of the page changing via react router, then it includes extra junk before the correct output.
testOutput.tsx:
const runTest = (code: string) => {
setResult([]);
let t = props.currentChallenge.expectedOutputs.map((x) => {
const d = x.in.length === 1 ? x.in[0] : x.in[0] + "," + x.in[1];
const str =
code +
" " +
props.currentChallenge.functionName +
"(" +
d +
")";
evaluate(str).then((s) => {
let passed = true;
if (s != x.out) passed = false;
let message = "Expected " + x.out + " got " + s;
if (passed) message += " Passed!n";
else message += " Failed!n";
setResult((e) => [...e, message]);
});
});
};
useEffect(() => {
runTest(props.code);
}, [props]);
https://github.com/jbud/DevOps-Coding-Challenges
2