Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
quarto-dev
GitHub Repository: quarto-dev/quarto-cli
Path: blob/main/tests/smoke/project/project-simple.test.ts
12921 views
1
/*
2
* project-render.test.ts
3
*
4
* Copyright (C) 2020-2022 Posit Software, PBC
5
*
6
*/
7
import { existsSync } from "../../../src/deno_ral/fs.ts";
8
import { join } from "../../../src/deno_ral/path.ts";
9
10
import { Metadata } from "../../../src/config/types.ts";
11
12
import { testQuartoCmd } from "../../test.ts";
13
import { docs } from "../../utils.ts";
14
15
import {
16
fileExists,
17
hasSupportingFiles,
18
verifyYamlFile,
19
} from "../../verify.ts";
20
21
import {
22
cleanWorking,
23
kProjectWorkingDir,
24
kQuartoProjectFile,
25
} from "./common.ts";
26
27
// Simple project create
28
testQuartoCmd(
29
"create-project",
30
[kProjectWorkingDir],
31
[
32
fileExists(kQuartoProjectFile),
33
verifyYamlFile(
34
kQuartoProjectFile,
35
((yaml: unknown) => {
36
// Make sure there is a project yaml section
37
const metadata = yaml as Metadata;
38
return metadata.project !== undefined;
39
}),
40
),
41
],
42
{
43
setup: cleanWorking,
44
teardown: cleanWorking,
45
},
46
);
47
48
// Simple project render
49
const expectedFiles = ["plain.qmd", "plain2.qmd"];
50
const verify = expectedFiles.flatMap((filename) => {
51
const input = join(docs("project/plain"), filename);
52
return [
53
fileExists(input),
54
hasSupportingFiles(input, "html"),
55
];
56
});
57
testQuartoCmd(
58
"render",
59
["docs/project/plain", "--to", "html"],
60
verify,
61
{
62
teardown: () => {
63
["plain.html", "plain2.html", "plain_files", "plain2_files"].forEach(
64
(file) => {
65
const path = join("docs/project/plain", file);
66
if (existsSync(path)) {
67
Deno.removeSync(path, { recursive: true });
68
}
69
},
70
);
71
return Promise.resolve();
72
},
73
},
74
);
75
76