Skip to content

Commit 126b87d

Browse files
committed
fix isKeyed test
1 parent f5d3ff7 commit 126b87d

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

webdriver-ts/src/isKeyed.ts

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ import {
1818
setButtonsInShadowRoot,
1919
} from "./webdriverAccess";
2020
import { config, FrameworkData, initializeFrameworks, BenchmarkOptions } from "./common";
21-
import { WebDriver, By, WebElement } from "selenium-webdriver";
21+
import { WebDriver, By, WebElement, logging } from "selenium-webdriver";
22+
2223
import * as R from "ramda";
2324
import { valid } from "semver";
2425

@@ -38,7 +39,7 @@ console.log("args.framework", args.framework, !args.framework);
3839
// necessary to launch without specifiying a path
3940
var chromedriver: any = require("chromedriver");
4041

41-
let init = `
42+
let init = (shadowRootName: string) => `
4243
window.nonKeyedDetector_reset = function() {
4344
window.nonKeyedDetector_tradded = [];
4445
window.nonKeyedDetector_trremoved = [];
@@ -104,16 +105,20 @@ window.nonKeyedDetector_instrument = function() {
104105
return true;
105106
}
106107
window.nonKeyedDetector_result = function() {
107-
return {tradded: nonKeyedDetector_tradded.length, trremoved: nonKeyedDetector_trremoved.length, removedStoredTr: nonKeyedDetector_removedStoredTr.length, newNodes: countDiff(window.nonKeyedDetector_tradded, window.nonKeyedDetector_trremoved),
108-
traddedDebug: JSON.stringify(nonKeyedDetector_tradded.map(d => d.innerHTML))};
108+
return {tradded: nonKeyedDetector_tradded.length, trremoved: nonKeyedDetector_trremoved.length, removedStoredTr: nonKeyedDetector_trremoved.indexOf(window.storedTr)>-1, newNodes: countDiff(window.nonKeyedDetector_tradded, window.nonKeyedDetector_trremoved),
109+
// storedTr_debug: window.storedTr.innerText, trremoved_debug: nonKeyedDetector_trremoved.map(t => t.innerText).join(","),
110+
// traddedDebug: JSON.stringify(nonKeyedDetector_tradded.map(d => d.innerHTML))
111+
};
109112
}
110113
window.nonKeyedDetector_storeTr = function() {
111114
let node = document;
112115
if (window.nonKeyedDetector_shadowRoot) {
113-
let main = document.querySelector("main-element");
116+
let main = document.querySelector('${shadowRootName}');
114117
if (main) node = main.shadowRoot;
115118
}
116-
window.storedTr = node.querySelector('tr:nth-child(2)');
119+
// Workaround: alpine adds a template with a tr inside the tbody. tr:nth-child(1) seems to be the tr from the template and returns null here.
120+
let index = node.querySelector('tr:nth-child(1)') ? 2 : 3;
121+
window.storedTr = node.querySelector('tr:nth-child('+index+')');
117122
}
118123
window.nonKeyedDetector_reset();
119124
`;
@@ -132,9 +137,9 @@ function isKeyedRun(result: any, shouldBeKeyed: boolean): boolean {
132137
return r;
133138
}
134139
function isKeyedRemove(result: any, shouldBeKeyed: boolean): boolean {
135-
let r = result.removedStoredTr > 0;
140+
let r = result.removedStoredTr;
136141
if (r && !shouldBeKeyed) {
137-
console.log(`Non-keyed test for remove failed. Expected that the dom node for the 2nd row would NOT be removed, but it was.`);
142+
console.log(`Note: Non-keyed test for remove is acutally keyed. Expected that the dom node for the 2nd row would NOT be removed, but it was.`);
138143
} else if (!r && shouldBeKeyed) {
139144
console.log(`Keyed test for remove failed. Expected that the dom node for the 2nd row would be removed, but it wasn't`);
140145
}
@@ -268,7 +273,7 @@ async function runBench(frameworkNames: string[]) {
268273
allCorrect = false;
269274
}
270275

271-
await driver.executeScript(init);
276+
await driver.executeScript(init(framework.shadowRootName));
272277
if (framework.useShadowRoot) {
273278
await driver.executeScript(`window.nonKeyedDetector_setUseShadowDom("${framework.shadowRootName}");`);
274279
} else {

0 commit comments

Comments
 (0)