mdx-optimize.test.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { describe, it, before } from 'node:test';
  2. import * as assert from 'node:assert/strict';
  3. import { parseHTML } from 'linkedom';
  4. import { loadFixture } from '../../../astro/test/test-utils.js';
  5. const FIXTURE_ROOT = new URL('./fixtures/mdx-optimize/', import.meta.url);
  6. describe('MDX optimize', () => {
  7. let fixture;
  8. before(async () => {
  9. fixture = await loadFixture({
  10. root: FIXTURE_ROOT,
  11. });
  12. await fixture.build();
  13. });
  14. it('renders an MDX page fine', async () => {
  15. const html = await fixture.readFile('/index.html');
  16. const { document } = parseHTML(html);
  17. assert.equal(document.querySelector('h1').textContent.includes('MDX page'), true);
  18. assert.equal(
  19. document.querySelector('p').textContent.includes('I once heard a very inspirational quote:'),
  20. true
  21. );
  22. const blockquote = document.querySelector('blockquote.custom-blockquote');
  23. assert.notEqual(blockquote, null);
  24. assert.equal(blockquote.textContent.includes('I like pancakes'), true);
  25. const code = document.querySelector('pre.astro-code');
  26. assert.notEqual(code, null);
  27. assert.equal(code.textContent.includes(`const pancakes = 'yummy'`), true);
  28. });
  29. it('renders an Astro page that imports MDX fine', async () => {
  30. const html = await fixture.readFile('/import/index.html');
  31. const { document } = parseHTML(html);
  32. assert.equal(document.querySelector('h1').textContent.includes('Astro page'), true);
  33. assert.equal(
  34. document.querySelector('p').textContent.includes('I once heard a very inspirational quote:'),
  35. true
  36. );
  37. const blockquote = document.querySelector('blockquote.custom-blockquote');
  38. assert.notEqual(blockquote, null);
  39. assert.equal(blockquote.textContent.includes('I like pancakes'), true);
  40. });
  41. });