dodex-vertx
Version:
A java asynchronous server for Dodex and Dodex-mess
90 lines (80 loc) • 3.43 kB
JavaScript
import ToolsSM from "../js/utils/tools.sm";
import popper from "@popperjs/core";
export default function (Tools, Helpers, React, timer) {
/*
* Test that new data are loaded when the select value changes.
*/
describe("Load new tools page", function () {
let tools;
let beforeValue;
let afterValue;
let spyToolsEvent;
let selectorObject;
let selectorItem;
let defaultReduxValue;
let newReduxValue;
beforeAll(done => {
$("#dropdown1").remove();
if(!window.main) {
const container = document.getElementById("main_container");
window.main = createRoot(container);
}
window.main.render(
<Tools />
);
const numbers = timer(50, 50);
const observable = numbers.subscribe(timer => {
if ($("#tools").length > 0 || timer === 25) {
tools = $("#tools");
beforeValue = tools.find("tbody").find("tr:nth-child(1)").find("td:nth-child(2)").text();
defaultReduxValue = $("#tools-state").text().split(" ", 1);
selectorObject = $("#dropdown0");
selectorObject = document.activeElement;
selectorObject.click();
selectorItem = $("#dropdown1 a")[1];
// spyToolsEvent = spyOnEvent(selectorItem, "select");
selectorItem.click();
Helpers.fireEvent(selectorItem, "select");
observable.unsubscribe();
done();
}
});
}, 3000);
it("setup and click events executed.", done => {
const numbers = timer(100, 50);
const observable = numbers.subscribe(timer => {
afterValue = tools.find("tbody").find("tr:nth-child(1)").find("td:nth-child(2)").text();
if (afterValue !== beforeValue || timer === 100) {
newReduxValue = $("#tools-state").text().split(" ", 1);
observable.unsubscribe();
done();
}
});
// jasmine-jquery matchers - no longer work with karma-jasmine/karma-jquery
// expect("select").toHaveBeenTriggeredOn(selectorItem);
// expect(spyToolsEvent).toHaveBeenTriggered();
expect(tools[0]).toBeInDOM();
expect(".disabled").toBeDisabled();
expect("#dropdown1 a").toHaveLength(3);
// Required for Firefox
selectorObject[0] = document.activeElement;
expect(selectorObject).toBeFocused();
});
it("did Redux set default value.", () => {
expect(defaultReduxValue[0]).toBe("Combined");
});
it("new page loaded on change.", () =>{
expect(beforeValue).not.toBe(afterValue);
});
it("did Redux set new value.", () => {
expect(newReduxValue[0]).toBe("Category1");
});
it("verify state management", () => {
const items = ToolsSM.getStore().getState().tools.items;
expect(items.length).toBe(2);
expect(items[0].displayed).toBe(false);
expect(items[1].displayed).toBe(true);
expect(items[1].message).toBe("Category1");
});
});
}