Skip to content
Source
Sign inSign up

swipe-row-activation.test.ts

40 lines1.3 KB

1import { describe, expect, it } from "vite-plus/test";
2​
3import { createSwipeRowActivation } from "./swipe-row-activation";
4​
5describe("createSwipeRowActivation", () => {
6 it("defers changes while a finger is on the list so a press is never remounted", () => {
7 const activation = createSwipeRowActivation();
8 activation.activate(["a"]);
9​
10 activation.trackTouches(["1"], ["1"]);
11 activation.activate(["b"]);
12 activation.activate(["c"]);
13 expect(activation.isActive("a")).toBe(true);
14 expect(activation.isActive("c")).toBe(false);
15​
16 activation.trackTouches([], []);
17 expect(activation.isActive("a")).toBe(false);
18 expect(activation.isActive("b")).toBe(false);
19 expect(activation.isActive("c")).toBe(true);
20 });
21​
22 it("ignores fingers that did not start on the list", () => {
23 const activation = createSwipeRowActivation();
24 activation.trackTouches(["1"], ["1", "2"]);
25 activation.activate(["a"]);
26​
27 activation.trackTouches([], ["2"]);
28 expect(activation.isActive("a")).toBe(true);
29 });
30​
31 it("drops a list finger whose end event never arrived", () => {
32 const activation = createSwipeRowActivation();
33 activation.trackTouches(["1"], ["1"]);
34 activation.activate(["a"]);
35​
36 activation.trackTouches(["2"], ["2"]);
37 activation.trackTouches([], []);
38 expect(activation.isActive("a")).toBe(true);
39 });
40});