Files
Pagefind-pagefind/pagefind/integration_tests/multisite/multisite_base/pagefind-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

34 lines
1.2 KiB
YAML

name: Multisite Search > Pagefind skips an optional index that fails to load
steps:
- ref: ./background.toolproof.yml
- 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 pagefind = await import("/website_a/pagefind/pagefind.js");
await pagefind.mergeIndex("/website_c/pagefind/", { optional: true });
await pagefind.mergeIndex("/website_b/pagefind/");
let search = await pagefind.search("web");
let pages = await Promise.all(search.results.map(r => r.data()));
document.querySelector('[data-result]').innerText = pages.map(p =>
p.url).join(", ");
- step: In my browser, I evaluate {js}
js: >-
let val = await toolproof.querySelector("[data-result]");
toolproof.assert_eq(val.innerHTML, `/website_a/hello/,
/website_b/lorem/`);