* test: add fixture * chore: remove unneeded files in fixture * test: update test mdx filfe * test: add test case * mark component as mdx * add error builder utility * throw error when it comes from an MDX component * chore: update lock file * Add comment to refactor later * apply review * add missing comma
40 lines
866 B
JavaScript
40 lines
866 B
JavaScript
import { expect } from "chai";
|
|
import { loadFixture } from "../../../astro/test/test-utils.js";
|
|
import mdx from "../dist/index.js";
|
|
|
|
const FIXTURE_ROOT = new URL(
|
|
"./fixtures/invalid-mdx-component/",
|
|
import.meta.url,
|
|
);
|
|
|
|
describe("MDX component with runtime error", () => {
|
|
let fixture;
|
|
|
|
before(async () => {
|
|
fixture = await loadFixture({
|
|
root: FIXTURE_ROOT,
|
|
integrations: [mdx()],
|
|
});
|
|
});
|
|
|
|
describe("build", () => {
|
|
/** @type {Error | null} */
|
|
let error;
|
|
|
|
before(async () => {
|
|
error = null;
|
|
try {
|
|
await fixture.build();
|
|
} catch (e) {
|
|
error = e;
|
|
}
|
|
});
|
|
|
|
it("Throws the right error", async () => {
|
|
expect(error).to.exist;
|
|
expect(error?.hint).to.match(
|
|
/This issue often occurs when your MDX component encounters runtime errors/,
|
|
);
|
|
});
|
|
});
|
|
});
|