diff options
author | Jacob Scearcy <jacobscearcy@gmail.com> | 2024-05-06 06:42:35 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-06 14:42:35 +0100 |
commit | 80e2bd66f54bca88a749d40784828d29bae8995f (patch) | |
tree | 587a8b2d24f09e1955f11ab1ae7ca1e16084d4e1 /test/02-interactivity.test.js | |
parent | 8adbae91d3e7d526b5950e2299736ab915dc5489 (diff) | |
download | lustre-80e2bd66f54bca88a749d40784828d29bae8995f.tar.gz lustre-80e2bd66f54bca88a749d40784828d29bae8995f.zip |
๐ Use vitest for runtime/vdom testing. (#124)
* ๐งช move tests into test directory, bump birdie to ignore non-gleam files
* implement feedback
* add comments, update doc
Diffstat (limited to 'test/02-interactivity.test.js')
-rw-r--r-- | test/02-interactivity.test.js | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/test/02-interactivity.test.js b/test/02-interactivity.test.js new file mode 100644 index 0000000..3355e94 --- /dev/null +++ b/test/02-interactivity.test.js @@ -0,0 +1,88 @@ +import { beforeEach, describe, expect, test } from "vitest"; +import { setupDOM } from "./utils.js"; +// built via npm script "build:test:02" +import { main } from "@root/examples/02-interactivity/build/dev/javascript/app/app.mjs"; + +let appEl; +beforeEach(() => { + setupDOM(); + appEl = document.getElementById("app"); +}); + +describe("counter example", () => { + test("should render initially", () => { + main(); + + expect(document.toString()).toMatchSnapshot(); + }); + + test("should increment on button press", () => { + main(); + + const buttons = document.querySelectorAll("button.lustre-ui-button"); + const incrementButton = buttons[0]; + const count = document.querySelector("p"); + + expect(incrementButton).toBeTruthy(); + + incrementButton.click(); + + expect(count.innerText).toBe("1"); + + incrementButton.click(); + expect(count.innerText).toBe("2"); + + incrementButton.click(); + expect(count.innerText).toBe("3"); + + }); + + test("should decrement on button press", () => { + main(); + + const buttons = document.querySelectorAll("button.lustre-ui-button"); + const decrementButton = buttons[1]; + const count = document.querySelector("p"); + + expect(decrementButton).toBeTruthy(); + + decrementButton.click(); + expect(count.innerText).toBe("-1"); + + decrementButton.click(); + expect(count.innerText).toBe("-2"); + + decrementButton.click(); + expect(count.innerText).toBe("-3"); + }); + + test("should increment and decrement on button press", () => { + main(); + + const buttons = document.querySelectorAll("button.lustre-ui-button"); + const incrementButton = buttons[0]; + const decrementButton = buttons[1]; + const count = document.querySelector("p"); + + incrementButton.click(); + + expect(count.innerText).toBe("1"); + + incrementButton.click(); + expect(count.innerText).toBe("2"); + + incrementButton.click(); + expect(count.innerText).toBe("3"); + + expect(decrementButton).toBeTruthy(); + + decrementButton.click(); + expect(count.innerText).toBe("2"); + + decrementButton.click(); + expect(count.innerText).toBe("1"); + + decrementButton.click(); + expect(count.innerText).toBe("0"); + }); +}); |