variables.test.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import { parseHTML } from 'linkedom';
  2. import { loadFixture } from '../../../astro/test/test-utils.js';
  3. import markdoc from '../dist/index.js';
  4. import assert from 'node:assert/strict';
  5. import { after, before, describe, it } from 'node:test';
  6. const root = new URL('./fixtures/variables/', import.meta.url);
  7. describe('Markdoc - Variables', () => {
  8. let baseFixture;
  9. before(async () => {
  10. baseFixture = await loadFixture({
  11. root,
  12. integrations: [markdoc()],
  13. });
  14. });
  15. describe('dev', () => {
  16. let devServer;
  17. before(async () => {
  18. devServer = await baseFixture.startDevServer();
  19. });
  20. after(async () => {
  21. await devServer.stop();
  22. });
  23. it('has expected entry properties', async () => {
  24. const res = await baseFixture.fetch('/');
  25. const html = await res.text();
  26. const { document } = parseHTML(html);
  27. assert.equal(document.querySelector('h1')?.textContent, 'Processed by schema: Test entry');
  28. assert.equal(document.getElementById('id')?.textContent?.trim(), 'id: entry.mdoc');
  29. assert.equal(document.getElementById('slug')?.textContent?.trim(), 'slug: entry');
  30. assert.equal(document.getElementById('collection')?.textContent?.trim(), 'collection: blog');
  31. });
  32. });
  33. describe('build', () => {
  34. before(async () => {
  35. await baseFixture.build();
  36. });
  37. it('has expected entry properties', async () => {
  38. const html = await baseFixture.readFile('/index.html');
  39. const { document } = parseHTML(html);
  40. assert.equal(document.querySelector('h1')?.textContent, 'Processed by schema: Test entry');
  41. assert.equal(document.getElementById('id')?.textContent?.trim(), 'id: entry.mdoc');
  42. assert.equal(document.getElementById('slug')?.textContent?.trim(), 'slug: entry');
  43. assert.equal(document.getElementById('collection')?.textContent?.trim(), 'collection: blog');
  44. });
  45. });
  46. });