New Captcha Package added
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
import { expect, test } from "bun:test";
|
||||
import { readFile } from "node:fs/promises";
|
||||
import { join } from "node:path";
|
||||
|
||||
const packageRoot = join(import.meta.dir, "..");
|
||||
|
||||
test("Captcha browser runtime is valid JavaScript and exposes the expected lifecycle", async () => {
|
||||
const source = await readFile(join(packageRoot, "assets/client/captcha.js"), "utf8");
|
||||
|
||||
expect(() => new Function(source)).not.toThrow();
|
||||
expect(source).toContain("__wrnexusCaptchaRuntime");
|
||||
expect(source).toContain("createChallenge");
|
||||
expect(source).toContain("verify(state)");
|
||||
expect(source).toContain("mountExternal");
|
||||
expect(source).toContain("captchaDisturbance");
|
||||
expect(source).toContain("captchaImageStyle");
|
||||
expect(source).toContain("captchaAllowedStyles");
|
||||
expect(source).toContain("captchaExcludedStyles");
|
||||
expect(source).toContain("captchaRandomizeStyle");
|
||||
expect(source).toContain("captchaResolvedImageStyle");
|
||||
expect(source).toContain("captchaShowListen");
|
||||
expect(source).toContain("normalizeSize");
|
||||
expect(source).toContain("verifyNotRobot");
|
||||
expect(source).toContain("stopImmediatePropagation");
|
||||
expect(source).toContain('addEventListener("submit"');
|
||||
expect(source).toContain("MutationObserver");
|
||||
expect(source).toContain('new CustomEvent(name');
|
||||
});
|
||||
|
||||
test("Captcha component delegates native browser work to the packaged runtime", async () => {
|
||||
const source = await readFile(join(packageRoot, "components/Captcha.wrn"), "utf8");
|
||||
|
||||
expect(source).toContain('src="/assets/wrnexus/captcha.js"');
|
||||
expect(source).not.toContain('src="/__wrnexus/captcha.js"');
|
||||
expect(source).toContain("data-wrn-captcha");
|
||||
expect(source).toContain("data-captcha-response");
|
||||
expect(source).toContain("data-captcha-disturbance");
|
||||
expect(source).toContain("data-captcha-image-style");
|
||||
expect(source).toContain("data-captcha-allowed-styles");
|
||||
expect(source).toContain("data-captcha-excluded-styles");
|
||||
expect(source).toContain("data-captcha-randomize-style");
|
||||
expect(source).toContain("data-captcha-show-listen");
|
||||
expect(source).toContain("data-captcha-not-robot-button");
|
||||
expect(source).not.toContain("lifecycle {");
|
||||
expect(source).not.toContain("async function");
|
||||
expect(source).not.toContain("await ");
|
||||
expect(source).not.toContain("try {");
|
||||
expect(source).not.toContain("setTimeout(function");
|
||||
});
|
||||
Reference in New Issue
Block a user