aboutsummaryrefslogtreecommitdiff
path: root/test/02-interactivity.test.js
diff options
context:
space:
mode:
authorJacob Scearcy <jacobscearcy@gmail.com>2024-05-06 06:42:35 -0700
committerGitHub <noreply@github.com>2024-05-06 14:42:35 +0100
commit80e2bd66f54bca88a749d40784828d29bae8995f (patch)
tree587a8b2d24f09e1955f11ab1ae7ca1e16084d4e1 /test/02-interactivity.test.js
parent8adbae91d3e7d526b5950e2299736ab915dc5489 (diff)
downloadlustre-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.js88
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");
+ });
+});