Files
Pagefind-pagefind/pagefind/integration_tests/multisite/multisite_base/pagefind-ui-skips-an-optional-index-that-fails-to-load.toolproof.yml
T
dualfroz b572112ae7 Allow merged indexes to be marked optional
A merged index that failed to load made mergeIndex throw, and the
failed instance stayed in the list, so search stopped working for
every index. Indexes passed with `optional: true` are now dropped
with a warning when they fail to load, and search runs over the
indexes that did load.

Fixes #887
2026-10-03 01:37:54 +02:00

43 lines
1.6 KiB
YAML

name: Multisite Search > Pagefind UI skips an optional index that fails to load
steps:
- ref: ./background.toolproof.yml
- step: I have a "root/index.html" file with the content {html}
html: |-
<!DOCTYPE html><html lang="en"><head></head><body><div id="search"></div>
<script src="/website_a/pagefind/pagefind-ui.js"></script></body></html>
- macro: I run Pagefind with "--site root/website_a"
- step: stdout should contain "Running Pagefind"
- step: The file "root/website_a/pagefind/pagefind.js" should not be empty
- macro: I run Pagefind with "--site root/website_b"
- step: stdout should contain "Running Pagefind"
- step: The file "root/website_b/pagefind/pagefind.js" should not be empty
- step: I serve the directory "root"
- step: In my browser, I load "/"
- step: In my browser, I evaluate {js}
js: |-
let pui = new PagefindUI({
element: "#search",
mergeIndex: [{
bundlePath: "/website_c/pagefind/",
optional: true
}, {
bundlePath: "/website_b/pagefind/"
}]
});
pui.triggerSearch("web");
- step: In my browser, I evaluate {js}
js: >-
let val = await
toolproof.querySelector(".pagefind-ui__result:nth-of-type(1)
.pagefind-ui__result-link");
toolproof.assert_eq(val.innerHTML, `web web world web
PAGEFIND_ROOT_SELECTOR`);
- step: In my browser, I evaluate {js}
js: >-
let val = await
toolproof.querySelector(".pagefind-ui__result:nth-of-type(2)
.pagefind-ui__result-link");
toolproof.assert_eq(val.innerHTML, `web ipsum`);