Skip to content

Commit df3b879

Browse files
committed
test for feature
1 parent 837f861 commit df3b879

File tree

6 files changed

+83
-8
lines changed

6 files changed

+83
-8
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/.quarto/
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
project:
2+
type: website
3+
4+
website:
5+
title: "merge-navbar-crumbs-configuration"
6+
navbar:
7+
left:
8+
- href: index.qmd
9+
text: Home
10+
- about.qmd
11+
sidebar:
12+
- contents:
13+
- section: "Level 1"
14+
contents:
15+
- text: "Level 2"
16+
href: index.qmd
17+
search:
18+
merge-navbar-crumbs: false
19+
format:
20+
html:
21+
theme:
22+
- cosmo
23+
- brand
24+
css: styles.css
25+
toc: true
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: "About"
3+
---
4+
5+
About this site
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
title: "merge-navbar-crumbs-configuration"
3+
---
4+
5+
This is a Quarto website.
6+
7+
To learn more about Quarto websites visit <https://quarto.org/docs/websites>.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/* css styles */

tests/smoke/project/project-website.test.ts

Lines changed: 44 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
/*
2-
* project-website.test.ts
3-
*
4-
* Copyright (C) 2020-2022 Posit Software, PBC
5-
*
6-
*/
2+
* project-website.test.ts
3+
*
4+
* Copyright (C) 2020-2022 Posit Software, PBC
5+
*/
76
import { existsSync } from "../../../src/deno_ral/fs.ts";
87
import { join } from "../../../src/deno_ral/path.ts";
98

109
import { Metadata } from "../../../src/config/types.ts";
1110

12-
import { testQuartoCmd, Verify } from "../../test.ts";
11+
import { ExecuteOutput, testQuartoCmd, Verify } from "../../test.ts";
1312
import { docs } from "../../utils.ts";
1413
import {
1514
directoryEmptyButFor,
@@ -22,6 +21,7 @@ import {
2221
kProjectWorkingDir,
2322
kQuartoProjectFile,
2423
} from "./common.ts";
24+
import { assert } from "testing/asserts";
2525

2626
// A website project
2727
testQuartoCmd(
@@ -32,7 +32,7 @@ testQuartoCmd(
3232
fileExists(join(kProjectWorkingDir, "index.qmd")),
3333
verifyYamlFile(
3434
kQuartoProjectFile,
35-
((yaml: unknown) => {
35+
(yaml: unknown) => {
3636
// Make sure there is a project yaml section
3737
const metadata = yaml as Metadata;
3838
if (
@@ -43,7 +43,7 @@ testQuartoCmd(
4343
} else {
4444
return false;
4545
}
46-
}),
46+
},
4747
),
4848
],
4949
{
@@ -86,3 +86,39 @@ testQuartoCmd(
8686
},
8787
},
8888
);
89+
90+
const mergeNavbarCrumbsConfigSite = docs(
91+
"websites/search/merge-navbar-crumbs-configuration",
92+
);
93+
const mergeNavbarCrumbsConfigSiteOutDir = join(mergeNavbarCrumbsConfigSite, outDir);
94+
testQuartoCmd(
95+
"render",
96+
[mergeNavbarCrumbsConfigSite],
97+
[
98+
{
99+
name: "verify-no-navbar-crumbs-in-searchjson",
100+
verify: async (outputs: ExecuteOutput[]) => {
101+
// Verify that the search.json file does not contain any navbar breadcrumbs
102+
const searchJson = join(mergeNavbarCrumbsConfigSite, "_site", "search.json");
103+
const searchJsonExists = existsSync(searchJson);
104+
if (!searchJsonExists) {
105+
throw new Error(`File ${searchJson} does not exist`);
106+
}
107+
const searchJsonContent = await Deno.readTextFile(searchJson);
108+
const json = JSON.parse(searchJsonContent);
109+
for (const entry of json) {
110+
if (entry.crumbs) {
111+
assert(entry.crumbs[0] !== "Home");
112+
}
113+
}
114+
},
115+
},
116+
],
117+
{
118+
teardown: async () => {
119+
if (existsSync(mergeNavbarCrumbsConfigSiteOutDir)) {
120+
await Deno.remove(mergeNavbarCrumbsConfigSiteOutDir, { recursive: true });
121+
}
122+
},
123+
},
124+
);

0 commit comments

Comments
 (0)