= createRequestMessage(
- ctx.meta.name,
+ ctx.task.name,
dummyData,
- );
- message.requestID = 1;
+ )
+ message.requestID = 1
- expect(() => validateMessage(message)).toThrowError(TypeError);
-});
+ expect(() => validateMessage(message)).toThrowError(TypeError)
+})
diff --git a/test/index.test-d.ts b/test/index.test-d.ts
index 45c26d5..9229aa8 100644
--- a/test/index.test-d.ts
+++ b/test/index.test-d.ts
@@ -1,10 +1,10 @@
-import { expectTypeOf, it } from "vitest";
+import { expectTypeOf, it } from "vitest"
-import * as lib from "../src";
+import * as lib from "../src"
it("is constructible", () => {
expectTypeOf(lib.SimulatorClient).toBeConstructibleWith(
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
document.querySelector("iframe")!,
- );
-});
+ )
+})
diff --git a/test/index.test.ts b/test/index.test.ts
index fc5a1ea..6acf18e 100644
--- a/test/index.test.ts
+++ b/test/index.test.ts
@@ -1,8 +1,8 @@
-import { expect, it } from "vitest";
+import { expect, it } from "vitest"
-import * as lib from "../src";
+import * as lib from "../src"
// TODO: Dummy test, meant to be removed when real tests come in
it("exports something", () => {
- expect(lib).toBeTruthy();
-});
+ expect(lib).toBeTruthy()
+})
diff --git a/test/kit-domHelpers-getActiveSliceDOM.test.ts b/test/kit-domHelpers-getActiveSliceDOM.test.ts
index 2df82bf..85175ca 100644
--- a/test/kit-domHelpers-getActiveSliceDOM.test.ts
+++ b/test/kit-domHelpers-getActiveSliceDOM.test.ts
@@ -1,23 +1,23 @@
-import { afterEach, beforeEach, expect, it } from "vitest";
+import { afterEach, beforeEach, expect, it } from "vitest"
import {
getActiveSliceDOM,
getSliceZoneDOM,
simulatorClass,
simulatorRootClass,
-} from "../src/kit";
+} from "../src/kit"
beforeEach(() => {
document.body.innerHTML = ``;
-});
+`
+})
afterEach((_t) => {
- document.body.innerHTML = "";
-});
+ document.body.innerHTML = ""
+})
it("returns null when Slice Zone is not part of raycast", () => {
document.elementsFromPoint = (_x, _y) => {
@@ -26,21 +26,21 @@ it("returns null when Slice Zone is not part of raycast", () => {
document.querySelector(`.${simulatorClass}`)!,
document.body,
document.documentElement,
- ];
- };
+ ]
+ }
- const $sliceZone = getSliceZoneDOM(2);
+ const $sliceZone = getSliceZoneDOM(2)
- expect($sliceZone).toBeInstanceOf(HTMLElement);
+ expect($sliceZone).toBeInstanceOf(HTMLElement)
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- const $activeSlice = getActiveSliceDOM($sliceZone!, { x: 0, y: 0 });
+ const $activeSlice = getActiveSliceDOM($sliceZone!, { x: 0, y: 0 })
- expect($activeSlice).toBeNull();
+ expect($activeSlice).toBeNull()
// @ts-expect-error cleaning up polyfill
- delete document.elementsFromPoint;
-});
+ delete document.elementsFromPoint
+})
it("returns null when slice is not part of raycast", () => {
document.elementsFromPoint = (_x, _y) => {
@@ -51,21 +51,21 @@ it("returns null when slice is not part of raycast", () => {
document.querySelector(`.${simulatorClass}`)!,
document.body,
document.documentElement,
- ];
- };
+ ]
+ }
- const $sliceZone = getSliceZoneDOM(2);
+ const $sliceZone = getSliceZoneDOM(2)
- expect($sliceZone).toBeInstanceOf(HTMLElement);
+ expect($sliceZone).toBeInstanceOf(HTMLElement)
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- const $activeSlice = getActiveSliceDOM($sliceZone!, { x: 0, y: 0 });
+ const $activeSlice = getActiveSliceDOM($sliceZone!, { x: 0, y: 0 })
- expect($activeSlice).toBeNull();
+ expect($activeSlice).toBeNull()
// @ts-expect-error cleaning up polyfill
- delete document.elementsFromPoint;
-});
+ delete document.elementsFromPoint
+})
it("returns slice when Slice is part of raycast", () => {
document.elementsFromPoint = (_x, _y) => {
@@ -78,20 +78,20 @@ it("returns slice when Slice is part of raycast", () => {
document.querySelector(`.${simulatorClass}`)!,
document.body,
document.documentElement,
- ];
- };
+ ]
+ }
- const $sliceZone = getSliceZoneDOM(2);
+ const $sliceZone = getSliceZoneDOM(2)
- expect($sliceZone).toBeInstanceOf(HTMLElement);
+ expect($sliceZone).toBeInstanceOf(HTMLElement)
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- const $activeSlice = getActiveSliceDOM($sliceZone!, { x: 0, y: 0 });
+ const $activeSlice = getActiveSliceDOM($sliceZone!, { x: 0, y: 0 })
- expect($activeSlice).toBeInstanceOf(HTMLElement);
+ expect($activeSlice).toBeInstanceOf(HTMLElement)
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- expect($activeSlice!.classList.contains("foo")).toBe(true);
+ expect($activeSlice!.classList.contains("foo")).toBe(true)
// @ts-expect-error cleaning up polyfill
- delete document.elementsFromPoint;
-});
+ delete document.elementsFromPoint
+})
diff --git a/test/kit-domHelpers-getSliceZoneDOM.test.ts b/test/kit-domHelpers-getSliceZoneDOM.test.ts
index db91b5c..59e2f9c 100644
--- a/test/kit-domHelpers-getSliceZoneDOM.test.ts
+++ b/test/kit-domHelpers-getSliceZoneDOM.test.ts
@@ -1,101 +1,97 @@
-import { expect, it, vi } from "vitest";
+import { expect, it, vi } from "vitest"
-import {
- getSliceZoneDOM,
- simulatorClass,
- simulatorRootClass,
-} from "../src/kit";
+import { getSliceZoneDOM, simulatorClass, simulatorRootClass } from "../src/kit"
it("returns flagged Slice Zone if any", () => {
- document.body.innerHTML = ``;
+ document.body.innerHTML = ``
- const $sliceZone = getSliceZoneDOM(0);
+ const $sliceZone = getSliceZoneDOM(0)
- expect($sliceZone).toBeInstanceOf(HTMLDivElement);
- expect(($sliceZone as HTMLDivElement).dataset.sliceZone).toBe("");
+ expect($sliceZone).toBeInstanceOf(HTMLDivElement)
+ expect(($sliceZone as HTMLDivElement).dataset.sliceZone).toBe("")
- document.body.innerHTML = "";
-});
+ document.body.innerHTML = ""
+})
it("returns flagged Slice Zone if any and warn if number of children is off", () => {
- vi.stubGlobal("console", { ...console, warn: vi.fn() });
+ vi.stubGlobal("console", { ...console, warn: vi.fn() })
- document.body.innerHTML = ``;
+ document.body.innerHTML = ``
- const $sliceZone = getSliceZoneDOM(1);
+ const $sliceZone = getSliceZoneDOM(1)
- expect($sliceZone).toBeInstanceOf(HTMLDivElement);
- expect(($sliceZone as HTMLDivElement).dataset.sliceZone).toBe("");
+ expect($sliceZone).toBeInstanceOf(HTMLDivElement)
+ expect(($sliceZone as HTMLDivElement).dataset.sliceZone).toBe("")
- expect(console.warn).toHaveBeenCalledOnce();
+ expect(console.warn).toHaveBeenCalledOnce()
expect(vi.mocked(console.warn).mock.calls[0][0]).toMatchInlineSnapshot(
'"Flagged SliceZone has an unexpected number of children, found 0 but expected 1. This might lead to unexpected behaviors. Are you sure you tagged the right element?"',
- );
+ )
- document.body.innerHTML = "";
+ document.body.innerHTML = ""
- vi.restoreAllMocks();
-});
+ vi.restoreAllMocks()
+})
it("returns null if simulator class is not found", () => {
- document.body.innerHTML = "";
+ document.body.innerHTML = ""
- const $sliceZone = getSliceZoneDOM(0);
+ const $sliceZone = getSliceZoneDOM(0)
- expect($sliceZone).toBeNull();
+ expect($sliceZone).toBeNull()
- document.body.innerHTML = "";
-});
+ document.body.innerHTML = ""
+})
it("returns null if simulator root class is not found", () => {
- document.body.innerHTML = ``;
+ document.body.innerHTML = ``
- const $sliceZone = getSliceZoneDOM(0);
+ const $sliceZone = getSliceZoneDOM(0)
- expect($sliceZone).toBeNull();
+ expect($sliceZone).toBeNull()
- document.body.innerHTML = "";
-});
+ document.body.innerHTML = ""
+})
it("returns null if simulator root has no children but children are expected", () => {
- document.body.innerHTML = ``;
+ document.body.innerHTML = ``
- const $sliceZone = getSliceZoneDOM(1);
+ const $sliceZone = getSliceZoneDOM(1)
- expect($sliceZone).toBeNull();
+ expect($sliceZone).toBeNull()
- document.body.innerHTML = "";
-});
+ document.body.innerHTML = ""
+})
it("returns simulator root when no children are expected", () => {
- document.body.innerHTML = ``;
+ document.body.innerHTML = ``
- const $sliceZone = getSliceZoneDOM(0);
+ const $sliceZone = getSliceZoneDOM(0)
- expect($sliceZone).toBeInstanceOf(HTMLDivElement);
+ expect($sliceZone).toBeInstanceOf(HTMLDivElement)
expect(
($sliceZone as HTMLDivElement).classList.contains(simulatorRootClass),
- ).toBe(true);
+ ).toBe(true)
- document.body.innerHTML = "";
-});
+ document.body.innerHTML = ""
+})
it("returns simulator root when matching the expected number of children", () => {
document.body.innerHTML = ``;
+`
- const $sliceZone = getSliceZoneDOM(2);
+ const $sliceZone = getSliceZoneDOM(2)
- expect($sliceZone).toBeInstanceOf(HTMLDivElement);
+ expect($sliceZone).toBeInstanceOf(HTMLDivElement)
expect(
($sliceZone as HTMLDivElement).classList.contains(simulatorRootClass),
- ).toBe(true);
+ ).toBe(true)
- document.body.innerHTML = "";
-});
+ document.body.innerHTML = ""
+})
it("returns first element matching the expected number of children from simulator root", () => {
document.body.innerHTML = `
@@ -104,17 +100,17 @@ it("returns first element matching the expected number of children from simulato
-`;
+`
- const $sliceZone = getSliceZoneDOM(2);
+ const $sliceZone = getSliceZoneDOM(2)
- expect($sliceZone).toBeInstanceOf(HTMLDivElement);
+ expect($sliceZone).toBeInstanceOf(HTMLDivElement)
expect(($sliceZone as HTMLDivElement).classList.contains("slicezone")).toBe(
true,
- );
+ )
- document.body.innerHTML = "";
-});
+ document.body.innerHTML = ""
+})
it("returns null when Slice Zone is too deep", () => {
document.body.innerHTML = `
@@ -125,11 +121,11 @@ it("returns null when Slice Zone is too deep", () => {
-`;
+`
- const $sliceZone = getSliceZoneDOM(2);
+ const $sliceZone = getSliceZoneDOM(2)
- expect($sliceZone).toBeNull();
+ expect($sliceZone).toBeNull()
- document.body.innerHTML = "";
-});
+ document.body.innerHTML = ""
+})
diff --git a/test/kit-eventHandlers-disableEventHandler.test.ts b/test/kit-eventHandlers-disableEventHandler.test.ts
index 9496476..653b079 100644
--- a/test/kit-eventHandlers-disableEventHandler.test.ts
+++ b/test/kit-eventHandlers-disableEventHandler.test.ts
@@ -1,15 +1,15 @@
-import { expect, it, vi } from "vitest";
+import { expect, it, vi } from "vitest"
-import { disableEventHandler } from "../src/kit";
+import { disableEventHandler } from "../src/kit"
it("prevents default and stops propagation", () => {
const event = {
preventDefault: vi.fn(),
stopPropagation: vi.fn(),
- };
+ }
- disableEventHandler(event as unknown as Event);
+ disableEventHandler(event as unknown as Event)
- expect(event.preventDefault).toHaveBeenCalledOnce();
- expect(event.stopPropagation).toHaveBeenCalledOnce();
-});
+ expect(event.preventDefault).toHaveBeenCalledOnce()
+ expect(event.stopPropagation).toHaveBeenCalledOnce()
+})
diff --git a/test/kit-eventHandlers-onClickHandler.test.ts b/test/kit-eventHandlers-onClickHandler.test.ts
index 4ae43bc..22d489e 100644
--- a/test/kit-eventHandlers-onClickHandler.test.ts
+++ b/test/kit-eventHandlers-onClickHandler.test.ts
@@ -1,44 +1,44 @@
-import { expect, it, vi } from "vitest";
+import { expect, it, vi } from "vitest"
-import { onClickHandler } from "../src/kit";
+import { onClickHandler } from "../src/kit"
-const a = document.createElement("a");
-const div = document.createElement("div");
+const a = document.createElement("a")
+const div = document.createElement("div")
it("does nothing when path is absent", () => {
const event = {
preventDefault: vi.fn(),
stopPropagation: vi.fn(),
- };
+ }
- onClickHandler(event as unknown as MouseEvent);
+ onClickHandler(event as unknown as MouseEvent)
- expect(event.preventDefault).not.toHaveBeenCalled();
- expect(event.stopPropagation).not.toHaveBeenCalled();
-});
+ expect(event.preventDefault).not.toHaveBeenCalled()
+ expect(event.stopPropagation).not.toHaveBeenCalled()
+})
it("prevents default and stops propagation when path contains a close HTMLAnchorElement", () => {
const event = {
preventDefault: vi.fn(),
stopPropagation: vi.fn(),
path: [div, a, div, div, div, div],
- };
+ }
- onClickHandler(event as unknown as MouseEvent);
+ onClickHandler(event as unknown as MouseEvent)
- expect(event.preventDefault).toHaveBeenCalledOnce();
- expect(event.stopPropagation).toHaveBeenCalledOnce();
-});
+ expect(event.preventDefault).toHaveBeenCalledOnce()
+ expect(event.stopPropagation).toHaveBeenCalledOnce()
+})
it("does nothing when path doesn't contain a close HTMLAnchorElement", () => {
const event = {
preventDefault: vi.fn(),
stopPropagation: vi.fn(),
path: [div, div, div, div, div, a],
- };
+ }
- onClickHandler(event as unknown as MouseEvent);
+ onClickHandler(event as unknown as MouseEvent)
- expect(event.preventDefault).not.toHaveBeenCalled();
- expect(event.stopPropagation).not.toHaveBeenCalled();
-});
+ expect(event.preventDefault).not.toHaveBeenCalled()
+ expect(event.stopPropagation).not.toHaveBeenCalled()
+})
diff --git a/test/kit-getDefault-getDefaultMessage.test.ts b/test/kit-getDefault-getDefaultMessage.test.ts
index 206e12c..4d872f4 100644
--- a/test/kit-getDefault-getDefaultMessage.test.ts
+++ b/test/kit-getDefault-getDefaultMessage.test.ts
@@ -1,7 +1,7 @@
-import { expect, it } from "vitest";
+import { expect, it } from "vitest"
-import { getDefaultMessage } from "../src/kit";
+import { getDefaultMessage } from "../src/kit"
it("returns default message", () => {
- expect(getDefaultMessage()).toMatchInlineSnapshot('""');
-});
+ expect(getDefaultMessage()).toMatchInlineSnapshot('""')
+})
diff --git a/test/kit-getDefault-getDefaultProps.test.ts b/test/kit-getDefault-getDefaultProps.test.ts
index ca571a9..f1e7dd5 100644
--- a/test/kit-getDefault-getDefaultProps.test.ts
+++ b/test/kit-getDefault-getDefaultProps.test.ts
@@ -1,6 +1,6 @@
-import { expect, it } from "vitest";
+import { expect, it } from "vitest"
-import { getDefaultProps } from "../src/kit";
+import { getDefaultProps } from "../src/kit"
it("returns default props", () => {
expect(getDefaultProps()).toMatchInlineSnapshot(`
@@ -8,5 +8,5 @@ it("returns default props", () => {
"background": "#ffffff",
"zIndex": 100,
}
- `);
-});
+ `)
+})
diff --git a/test/kit-getDefault-getDefaultSlices.test.ts b/test/kit-getDefault-getDefaultSlices.test.ts
index 58c915d..2eb507c 100644
--- a/test/kit-getDefault-getDefaultSlices.test.ts
+++ b/test/kit-getDefault-getDefaultSlices.test.ts
@@ -1,7 +1,7 @@
-import { expect, it } from "vitest";
+import { expect, it } from "vitest"
-import { getDefaultSlices } from "../src/kit";
+import { getDefaultSlices } from "../src/kit"
it("returns default slices", () => {
- expect(getDefaultSlices()).toMatchInlineSnapshot("[]");
-});
+ expect(getDefaultSlices()).toMatchInlineSnapshot("[]")
+})
diff --git a/test/lib-EventEmitter.test.ts b/test/lib-EventEmitter.test.ts
index a555f72..e56dc48 100644
--- a/test/lib-EventEmitter.test.ts
+++ b/test/lib-EventEmitter.test.ts
@@ -1,101 +1,101 @@
-import { expect, it, vi } from "vitest";
+import { expect, it, vi } from "vitest"
-import { EventEmitter } from "../src/lib/EventEmitter";
+import { EventEmitter } from "../src/lib/EventEmitter"
class StandaloneEventEmitter extends EventEmitter<{ foo: "bar" }> {}
it("registers event handler", () => {
- const eventEmitter = new StandaloneEventEmitter();
+ const eventEmitter = new StandaloneEventEmitter()
- const listener = vi.fn();
+ const listener = vi.fn()
- eventEmitter.on("foo", listener);
+ eventEmitter.on("foo", listener)
// @ts-expect-error - taking a shortcut by accessing protected property
- expect(eventEmitter._listeners.foo[0][0]).toBe(listener);
-});
+ expect(eventEmitter._listeners.foo[0][0]).toBe(listener)
+})
it("registers event handler with key", () => {
- const eventEmitter = new StandaloneEventEmitter();
+ const eventEmitter = new StandaloneEventEmitter()
- const listener = vi.fn();
+ const listener = vi.fn()
- eventEmitter.on("foo", listener, "baz");
+ eventEmitter.on("foo", listener, "baz")
// @ts-expect-error - taking a shortcut by accessing protected property
- expect(eventEmitter._listeners.foo[0][0]).toBe(listener);
+ expect(eventEmitter._listeners.foo[0][0]).toBe(listener)
// @ts-expect-error - taking a shortcut by accessing protected property
- expect(eventEmitter._listeners.foo[0][1]).toBe("baz");
-});
+ expect(eventEmitter._listeners.foo[0][1]).toBe("baz")
+})
it("dispatches event", () => {
- const eventEmitter = new StandaloneEventEmitter();
+ const eventEmitter = new StandaloneEventEmitter()
- const listener = vi.fn();
+ const listener = vi.fn()
- eventEmitter.on("foo", listener);
+ eventEmitter.on("foo", listener)
- expect(listener).not.toHaveBeenCalled();
+ expect(listener).not.toHaveBeenCalled()
- eventEmitter.emit("foo", "bar");
+ eventEmitter.emit("foo", "bar")
- expect(listener).toHaveBeenCalledOnce();
-});
+ expect(listener).toHaveBeenCalledOnce()
+})
it("doesn't fail to dispatch when no handler", () => {
- const eventEmitter = new StandaloneEventEmitter();
+ const eventEmitter = new StandaloneEventEmitter()
- expect(() => eventEmitter.emit("foo", "bar")).not.toThrowError();
-});
+ expect(() => eventEmitter.emit("foo", "bar")).not.toThrowError()
+})
it("unregisters event handler", () => {
- const eventEmitter = new StandaloneEventEmitter();
+ const eventEmitter = new StandaloneEventEmitter()
- const listener = vi.fn();
+ const listener = vi.fn()
- eventEmitter.on("foo", listener);
+ eventEmitter.on("foo", listener)
- expect(listener).not.toHaveBeenCalled();
+ expect(listener).not.toHaveBeenCalled()
- eventEmitter.emit("foo", "bar");
+ eventEmitter.emit("foo", "bar")
- expect(listener).toHaveBeenCalledOnce();
+ expect(listener).toHaveBeenCalledOnce()
- eventEmitter.off("foo", listener);
+ eventEmitter.off("foo", listener)
- expect(listener).toHaveBeenCalledOnce();
+ expect(listener).toHaveBeenCalledOnce()
- eventEmitter.emit("foo", "bar");
+ eventEmitter.emit("foo", "bar")
- expect(listener).toHaveBeenCalledOnce();
-});
+ expect(listener).toHaveBeenCalledOnce()
+})
it("unregisters event handler with key", () => {
- const eventEmitter = new StandaloneEventEmitter();
+ const eventEmitter = new StandaloneEventEmitter()
- const listener = vi.fn();
+ const listener = vi.fn()
- eventEmitter.on("foo", listener, "baz");
+ eventEmitter.on("foo", listener, "baz")
- expect(listener).not.toHaveBeenCalled();
+ expect(listener).not.toHaveBeenCalled()
- eventEmitter.emit("foo", "bar");
+ eventEmitter.emit("foo", "bar")
- expect(listener).toHaveBeenCalledOnce();
+ expect(listener).toHaveBeenCalledOnce()
- eventEmitter.off("foo", "baz");
+ eventEmitter.off("foo", "baz")
- expect(listener).toHaveBeenCalledOnce();
+ expect(listener).toHaveBeenCalledOnce()
- eventEmitter.emit("foo", "bar");
+ eventEmitter.emit("foo", "bar")
- expect(listener).toHaveBeenCalledOnce();
-});
+ expect(listener).toHaveBeenCalledOnce()
+})
it("doesn't fail to unregister when no handler", () => {
- const eventEmitter = new StandaloneEventEmitter();
+ const eventEmitter = new StandaloneEventEmitter()
- const listener = vi.fn();
+ const listener = vi.fn()
- expect(() => eventEmitter.off("foo", listener)).not.toThrowError();
-});
+ expect(() => eventEmitter.off("foo", listener)).not.toThrowError()
+})
diff --git a/test/lib-throttle.test.ts b/test/lib-throttle.test.ts
index 9718197..260fb66 100644
--- a/test/lib-throttle.test.ts
+++ b/test/lib-throttle.test.ts
@@ -1,67 +1,63 @@
-import { expect, it, vi } from "vitest";
+import { expect, it, vi } from "vitest"
-import { sleep } from "./__testutils__/sleep";
+import { sleep } from "./__testutils__/sleep"
-import { throttle } from "../src/lib/throttle";
+import { throttle } from "../src/lib/throttle"
it("throttles function", async () => {
- const fn = vi.fn();
- const throttled = throttle(fn);
+ const fn = vi.fn()
+ const throttled = throttle(fn)
- throttled(); // t=0
- throttled(); // skipped
- throttled(); // t=16
+ throttled() // t=0
+ throttled() // skipped
+ throttled() // t=16
- expect(fn, "throttles calls").toHaveBeenCalledOnce();
+ expect(fn, "throttles calls").toHaveBeenCalledOnce()
- await sleep(24); // t=24
+ await sleep(24) // t=24
- expect(fn, "if subsequent calls, calls last on tail").toHaveBeenCalledTimes(
- 2,
- );
-});
+ expect(fn, "if subsequent calls, calls last on tail").toHaveBeenCalledTimes(2)
+})
it("throttles function consitently", async () => {
- const fn = vi.fn();
- const throttled = throttle(fn, 50);
+ const fn = vi.fn()
+ const throttled = throttle(fn, 50)
- throttled(); // t=0
- throttled(); // skipped
- throttled(); // t=50
+ throttled() // t=0
+ throttled() // skipped
+ throttled() // t=50
- expect(fn, "throttles calls").toHaveBeenCalledOnce();
+ expect(fn, "throttles calls").toHaveBeenCalledOnce()
- await sleep(75); // t=75
+ await sleep(75) // t=75
- expect(fn, "if subsequent calls, calls last on tail").toHaveBeenCalledTimes(
- 2,
- );
+ expect(fn, "if subsequent calls, calls last on tail").toHaveBeenCalledTimes(2)
- throttled(); // skipped
- throttled(); // skipped
- throttled(); // t=100
+ throttled() // skipped
+ throttled() // skipped
+ throttled() // t=100
expect(
fn,
"waits after tail call before calling again",
- ).toHaveBeenCalledTimes(2);
+ ).toHaveBeenCalledTimes(2)
- await sleep(35); // t=110
+ await sleep(35) // t=110
- expect(fn, "calls tail again after delay").toHaveBeenCalledTimes(3);
+ expect(fn, "calls tail again after delay").toHaveBeenCalledTimes(3)
- await sleep(50); // t=160
+ await sleep(50) // t=160
- throttled(); // t=160
- throttled(); // skipped
- throttled(); // t=210
+ throttled() // t=160
+ throttled() // skipped
+ throttled() // t=210
- expect(fn, "calls directly after delay has expired").toHaveBeenCalledTimes(4);
+ expect(fn, "calls directly after delay has expired").toHaveBeenCalledTimes(4)
- await sleep(50); // t=210
+ await sleep(50) // t=210
expect(
fn,
"if subsequent calls, still calls last on tail",
- ).toHaveBeenCalledTimes(5);
-});
+ ).toHaveBeenCalledTimes(5)
+})
diff --git a/tsdown.config.ts b/tsdown.config.ts
new file mode 100644
index 0000000..3b1d104
--- /dev/null
+++ b/tsdown.config.ts
@@ -0,0 +1,13 @@
+import { defineConfig } from "tsdown"
+
+export default defineConfig({
+ entry: {
+ index: "./src/index.ts",
+ kit: "./src/kit/index.ts",
+ },
+ format: ["esm", "cjs"],
+ platform: "neutral",
+ unbundle: true,
+ sourcemap: true,
+ exports: true,
+})
diff --git a/vite.config.ts b/vite.config.ts
deleted file mode 100644
index c9183db..0000000
--- a/vite.config.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { defineConfig } from "vite";
-import sdk from "vite-plugin-sdk";
-
-export default defineConfig({
- plugins: [sdk()],
- build: {
- lib: {
- entry: {
- index: "./src/index.ts",
- kit: "./src/kit/index.ts",
- },
- },
- },
- test: {
- environment: "jsdom",
- coverage: {
- reporter: ["lcovonly", "text"],
- },
- setupFiles: ["./test/__setup__.ts"],
- },
-});
diff --git a/vitest.config.ts b/vitest.config.ts
new file mode 100644
index 0000000..1f7ded2
--- /dev/null
+++ b/vitest.config.ts
@@ -0,0 +1,15 @@
+import { defineConfig } from "vitest/config"
+
+export default defineConfig({
+ test: {
+ environment: "jsdom",
+ typecheck: {
+ enabled: true,
+ },
+ coverage: {
+ provider: "v8",
+ reporter: ["lcovonly", "text"],
+ include: ["src"],
+ },
+ },
+})