[ci] format

This commit is contained in:
bholmesdev 2022-08-01 21:25:50 +00:00 committed by fredkbot
parent 40ef43a59b
commit 10a8fa5dcd
4 changed files with 35 additions and 31 deletions

View file

@ -1,5 +1,4 @@
import { nodeTypes, compile as mdxCompile } from '@mdx-js/mdx'; import { compile as mdxCompile, nodeTypes } from '@mdx-js/mdx';
import { VFile } from 'vfile';
import mdxPlugin, { Options as MdxRollupPluginOptions } from '@mdx-js/rollup'; import mdxPlugin, { Options as MdxRollupPluginOptions } from '@mdx-js/rollup';
import type { AstroIntegration } from 'astro'; import type { AstroIntegration } from 'astro';
import { parse as parseESM } from 'es-module-lexer'; import { parse as parseESM } from 'es-module-lexer';
@ -10,10 +9,11 @@ import type { RemarkMdxFrontmatterOptions } from 'remark-mdx-frontmatter';
import remarkMdxFrontmatter from 'remark-mdx-frontmatter'; import remarkMdxFrontmatter from 'remark-mdx-frontmatter';
import remarkShikiTwoslash from 'remark-shiki-twoslash'; import remarkShikiTwoslash from 'remark-shiki-twoslash';
import remarkSmartypants from 'remark-smartypants'; import remarkSmartypants from 'remark-smartypants';
import { VFile } from 'vfile';
import type { Plugin as VitePlugin } from 'vite'; import type { Plugin as VitePlugin } from 'vite';
import rehypeCollectHeadings from './rehype-collect-headings.js';
import remarkPrism from './remark-prism.js'; import remarkPrism from './remark-prism.js';
import { getFileInfo, getFrontmatter } from './utils.js'; import { getFileInfo, getFrontmatter } from './utils.js';
import rehypeCollectHeadings from './rehype-collect-headings.js';
type WithExtends<T> = T | { extends: T }; type WithExtends<T> = T | { extends: T };

View file

@ -1,7 +1,7 @@
import type { AstroConfig, SSRError } from 'astro';
import type { Options as AcornOpts } from 'acorn'; import type { Options as AcornOpts } from 'acorn';
import type { MdxjsEsm } from 'mdast-util-mdx';
import { parse } from 'acorn'; import { parse } from 'acorn';
import type { AstroConfig, SSRError } from 'astro';
import type { MdxjsEsm } from 'mdast-util-mdx';
import matter from 'gray-matter'; import matter from 'gray-matter';

View file

@ -20,8 +20,8 @@ describe('MDX getHeadings', () => {
const html = await fixture.readFile('/test/index.html'); const html = await fixture.readFile('/test/index.html');
const { document } = parseHTML(html); const { document } = parseHTML(html);
const h2Ids = document.querySelectorAll('h2').map(el => el?.id); const h2Ids = document.querySelectorAll('h2').map((el) => el?.id);
const h3Ids = document.querySelectorAll('h3').map(el => el?.id); const h3Ids = document.querySelectorAll('h3').map((el) => el?.id);
expect(document.querySelector('h1').id).to.equal('heading-test'); expect(document.querySelector('h1').id).to.equal('heading-test');
expect(h2Ids).to.contain('section-1'); expect(h2Ids).to.contain('section-1');
expect(h2Ids).to.contain('section-2'); expect(h2Ids).to.contain('section-2');
@ -32,25 +32,29 @@ describe('MDX getHeadings', () => {
it('generates correct getHeadings() export', async () => { it('generates correct getHeadings() export', async () => {
const { headingsByPage } = JSON.parse(await fixture.readFile('/pages.json')); const { headingsByPage } = JSON.parse(await fixture.readFile('/pages.json'));
// TODO: make this a snapshot test :) // TODO: make this a snapshot test :)
expect(JSON.stringify(headingsByPage['./test.mdx'])).to.equal(JSON.stringify([ expect(JSON.stringify(headingsByPage['./test.mdx'])).to.equal(
{ depth: 1, slug: 'heading-test', text: 'Heading test' }, JSON.stringify([
{ depth: 2, slug: 'section-1', text: 'Section 1' }, { depth: 1, slug: 'heading-test', text: 'Heading test' },
{ depth: 3, slug: 'subsection-1', text: 'Subsection 1' }, { depth: 2, slug: 'section-1', text: 'Section 1' },
{ depth: 3, slug: 'subsection-2', text: 'Subsection 2' }, { depth: 3, slug: 'subsection-1', text: 'Subsection 1' },
{ depth: 2, slug: 'section-2', text: 'Section 2' } { depth: 3, slug: 'subsection-2', text: 'Subsection 2' },
])); { depth: 2, slug: 'section-2', text: 'Section 2' },
])
);
}); });
it('generates correct getHeadings() export for JSX expressions', async () => { it('generates correct getHeadings() export for JSX expressions', async () => {
const { headingsByPage } = JSON.parse(await fixture.readFile('/pages.json')); const { headingsByPage } = JSON.parse(await fixture.readFile('/pages.json'));
expect(JSON.stringify(headingsByPage['./test-with-jsx-expressions.mdx'])).to.equal(JSON.stringify([ expect(JSON.stringify(headingsByPage['./test-with-jsx-expressions.mdx'])).to.equal(
{ JSON.stringify([
depth: 1, {
slug: 'heading-test-with-jsx-expressions', depth: 1,
text: 'Heading test with JSX expressions' slug: 'heading-test-with-jsx-expressions',
}, text: 'Heading test with JSX expressions',
{ depth: 2, slug: 'h2title', text: 'h2Title' }, },
{ depth: 3, slug: 'h3title', text: 'h3Title' } { depth: 2, slug: 'h2title', text: 'h2Title' },
])); { depth: 3, slug: 'h3title', text: 'h3Title' },
])
);
}); });
}); });

View file

@ -9,12 +9,12 @@ import { toString } from 'mdast-util-to-string';
import { loadFixture } from '../../../astro/test/test-utils.js'; import { loadFixture } from '../../../astro/test/test-utils.js';
export function rehypeReadingTime() { export function rehypeReadingTime() {
return function (tree) { return function (tree) {
const readingTime = getReadingTime(toString(tree)) const readingTime = getReadingTime(toString(tree));
tree.children.unshift( tree.children.unshift(
jsToTreeNode(`export const readingTime = ${JSON.stringify(readingTime)}`) jsToTreeNode(`export const readingTime = ${JSON.stringify(readingTime)}`)
) );
}; };
} }
const FIXTURE_ROOT = new URL('./fixtures/mdx-rehype-plugins/', import.meta.url); const FIXTURE_ROOT = new URL('./fixtures/mdx-rehype-plugins/', import.meta.url);
@ -37,7 +37,7 @@ describe('MDX rehype plugins', () => {
it('removes default getHeadings', async () => { it('removes default getHeadings', async () => {
const html = await fixture.readFile('/space-ipsum/index.html'); const html = await fixture.readFile('/space-ipsum/index.html');
const { document } = parseHTML(html); const { document } = parseHTML(html);
const headings = [...document.querySelectorAll('h1, h2')]; const headings = [...document.querySelectorAll('h1, h2')];
expect(headings.length).to.be.greaterThan(0); expect(headings.length).to.be.greaterThan(0);
for (const heading of headings) { for (const heading of headings) {
@ -47,7 +47,7 @@ describe('MDX rehype plugins', () => {
it('supports custom rehype plugins - reading time', async () => { it('supports custom rehype plugins - reading time', async () => {
const readingTime = JSON.parse(await fixture.readFile('/reading-time.json')); const readingTime = JSON.parse(await fixture.readFile('/reading-time.json'));
expect(readingTime).to.not.be.null; expect(readingTime).to.not.be.null;
expect(readingTime.text).to.match(/^\d+ min read/); expect(readingTime.text).to.match(/^\d+ min read/);
}); });
@ -70,7 +70,7 @@ describe('MDX rehype plugins', () => {
it('preserves default getHeadings', async () => { it('preserves default getHeadings', async () => {
const html = await fixture.readFile('/space-ipsum/index.html'); const html = await fixture.readFile('/space-ipsum/index.html');
const { document } = parseHTML(html); const { document } = parseHTML(html);
const headings = [...document.querySelectorAll('h1, h2')]; const headings = [...document.querySelectorAll('h1, h2')];
expect(headings.length).to.be.greaterThan(0); expect(headings.length).to.be.greaterThan(0);
for (const heading of headings) { for (const heading of headings) {