Skip to content

Commit edf4f14

Browse files
committed
maint(pat navigation): Reduce timeout from 300ms to 1ms to wait for MutationObserver. Also partly simplify test code.
1 parent 276f3f2 commit edf4f14

File tree

1 file changed

+29
-43
lines changed

1 file changed

+29
-43
lines changed

src/pat/navigation/navigation.test.js

Lines changed: 29 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -189,57 +189,43 @@ describe("Navigation pattern tests", function () {
189189

190190
describe("Navigation pattern tests - no predefined structure", function () {
191191
it("Reacts on DOM change", async function () {
192-
var w1 = document.createElement("div");
193-
w1.setAttribute("class", "w1");
194-
195-
var a1 = document.createElement("a");
196-
a1.setAttribute("href", "/path/to");
197-
a1.setAttribute("class", "a1");
198-
a1.appendChild(document.createTextNode("link a1"));
199-
w1.appendChild(a1);
200-
201-
var w11 = document.createElement("div");
202-
w11.setAttribute("class", "w11");
203-
w1.appendChild(w11);
204-
205-
var a11 = document.createElement("a");
206-
a11.setAttribute("href", "/path/to/test");
207-
a11.setAttribute("class", "a11");
208-
a11.appendChild(document.createTextNode("link a11"));
209-
w11.appendChild(a11);
210-
211-
var injected_nav = document.createElement("div");
212-
injected_nav.setAttribute("id", "injected_nav");
213-
injected_nav.appendChild(w1);
214-
document.body.appendChild(injected_nav);
215-
216-
var load_nav = document.createElement("a");
217-
load_nav.setAttribute("href", "#injected_nav");
218-
load_nav.setAttribute("class", "pat-inject");
219-
load_nav.setAttribute("data-pat-inject", "target: #injection_target");
220-
load_nav.appendChild(document.createTextNode("load navigation"));
221-
document.body.appendChild(load_nav);
222-
223-
var nav = document.createElement("nav");
224-
nav.setAttribute("id", "injection_target");
225-
nav.setAttribute("class", "pat-navigation nav");
226-
nav.setAttribute("data-pat-navigation", "item-wrapper: div");
227-
document.body.appendChild(nav);
192+
document.body.innerHTML = `
193+
<div id="injected_nav">
194+
<div class="w1">
195+
<a href="/path/to" class="a1">link a1</a>
196+
<div class="w11">
197+
<a href="/path/to/test" class="a11">link a11</a>
198+
</div>
199+
</div>
200+
</div>
201+
<a
202+
href="#injected_nav"
203+
class="pat-inject load-nav"
204+
data-pat-inject="target: #injection_target">load navigation</a>
205+
<nav
206+
id="injection_target"
207+
class="pat-navigation nav"
208+
data-pat-navigation="item-wrapper: div">
209+
</nav>
210+
`;
228211

229212
// TODO: change when using Jest: https://remarkablemark.org/blog/2018/11/17/mock-window-location/
230213
history.pushState(null, "", "/path/to/test");
231214

232-
Registry.scan("body");
215+
Registry.scan(document.body);
233216

217+
const nav = document.querySelector("nav");
218+
const load_nav = document.querySelector(".load-nav");
234219
load_nav.click();
235220

236-
// wait for everything done until testing.
237-
await utils.timeout(300);
221+
await utils.timeout(1); // wait for MutationObserver
222+
223+
const w1 = nav.querySelector(".w1");
224+
const a1 = nav.querySelector(".a1");
225+
const w11 = nav.querySelector(".w11");
226+
const a11 = nav.querySelector(".a11");
238227

239-
w1 = nav.querySelector(".w1");
240-
a1 = nav.querySelector(".a1");
241-
w11 = nav.querySelector(".w11");
242-
a11 = nav.querySelector(".a11");
228+
console.log(document.body.innerHTML);
243229

244230
expect(w1.classList.contains("current")).toBeFalsy();
245231
expect(w1.classList.contains("navigation-in-path")).toBeTruthy();

0 commit comments

Comments
 (0)