run-tests.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. const { spawn } = require('child_process');
  2. const { kill } = require('cross-port-killer');
  3. const env = Object.create(process.env);
  4. env.BROWSER = 'none';
  5. env.TEST = true;
  6. // flag to prevent multiple test
  7. let once = false;
  8. const startServer = spawn(/^win/.test(process.platform) ? 'npm.cmd' : 'npm', ['start'], {
  9. env,
  10. });
  11. startServer.stderr.on('data', data => {
  12. // eslint-disable-next-line
  13. console.log(data.toString());
  14. });
  15. startServer.on('exit', () => {
  16. kill(process.env.PORT || 8000);
  17. });
  18. // eslint-disable-next-line
  19. console.log('Starting development server for e2e tests...');
  20. startServer.stdout.on('data', data => {
  21. // eslint-disable-next-line
  22. console.log(data.toString());
  23. if (!once && data.toString().indexOf('App running at') >= 0) {
  24. // eslint-disable-next-line
  25. once = true;
  26. console.log('Development server is started, ready to run tests.');
  27. const testCmd = spawn(/^win/.test(process.platform) ? 'npm.cmd' : 'npm', ['test'], {
  28. stdio: 'inherit',
  29. });
  30. testCmd.on('exit', code => {
  31. startServer.kill();
  32. process.exit(code);
  33. });
  34. }
  35. });