utils.js 617 B

1234567891011121314151617181920212223242526272829303132
  1. import { before, beforeEach } from 'node:test';
  2. import { setStdout } from '../dist/index.js';
  3. import stripAnsi from 'strip-ansi';
  4. export function setup() {
  5. const ctx = { messages: [] };
  6. before(() => {
  7. setStdout(
  8. Object.assign({}, process.stdout, {
  9. write(buf) {
  10. ctx.messages.push(stripAnsi(String(buf)).trim());
  11. return true;
  12. },
  13. })
  14. );
  15. });
  16. beforeEach(() => {
  17. ctx.messages = [];
  18. });
  19. return {
  20. messages() {
  21. return ctx.messages;
  22. },
  23. length() {
  24. return ctx.messages.length;
  25. },
  26. hasMessage(content) {
  27. return !!ctx.messages.find((msg) => msg.includes(content));
  28. },
  29. };
  30. }