mirror of https://github.com/01-edu/public.git
js: test runner for inline mode now also output the full tested code
This commit is contained in:
parent
25f4cf4e6f
commit
3a7568aa9f
|
@ -111,15 +111,27 @@ const runInlineTests = async ({ json, name }) => {
|
|||
const solution = await loadAndSanitizeSolution(name)
|
||||
for (const { description, code } of JSON.parse(json)) {
|
||||
logs.length = 0
|
||||
const [provided, tests] = code.includes('// Your code')
|
||||
? code.split('// Your code')
|
||||
: ['', code]
|
||||
|
||||
const fullCode = `
|
||||
${provided ? '// Provided setup' : ''}
|
||||
${provided.trim()}
|
||||
|
||||
// Your code
|
||||
${solution.code.trim()}
|
||||
|
||||
// The tests
|
||||
${tests.trim()}`.trim()
|
||||
|
||||
try {
|
||||
eval(
|
||||
code.includes('// Your code')
|
||||
? code.replace('// Your code', solution.code)
|
||||
: `${solution.code}\n\n${code}`,
|
||||
)
|
||||
console.info(`${description}:`, '\u001b[32mPASS\u001b[0m')
|
||||
eval(fullCode)
|
||||
console.info(`${description}:`, 'PASS')
|
||||
} catch (err) {
|
||||
console.info(`${description}:`, '\u001b[31mFAIL\u001b[0m')
|
||||
console.info(`${description}:`, 'FAIL')
|
||||
console.info(`\n======= Code ======= \n${fullCode}`)
|
||||
console.info('\n======= Error ======')
|
||||
die(' ->', err.message)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue