summaryrefslogtreecommitdiff
path: root/packages/integrations/markdoc/test/render.test.js
diff options
context:
space:
mode:
authorGravatar Ben Holmes <hey@bholmes.dev> 2024-04-03 16:48:53 -0400
committerGravatar GitHub <noreply@github.com> 2024-04-03 16:48:53 -0400
commit90cfade88c2b9a34d8a5fe711ce329732d690409 (patch)
treeb76d0de544c8aebf0a8051aed6cb615af964295f /packages/integrations/markdoc/test/render.test.js
parent8ca8943ce2c10f06c90398f10c583002cd9a6bee (diff)
downloadastro-90cfade88c2b9a34d8a5fe711ce329732d690409.tar.gz
astro-90cfade88c2b9a34d8a5fe711ce329732d690409.tar.zst
astro-90cfade88c2b9a34d8a5fe711ce329732d690409.zip
feat: automatic Markdoc partial resolution (#10649)
* wip: react counter example * feat: resolve markdoc partials by file path * test: components within partials * test: html within partial * chore: changeset * fix: respect user configured partials * test: basic partials * chore: lock * chore: fix lock * chore: minor -> patch * fix: use --parallel for dev server timeout error * refactor: move component tests to separate file * fix: build indent fixture * fix: check before addWatchFile * refactor: rootRelative -> relativePartial * deps: use workspace react integration * refactor: split test files by fixture * refactor: switch to preact to avoid react prod build error * feat: use vite pluginContext * fix: handle missing ./ * chore: bump timeout
Diffstat (limited to 'packages/integrations/markdoc/test/render.test.js')
-rw-r--r--packages/integrations/markdoc/test/render.test.js85
1 files changed, 19 insertions, 66 deletions
diff --git a/packages/integrations/markdoc/test/render.test.js b/packages/integrations/markdoc/test/render.test.js
index 0960a980c..d439adcd2 100644
--- a/packages/integrations/markdoc/test/render.test.js
+++ b/packages/integrations/markdoc/test/render.test.js
@@ -23,38 +23,26 @@ describe('Markdoc - render', () => {
await server.stop();
});
- it('renders content - with config', async () => {
- const fixture = await getFixture('render-with-config');
+ it('renders content - with partials', async () => {
+ const fixture = await getFixture('render-partials');
const server = await fixture.startDevServer();
const res = await fixture.fetch('/');
const html = await res.text();
- renderConfigChecks(html);
+ renderPartialsChecks(html);
await server.stop();
});
- it('renders content - with components', async () => {
- const fixture = await getFixture('render-with-components');
- const server = await fixture.startDevServer();
-
- const res = await fixture.fetch('/');
- const html = await res.text();
-
- renderComponentsChecks(html);
-
- await server.stop();
- });
-
- it('renders content - with indented components', async () => {
- const fixture = await getFixture('render-with-indented-components');
+ it('renders content - with config', async () => {
+ const fixture = await getFixture('render-with-config');
const server = await fixture.startDevServer();
const res = await fixture.fetch('/');
const html = await res.text();
- renderIndentedComponentsChecks(html);
+ renderConfigChecks(html);
await server.stop();
});
@@ -94,31 +82,22 @@ describe('Markdoc - render', () => {
renderSimpleChecks(html);
});
- it('renders content - with config', async () => {
- const fixture = await getFixture('render-with-config');
- await fixture.build();
-
- const html = await fixture.readFile('/index.html');
-
- renderConfigChecks(html);
- });
-
- it('renders content - with components', async () => {
- const fixture = await getFixture('render-with-components');
+ it('renders content - with partials', async () => {
+ const fixture = await getFixture('render-partials');
await fixture.build();
const html = await fixture.readFile('/index.html');
- renderComponentsChecks(html);
+ renderPartialsChecks(html);
});
- it('renders content - with indented components', async () => {
- const fixture = await getFixture('render-with-indented-components');
+ it('renders content - with config', async () => {
+ const fixture = await getFixture('render-with-config');
await fixture.build();
const html = await fixture.readFile('/index.html');
- renderIndentedComponentsChecks(html);
+ renderConfigChecks(html);
});
it('renders content - with `render: null` in document', async () => {
@@ -152,40 +131,14 @@ function renderNullChecks(html) {
}
/** @param {string} html */
-function renderComponentsChecks(html) {
+function renderPartialsChecks(html) {
const { document } = parseHTML(html);
- const h2 = document.querySelector('h2');
- assert.equal(h2.textContent, 'Post with components');
-
- // Renders custom shortcode component
- const marquee = document.querySelector('marquee');
- assert.notEqual(marquee, null);
- assert.equal(marquee.hasAttribute('data-custom-marquee'), true);
-
- // Renders Astro Code component
- const pre = document.querySelector('pre');
- assert.notEqual(pre, null);
- assert.equal(pre.className, 'astro-code github-dark');
-}
-
-/** @param {string} html */
-function renderIndentedComponentsChecks(html) {
- const { document } = parseHTML(html);
- const h2 = document.querySelector('h2');
- assert.equal(h2.textContent, 'Post with indented components');
-
- // Renders custom shortcode components
- const marquees = document.querySelectorAll('marquee');
- assert.equal(marquees.length, 2);
-
- // Renders h3
- const h3 = document.querySelector('h3');
- assert.equal(h3.textContent, 'I am an h3!');
-
- // Renders Astro Code component
- const pre = document.querySelector('pre');
- assert.notEqual(pre, null);
- assert.equal(pre.className, 'astro-code github-dark');
+ const top = document.querySelector('#top');
+ assert.ok(top);
+ const nested = document.querySelector('#nested');
+ assert.ok(nested);
+ const configured = document.querySelector('#configured');
+ assert.ok(configured);
}
/** @param {string} html */