run-spec-tests.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { Marked } from '../lib/marked.esm.js';
  2. import { getTests, runTests, outputCompletionTable } from '@markedjs/testutils';
  3. import { resolve, dirname } from 'node:path';
  4. import { fileURLToPath } from 'node:url';
  5. function parse(markdown, options) {
  6. const marked = new Marked(options);
  7. return marked.parse(markdown);
  8. }
  9. const __dirname = dirname(fileURLToPath(import.meta.url));
  10. const [commonMarkTests, gfmTests, newTests, originalTests, redosTests] =
  11. await getTests([
  12. resolve(__dirname, './specs/commonmark'),
  13. resolve(__dirname, './specs/gfm'),
  14. resolve(__dirname, './specs/new'),
  15. resolve(__dirname, './specs/original'),
  16. resolve(__dirname, './specs/redos'),
  17. ]);
  18. outputCompletionTable('CommonMark', commonMarkTests);
  19. runTests({
  20. tests: commonMarkTests,
  21. parse,
  22. defaultMarkedOptions: { gfm: false, pedantic: false },
  23. });
  24. outputCompletionTable('GFM', gfmTests);
  25. runTests({
  26. tests: gfmTests,
  27. parse,
  28. defaultMarkedOptions: { gfm: true, pedantic: false },
  29. });
  30. runTests({
  31. tests: newTests,
  32. parse,
  33. });
  34. runTests({
  35. tests: originalTests,
  36. parse,
  37. defaultMarkedOptions: { gfm: false, pedantic: true },
  38. });
  39. runTests({
  40. tests: redosTests,
  41. parse,
  42. });