Path: blob/main/tests/smoke/website/drafts.test.ts
12921 views
/*1* drafts.test.ts2*3* Copyright (C) 2020-2022 Posit Software, PBC4*5*/6import { docs } from "../../utils.ts";78import { join } from "../../../src/deno_ral/path.ts";9import { existsSync } from "../../../src/deno_ral/fs.ts";10import { testQuartoCmd } from "../../test.ts";11import { noErrorsOrWarnings } from "../../verify.ts";12import { hasContentLinksToDrafts,hasEnvelopeLinksToDrafts,draftPostHasContent,doesntHaveContentLinksToDrafts,doesntHaveEnvelopeLinksToDrafts,draftPostIsEmpty, searchDoesntHaveDraft, searchHasDraft, siteMapDoesntHaveDraft, siteMapHasDraft } from "./draft-utils.ts";1314// The test cases for default15const testCases = [16{17name: "No Drafts",18verify: [hasContentLinksToDrafts, hasEnvelopeLinksToDrafts, draftPostHasContent, searchHasDraft, siteMapHasDraft],19dir: docs("websites/drafts/no-drafts")20},21{22name: "Default Draft",23verify: [doesntHaveContentLinksToDrafts, doesntHaveEnvelopeLinksToDrafts, draftPostIsEmpty, searchDoesntHaveDraft, siteMapDoesntHaveDraft],24dir: docs("websites/drafts/drafts-default")25},26{27name: "Visible Draft",28verify: [hasContentLinksToDrafts, hasEnvelopeLinksToDrafts, draftPostHasContent, searchHasDraft, siteMapHasDraft],29dir: docs("websites/drafts/drafts-visible")30},31{32name: "Gone Draft",33verify: [doesntHaveContentLinksToDrafts, doesntHaveEnvelopeLinksToDrafts, draftPostIsEmpty, searchDoesntHaveDraft, siteMapDoesntHaveDraft],34dir: docs("websites/drafts/drafts-gone")35},36{37name: "Preprocessor Draft List",38verify: [doesntHaveContentLinksToDrafts, doesntHaveEnvelopeLinksToDrafts, draftPostIsEmpty, searchDoesntHaveDraft, siteMapDoesntHaveDraft],39dir: docs("websites/drafts/drafts-preprocessor")40}4142];4344// Run the command45for (const testCase of testCases) {46// Move to a working directory4748const dir = join(Deno.cwd(), testCase.dir);49const outDir = join(dir, "_site");5051testQuartoCmd(52"render",53[testCase.dir],54[noErrorsOrWarnings, ...testCase.verify.map((ver) => { return ver(outDir)})],55{56teardown: async () => {57if (existsSync(outDir)) {58await Deno.remove(outDir, { recursive: true });59}60},61},62);63}64656667