Path: blob/main/tests/smoke/project/project-simple.test.ts
12921 views
/*1* project-render.test.ts2*3* Copyright (C) 2020-2022 Posit Software, PBC4*5*/6import { existsSync } from "../../../src/deno_ral/fs.ts";7import { join } from "../../../src/deno_ral/path.ts";89import { Metadata } from "../../../src/config/types.ts";1011import { testQuartoCmd } from "../../test.ts";12import { docs } from "../../utils.ts";1314import {15fileExists,16hasSupportingFiles,17verifyYamlFile,18} from "../../verify.ts";1920import {21cleanWorking,22kProjectWorkingDir,23kQuartoProjectFile,24} from "./common.ts";2526// Simple project create27testQuartoCmd(28"create-project",29[kProjectWorkingDir],30[31fileExists(kQuartoProjectFile),32verifyYamlFile(33kQuartoProjectFile,34((yaml: unknown) => {35// Make sure there is a project yaml section36const metadata = yaml as Metadata;37return metadata.project !== undefined;38}),39),40],41{42setup: cleanWorking,43teardown: cleanWorking,44},45);4647// Simple project render48const expectedFiles = ["plain.qmd", "plain2.qmd"];49const verify = expectedFiles.flatMap((filename) => {50const input = join(docs("project/plain"), filename);51return [52fileExists(input),53hasSupportingFiles(input, "html"),54];55});56testQuartoCmd(57"render",58["docs/project/plain", "--to", "html"],59verify,60{61teardown: () => {62["plain.html", "plain2.html", "plain_files", "plain2_files"].forEach(63(file) => {64const path = join("docs/project/plain", file);65if (existsSync(path)) {66Deno.removeSync(path, { recursive: true });67}68},69);70return Promise.resolve();71},72},73);747576