UNPKG

router-dom

Version:

A lightweight router for everyone

84 lines (78 loc) 2.51 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Router Tests</title> <script type="module"> import { hydro, $ } from "hydro-js"; import { runTests } from "@web/test-runner-mocha"; import { expect } from "@esm-bundle/chai"; import Router from "../../dist/router.js"; const sleep = (time) => new Promise((resolve) => setTimeout(resolve, time)); runTests(() => { let router; beforeEach(async () => { router = new Router( [ { path: "/", }, ], { formHandler(res, e) { window.form = res; window.formEvent = e; }, errorHandler(err, e) { window.err = err; window.errEvent = e; }, fetchOptions: { signal: AbortSignal.timeout(1) }, } ); await sleep(150); }); describe("router", () => { it("handles the form submit", async () => { expect(window.form).to.be.undefined; expect(window.formEvent).to.be.undefined; $("#submit").click(); await sleep(50); expect(window.err).to.not.be.undefined; expect(window.errEvent).to.not.be.undefined; }); }); }); </script> </head> <body> <form action="https://httpbin.org/get" method="get"> <label for="name">Enter your name: </label> <input type="text" name="name" id="name" required value="test" /> <label for="email">Enter your email: </label> <input type="email" name="email" id="email" required value="test@test.com" /> <input id="submit" type="submit" value="Subscribe!" /> </form> <form action="https://httpbin.org/asdasdas" method="get"> <label for="name2">Enter your name: </label> <input type="text" name="name2" id="name2" required value="test" /> <label for="email2">Enter your email: </label> <input type="email" name="email2" id="email2" required value="test@test.com" /> <input id="submit2" type="submit" value="Subscribe!" /> </form> </body> </html>