How to write rest api with express for checking js code with jest?
import shell from 'shelljs'
import path from 'path'
export const checkTask = (req, res) => {
shell.touch('./task.test.js')
shell.ShellString(`const getSum = (a, b) => a + b\ntest('sum of 4 and 5 expected to be 9', () => { const data = getSum(4, 5); expect(data).toBe(9); })`).to('./task.test.js')
shell.exec('npm run test')
res.status(200).json({
'ok': true
})
}
It doesn't return anything, it just creates test file but doesn't run jest so i can't get results. No error messages in terminal
if i run separately like below it works
export const checkTask = (req, res) => {
shell.touch('./task.test.js')
shell.ShellString(`const getSum = (a, b) => a + b\ntest('sum of 4 and 5 expected to be 9', () => { const data = getSum(4, 5); expect(data).toBe(9); })`).to('./task.test.js')
res.status(200).json({
'ok': true
})
}
or like this with already created test file it also works
export const checkTask = (req, res) => {
shell.exec('npm run test')
res.status(200).json({
'ok': true
})
}
I solved this problem with shelljs
shell.touch(path)
shell.ShellString(`${req.body.solution}\n${req.body.tests}`).to('./task.test.js')
var child = shell.exec('npm run test', {async: true, silent: true})
child.stdout.on('data', () => { })