Path: blob/main/tests/smoke/extensions/extension-render-project.test.ts
12925 views
/*1* extension-render-project.test.ts2*3* Copyright (C) 2020-2022 Posit Software, PBC4*/56import { docs, projectOutputForInput } from "../../utils.ts";78import { basename, dirname, extname, join, relative } from "../../../src/deno_ral/path.ts";9import { ensureHtmlElements } from "../../verify.ts";10import { testQuartoCmd } from "../../test.ts";11import { noErrors } from "../../verify.ts";12import { existsSync } from "../../../src/deno_ral/fs.ts";1314const testRender = (15input: string,16includeSelectors: string[],17excludeSelectors: string[],18) => {19const output = projectOutputForInput(input);20const verifySel = ensureHtmlElements(21output.outputPath,22includeSelectors,23excludeSelectors,24);2526// Run the command27testQuartoCmd(28"render",29[input],30[noErrors, verifySel],31{32teardown: async () => {33const siteDir = dirname(output.supportPath);34if (existsSync(siteDir)) {35await Deno.remove(siteDir, { recursive: true });36}37},38},39);40};4142// The site root dir43const rootDir = docs("extensions/project/");4445// Render the home page and verify the output46// contains the extension shortcodes and filter elements47testRender(join(rootDir, "posts/welcome/index.qmd"), [48"a.lightbox",49"i.fa-solid.fa-anchor",50"i.fa-solid.fa-bacteria",51"i.fa-solid.fa-jet-fighter",52], []);5354// Render the welcome page (subdirectory) and verify the output55// contains the extension shortcodes and filter elements56const subdirInput = join(rootDir, "posts/welcome/index.qmd");57testRender(join(rootDir, "posts/welcome/index.qmd"), [58"a.lightbox",59"i.fa-solid.fa-anchor",60"i.fa-solid.fa-bacteria",61"i.fa-solid.fa-jet-fighter",62], []);636465