Skip to content

Commit

Permalink
web: Clean up utils.ts optional args a bit
Browse files Browse the repository at this point in the history
  • Loading branch information
Dinnerbone committed May 28, 2024
1 parent 885c443 commit de36fc2
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 38 deletions.
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { jsApiBefore, getTraceOutput } from "../../utils.js";
import { loadJsAPI, getTraceOutput } from "../../utils.js";
import { use, expect } from "chai";
import chaiHtml from "chai-html";
import { Key } from "webdriverio";

use(chaiHtml);

describe("Key up and down events work", () => {
jsApiBefore("/test/integration_tests/keyboard_input/test.swf");
loadJsAPI("/test/integration_tests/keyboard_input/test.swf");

it("'a' key is recognised", async () => {
const player = await browser.$("<ruffle-player>");
Expand Down
4 changes: 2 additions & 2 deletions web/packages/selfhosted/test/js_api/load.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { jsApiBefore, playAndMonitor } from "../utils.js";
import { loadJsAPI, playAndMonitor } from "../utils.js";
import { use } from "chai";
import chaiHtml from "chai-html";
import { RufflePlayer } from "ruffle-core";

use(chaiHtml);

describe("RufflePlayer.load", () => {
jsApiBefore();
loadJsAPI();

it("loads and plays a URL", async () => {
const player = await browser.$("<ruffle-player>");
Expand Down
4 changes: 2 additions & 2 deletions web/packages/selfhosted/test/js_api/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { jsApiBefore } from "../utils.js";
import { loadJsAPI } from "../utils.js";
import { expect, use } from "chai";
import chaiHtml from "chai-html";
import { RufflePlayer } from "ruffle-core";

use(chaiHtml);

describe("RufflePlayer.metadata", () => {
jsApiBefore("/test_assets/example.swf");
loadJsAPI("/test_assets/example.swf");

it("has metadata after load", async () => {
const player = await browser.$("<ruffle-player>");
Expand Down
45 changes: 13 additions & 32 deletions web/packages/selfhosted/test/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ declare module "ruffle-core" {
}
}

async function isRuffleLoaded(browser: WebdriverIO.Browser) {
export async function isRuffleLoaded(browser: WebdriverIO.Browser) {
return await browser.execute(
() =>
window !== undefined &&
Expand All @@ -23,14 +23,14 @@ async function isRuffleLoaded(browser: WebdriverIO.Browser) {
);
}

async function waitForRuffle(browser: WebdriverIO.Browser) {
export async function waitForRuffle(browser: WebdriverIO.Browser) {
await browser.waitUntil(async () => await isRuffleLoaded(browser), {
timeoutMsg: "Expected Ruffle to load",
});
await throwIfError(browser);
}

async function setupErrorHandler(browser: WebdriverIO.Browser) {
export async function setupErrorHandler(browser: WebdriverIO.Browser) {
await browser.execute(() => {
window.ruffleErrors = [];
window.addEventListener("error", (error) => {
Expand All @@ -39,21 +39,21 @@ async function setupErrorHandler(browser: WebdriverIO.Browser) {
});
}

async function hasError(browser: WebdriverIO.Browser) {
export async function hasError(browser: WebdriverIO.Browser) {
return await browser.execute(
() => window.ruffleErrors && window.ruffleErrors.length > 0,
);
}

async function throwIfError(browser: WebdriverIO.Browser) {
export async function throwIfError(browser: WebdriverIO.Browser) {
return await browser.execute(() => {
if (window.ruffleErrors && window.ruffleErrors.length > 0) {
throw window.ruffleErrors[0];
}
});
}

async function injectRuffle(browser: WebdriverIO.Browser) {
export async function injectRuffle(browser: WebdriverIO.Browser) {
await setupErrorHandler(browser);
await browser.execute(() => {
const script = document.createElement("script");
Expand All @@ -64,10 +64,10 @@ async function injectRuffle(browser: WebdriverIO.Browser) {
await throwIfError(browser);
}

async function playAndMonitor(
export async function playAndMonitor(
browser: WebdriverIO.Browser,
player: WebdriverIO.Element,
expectedOutput: string | undefined = undefined,
expectedOutput: string = "Hello from Flash!\n",
) {
await throwIfError(browser);

Expand All @@ -92,15 +92,11 @@ async function playAndMonitor(
player.play();
}, player);

if (expectedOutput === undefined) {
expectedOutput = "Hello from Flash!\n";
}

const actualOutput = await getTraceOutput(browser, player);
expect(actualOutput).to.eql(expectedOutput);
}

async function getTraceOutput(
export async function getTraceOutput(
browser: WebdriverIO.Browser,
player: WebdriverIO.Element,
) {
Expand Down Expand Up @@ -129,27 +125,24 @@ async function getTraceOutput(
}, player);
}

async function injectRuffleAndWait(browser: WebdriverIO.Browser) {
export async function injectRuffleAndWait(browser: WebdriverIO.Browser) {
await injectRuffle(browser);
await waitForRuffle(browser);
}

async function openTest(
export async function openTest(
browser: WebdriverIO.Browser,
absoluteDir: string,
filename: string | undefined = undefined,
filename: string = "index.html",
) {
const dirname = path.basename(absoluteDir);
if (filename === undefined) {
filename = "index.html";
}
await browser.url(
`http://localhost:4567/test/polyfill/${dirname}/${filename}`,
);
}

/** Test set-up for JS API testing. */
function jsApiBefore(swf: string | undefined = undefined) {
export function loadJsAPI(swf?: string) {
let player = null;

before("Loads the test", async () => {
Expand Down Expand Up @@ -179,15 +172,3 @@ function jsApiBefore(swf: string | undefined = undefined) {
}
});
}

export {
isRuffleLoaded,
waitForRuffle,
playAndMonitor,
injectRuffle,
injectRuffleAndWait,
openTest,
setupErrorHandler,
jsApiBefore,
getTraceOutput,
};

0 comments on commit de36fc2

Please sign in to comment.