塔拉哈西岛

用无头浏览器测试您的客户端脚本 .
导言
支持一切一切众生.
示例
"use strict";
const Browser = require("@expressen/tallahassee");
const Script = require("@bonniernews/wichita");
const { app } = require("../app/app.js");
describe("Tallahassee", () => {
describe("navigateTo()", () => {
it("navigates to url", async () => {
await new Browser(app).navigateTo("/");
});
it("throws if not 200", async () => {
try {
await new Browser(app).navigateTo("/404");
} catch (e) {
var err = e; // eslint-disable-line no-var
}
expect(err).to.be.ok;
});
it("unless you override status code", async () => {
const browser = await new Browser(app).navigateTo("/404", null, 404);
expect(browser.document.getElementsByTagName("h1")[0].innerText).to.equal("Apocalyptic");
});
});
describe("run script", () => {
it("run es6 script sources with @bonniernews/wichita", async () => {
const browser = await new Browser(app).navigateTo("/", { cookie: "_ga=1" });
await new Script("./app/assets/scripts/main.js").run(browser.window);
expect(browser.document.cookie).to.equal("_ga=1");
expect(browser.document.getElementsByClassName("set-by-js")).to.have.length(1);
});
it("again", async () => {
const browser = await new Browser(app).navigateTo("/");
await new Script("./app/assets/scripts/main.js").run(browser.window);
expect(browser.document.cookie).to.equal("");
expect(browser.document.getElementsByClassName("set-by-js")).to.have.length(0);
});
});
});
外部脚本
我们建议你使用威奇塔 塔拉哈西帮手 网址:https://www.npmjs.com/package/@bonniernews/wichita
计时器
如果在窗口上超时,例如:. setTimeout 让他们同步会是一个好主意 因为它们经常重复出现.
示例
browser.window.setTimeout = function mySetTimeout(fn, ms, ...args) {
process.nextTick(fn, ...args);
};