deno.land / x / solid@v1.5.6 / web / test / errorboundary.spec.tsx

errorboundary.spec.tsx
نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/** * @jsxImportSource solid-js * @jest-environment jsdom */
import { createRoot, resetErrorBoundaries } from "../../src";import { ErrorBoundary } from "../src";
describe("Testing ErrorBoundary control flow", () => { let div: HTMLDivElement, disposer: () => void;
const Component = () => { throw new Error("Failure"); };
let first = true; const Component2 = () => { if (first) { first = false; throw new Error("Failure"); } return "Success"; };
const Component3 = () => { throw null; };
test("Create an Error", () => { createRoot(dispose => { disposer = dispose; <div ref={div}> <ErrorBoundary fallback="Failed Miserably"> <Component /> </ErrorBoundary> </div>; }); expect(div.innerHTML).toBe("Failed Miserably"); });
test("Create an Error with null", () => { createRoot(dispose => { disposer = dispose; <div ref={div}> <ErrorBoundary fallback="Failed Miserably"> <Component3 /> </ErrorBoundary> </div>; }); expect(div.innerHTML).toBe("Failed Miserably"); });
test("Create an Error callback", () => { createRoot(dispose => { disposer = dispose; <div ref={div}> <ErrorBoundary fallback={e => e.message}> <Component /> </ErrorBoundary> </div>; }); expect(div.innerHTML).toBe("Failure"); });
test("Create an Error callback and reset", () => { let r: () => void; createRoot(dispose => { disposer = dispose; <div ref={div}> <ErrorBoundary fallback={(e, reset) => { r = reset; return e.message; }} > <Component2 /> </ErrorBoundary> </div>; }); expect(div.innerHTML).toBe("Failure"); r!(); expect(div.innerHTML).toBe("Success"); first = true; });
test("Create an Error global reset", () => { let r: () => void; createRoot(dispose => { disposer = dispose; <div ref={div}> <ErrorBoundary fallback={e => e.message}> <Component2 /> </ErrorBoundary> </div>; }); expect(div.innerHTML).toBe("Failure"); resetErrorBoundaries(); expect(div.innerHTML).toBe("Success"); first = true; });
test("Create an Error in an Error Fallback", () => { createRoot(dispose => { disposer = dispose; <div ref={div}> <ErrorBoundary fallback="Failed Miserably"> <ErrorBoundary fallback={<Component />}> <Component /> </ErrorBoundary> </ErrorBoundary> </div>; }); expect(div.innerHTML).toBe("Failed Miserably"); });
test("dispose", () => disposer());});
solid

Version Info

Tagged at
a year ago