sauceReporter.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. const sauceReporter = (tape) => {
  2. const results = [];
  3. const start = new Date().getTime();
  4. let testStart = start;
  5. tape.createStream({ objectMode: true }).on('data', function (row) {
  6. if (row.type === 'assert') {
  7. const result = {
  8. name: row.name,
  9. result: row.ok,
  10. message: `Actual: ${ JSON.stringify(row.actual) }
  11. Expected: ${ JSON.stringify(row.expected) }`,
  12. duration: new Date().getTime() - testStart
  13. };
  14. testStart = new Date().getTime();
  15. results.push(result);
  16. }
  17. if (row.name === 'complete') {
  18. window.global_test_results = {
  19. tests: results,
  20. duration: new Date().getTime() - start,
  21. total: results.length,
  22. passed: results
  23. .filter(result => result.result)
  24. .reduce(previousValue => previousValue + 1, 0),
  25. failed: results
  26. .filter(result => !result.result)
  27. .reduce(previousValue => previousValue + 1, 0)
  28. };
  29. console.log(`Tests complete!
  30. ${ JSON.stringify(window.global_test_results) }`);
  31. }
  32. });
  33. };
  34. export default sauceReporter;