instance.test.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import { marked, Marked, Renderer } from '../../lib/marked.esm.js';
  2. import { describe, it } from 'node:test';
  3. import assert from 'node:assert';
  4. describe('Marked', () => {
  5. it('should allow multiple instances', () => {
  6. const marked1 = new Marked({
  7. silent: true,
  8. renderer: {
  9. heading() {
  10. return 'im marked1';
  11. }
  12. }
  13. });
  14. const marked2 = new Marked({
  15. silent: true,
  16. renderer: {
  17. heading() {
  18. return 'im marked2';
  19. }
  20. }
  21. });
  22. assert.strictEqual(marked1.parse('# header'), 'im marked1');
  23. assert.strictEqual(marked2.parse('# header'), 'im marked2');
  24. assert.strictEqual(marked.parse('# header'), '<h1>header</h1>\n');
  25. });
  26. it('should work with use', () => {
  27. const marked1 = new Marked();
  28. marked1.use({
  29. silent: true,
  30. renderer: {
  31. heading() {
  32. return 'im marked1';
  33. }
  34. }
  35. });
  36. const marked2 = new Marked();
  37. marked2.use({
  38. silent: true,
  39. renderer: {
  40. heading() {
  41. return 'im marked2';
  42. }
  43. }
  44. });
  45. assert.strictEqual(marked1.parse('# header'), 'im marked1');
  46. assert.strictEqual(marked2.parse('# header'), 'im marked2');
  47. assert.strictEqual(marked.parse('# header'), '<h1>header</h1>\n');
  48. });
  49. it('should work with setOptions', () => {
  50. const marked1 = new Marked();
  51. const marked1Renderer = new Renderer();
  52. marked1Renderer.heading = () => 'im marked1';
  53. marked1.setOptions({
  54. silent: true,
  55. renderer: marked1Renderer
  56. });
  57. const marked2 = new Marked();
  58. const marked2Renderer = new Renderer();
  59. marked2Renderer.heading = () => 'im marked2';
  60. marked2.setOptions({
  61. silent: true,
  62. renderer: marked2Renderer
  63. });
  64. assert.strictEqual(marked1.parse('# header'), 'im marked1');
  65. assert.strictEqual(marked2.parse('# header'), 'im marked2');
  66. assert.strictEqual(marked.parse('# header'), '<h1>header</h1>\n');
  67. });
  68. it('should pass defaults to lexer and parser', () => {
  69. const marked1 = new Marked();
  70. marked1.use({
  71. renderer: {
  72. heading() {
  73. return 'test';
  74. }
  75. }
  76. });
  77. const tokens = marked1.lexer('# hi');
  78. const html = marked1.parser(tokens);
  79. assert.strictEqual(html, 'test');
  80. });
  81. });