jqtree 1.7.0 → 1.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ci.yml +2 -15
- package/.github/workflows/codeql-analysis.yml +2 -2
- package/.github/workflows/size.yml +24 -0
- package/README.md +1 -1
- package/bower.json +1 -1
- package/docs/Gemfile.lock +39 -40
- package/docs/_config.yml +1 -1
- package/docs/_entries/03_features.md +1 -1
- package/docs/_entries/10_changelog.md +9 -0
- package/docs/_entries/16_closedicon.md +17 -3
- package/docs/_entries/31_openedicon.md +17 -3
- package/docs/package.json +7 -7
- package/docs/pnpm-lock.yaml +378 -284
- package/docs/static/bower.json +2 -2
- package/docs/static/bower_components/fontawesome/css/all.min.css +6 -2
- package/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.ttf +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.ttf +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.ttf +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-v4compatibility.ttf +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-v4compatibility.woff2 +0 -0
- package/docs/static/bower_components/jquery/dist/jquery.js +813 -1102
- package/docs/static/bower_components/jquery/dist/jquery.min.js +2 -2
- package/docs/static/documentation.css +104 -222
- package/docs/static/examples/autoescape.js +15 -17
- package/docs/static/examples/autoscroll.js +5 -7
- package/docs/static/examples/button-on-right.js +4 -6
- package/docs/static/examples/custom_html.js +22 -24
- package/docs/static/examples/drag-outside.js +23 -25
- package/docs/static/examples/drag_and_drop.js +4 -6
- package/docs/static/examples/icon_buttons.js +3 -5
- package/docs/static/examples/load_json_data.js +14 -16
- package/docs/static/examples/load_json_data_from_server.js +1 -3
- package/docs/static/examples/load_on_demand.js +3 -5
- package/docs/static/examples/multiple_select.js +19 -21
- package/docs/static/examples/right-to-left.js +2 -4
- package/docs/static/examples/save_state.js +2 -4
- package/docs/tree.jquery.js +3 -3
- package/lib/dataLoader.js +3 -3
- package/lib/dragAndDropHandler.js +22 -11
- package/lib/elementsRenderer.js +26 -16
- package/lib/keyHandler.js +1 -1
- package/lib/mouse.widget.js +13 -2
- package/lib/node.js +17 -14
- package/lib/nodeElement.js +20 -13
- package/lib/playwright/coverage.js +11 -16
- package/lib/playwright/playwright.test.js +37 -58
- package/lib/playwright/testUtils.js +27 -44
- package/lib/saveStateHandler.js +2 -2
- package/lib/scrollHandler.js +8 -4
- package/lib/selectNodeHandler.js +2 -2
- package/lib/simple.widget.js +5 -3
- package/lib/test/jqTree/accessibility.test.js +37 -0
- package/lib/test/jqTree/events.test.js +73 -77
- package/lib/test/jqTree/loadOnDemand.test.js +5 -4
- package/lib/test/jqTree/methods.test.js +2 -2
- package/lib/test/jqTree/options.test.js +43 -2
- package/lib/test/node.test.js +7 -4
- package/lib/tree.jquery.js +5 -5
- package/lib/version.js +1 -1
- package/package.json +37 -41
- package/src/dragAndDropHandler.ts +24 -10
- package/src/elementsRenderer.ts +57 -50
- package/src/jqtreeOptions.ts +5 -5
- package/src/mouse.widget.ts +12 -0
- package/src/node.ts +10 -5
- package/src/nodeElement.ts +27 -21
- package/src/saveStateHandler.ts +1 -1
- package/src/scrollHandler.ts +6 -2
- package/src/selectNodeHandler.ts +1 -1
- package/src/simple.widget.ts +2 -0
- package/src/test/.eslintrc +2 -1
- package/src/test/jqTree/accessibility.test.ts +25 -0
- package/src/test/jqTree/events.test.ts +79 -93
- package/src/test/jqTree/loadOnDemand.test.ts +6 -5
- package/src/test/jqTree/methods.test.ts +27 -27
- package/src/test/jqTree/options.test.ts +61 -8
- package/src/test/node.test.ts +6 -4
- package/src/test/nodeUtil.test.ts +1 -1
- package/src/tree.jquery.d.ts +20 -11
- package/src/tree.jquery.ts +1 -1
- package/src/version.ts +1 -1
- package/tree.jquery.debug.js +143 -97
- package/tree.jquery.debug.js.map +1 -1
- package/tree.jquery.js +3 -3
- package/tree.jquery.js.map +1 -1
- package/tsconfig.json +1 -0
- package/.tool-versions +0 -1
- package/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.eot +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.svg +0 -3717
- package/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.woff +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.eot +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.svg +0 -801
- package/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.woff +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.eot +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.svg +0 -5028
- package/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.woff +0 -0
package/src/saveStateHandler.ts
CHANGED
package/src/scrollHandler.ts
CHANGED
|
@@ -23,7 +23,7 @@ export default class ScrollHandler {
|
|
|
23
23
|
public scrollToY(top: number): void {
|
|
24
24
|
this.ensureInit();
|
|
25
25
|
|
|
26
|
-
if (this.$scrollParent) {
|
|
26
|
+
if (this.$scrollParent && this.$scrollParent[0]) {
|
|
27
27
|
this.$scrollParent[0].scrollTop = top;
|
|
28
28
|
} else {
|
|
29
29
|
const offset = this.treeWidget.$el.offset();
|
|
@@ -121,7 +121,7 @@ export default class ScrollHandler {
|
|
|
121
121
|
if (
|
|
122
122
|
$scrollParent &&
|
|
123
123
|
$scrollParent.length &&
|
|
124
|
-
$scrollParent[0]
|
|
124
|
+
$scrollParent[0]?.tagName !== "HTML"
|
|
125
125
|
) {
|
|
126
126
|
this.$scrollParent = $scrollParent;
|
|
127
127
|
|
|
@@ -223,6 +223,10 @@ export default class ScrollHandler {
|
|
|
223
223
|
|
|
224
224
|
const scrollParent = $scrollParent[0];
|
|
225
225
|
|
|
226
|
+
if (!scrollParent) {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
|
|
226
230
|
const canScrollRight =
|
|
227
231
|
scrollParent.scrollLeft + scrollParent.clientWidth <
|
|
228
232
|
scrollParent.scrollWidth;
|
package/src/selectNodeHandler.ts
CHANGED
package/src/simple.widget.ts
CHANGED
package/src/test/.eslintrc
CHANGED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { axe, toHaveNoViolations } from "jest-axe";
|
|
2
|
+
import "../../tree.jquery";
|
|
3
|
+
import exampleData from "../support/exampleData";
|
|
4
|
+
|
|
5
|
+
expect.extend(toHaveNoViolations);
|
|
6
|
+
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
$("body").append('<div id="tree1"></div>');
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
afterEach(() => {
|
|
12
|
+
const $tree = $("#tree1");
|
|
13
|
+
$tree.tree("destroy");
|
|
14
|
+
$tree.remove();
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it("has an accessible ui", async () => {
|
|
18
|
+
const $tree = $("#tree1");
|
|
19
|
+
$tree.tree({
|
|
20
|
+
data: exampleData,
|
|
21
|
+
});
|
|
22
|
+
const element = $tree.get()[0] as HTMLElement;
|
|
23
|
+
|
|
24
|
+
await expect(axe(element)).resolves.toHaveNoViolations();
|
|
25
|
+
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import getGiven from "givens";
|
|
2
2
|
import { rest } from "msw";
|
|
3
3
|
import { setupServer } from "msw/node";
|
|
4
|
+
import { waitFor } from "@testing-library/dom";
|
|
4
5
|
import "../../tree.jquery";
|
|
5
6
|
import exampleData from "../support/exampleData";
|
|
6
7
|
import { titleSpan } from "../support/testUtil";
|
|
@@ -41,17 +42,15 @@ describe("tree.click", () => {
|
|
|
41
42
|
given.$tree.tree({ data: exampleData });
|
|
42
43
|
});
|
|
43
44
|
|
|
44
|
-
it("fires tree.click", () =>
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const treeClickEvent = e as ClickNodeEvent;
|
|
45
|
+
it("fires tree.click", () => {
|
|
46
|
+
const onClick = jest.fn();
|
|
47
|
+
given.$tree.on("tree.click", onClick);
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
})
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}));
|
|
49
|
+
given.titleSpan.trigger("click");
|
|
50
|
+
expect(onClick).toHaveBeenCalledWith(
|
|
51
|
+
expect.objectContaining({ node: given.node1 })
|
|
52
|
+
);
|
|
53
|
+
});
|
|
55
54
|
});
|
|
56
55
|
|
|
57
56
|
describe("tree.contextmenu", () => {
|
|
@@ -70,17 +69,15 @@ describe("tree.contextmenu", () => {
|
|
|
70
69
|
given.$tree.tree({ data: exampleData });
|
|
71
70
|
});
|
|
72
71
|
|
|
73
|
-
it("fires tree.contextmenu", () =>
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
const treeClickEvent = e as ClickNodeEvent;
|
|
72
|
+
it("fires tree.contextmenu", () => {
|
|
73
|
+
const onContextMenu = jest.fn();
|
|
74
|
+
given.$tree.on("tree.contextmenu", onContextMenu);
|
|
77
75
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
})
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}));
|
|
76
|
+
given.titleSpan.trigger("contextmenu");
|
|
77
|
+
expect(onContextMenu).toHaveBeenCalledWith(
|
|
78
|
+
expect.objectContaining({ node: given.node1 })
|
|
79
|
+
);
|
|
80
|
+
});
|
|
84
81
|
});
|
|
85
82
|
|
|
86
83
|
describe("tree.dblclick", () => {
|
|
@@ -99,17 +96,15 @@ describe("tree.dblclick", () => {
|
|
|
99
96
|
given.$tree.tree({ data: exampleData });
|
|
100
97
|
});
|
|
101
98
|
|
|
102
|
-
it("fires tree.dblclick", () =>
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
const treeClickEvent = e as ClickNodeEvent;
|
|
99
|
+
it("fires tree.dblclick", () => {
|
|
100
|
+
const onDoubleClick = jest.fn();
|
|
101
|
+
given.$tree.on("tree.dblclick", onDoubleClick);
|
|
106
102
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
})
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
}));
|
|
103
|
+
given.titleSpan.trigger("dblclick");
|
|
104
|
+
expect(onDoubleClick).toHaveBeenCalledWith(
|
|
105
|
+
expect.objectContaining({ node: given.node1 })
|
|
106
|
+
);
|
|
107
|
+
});
|
|
113
108
|
});
|
|
114
109
|
|
|
115
110
|
describe("tree.init", () => {
|
|
@@ -120,22 +115,17 @@ describe("tree.init", () => {
|
|
|
120
115
|
given("$tree", () => $("#tree1"));
|
|
121
116
|
|
|
122
117
|
context("with json data", () => {
|
|
123
|
-
it("is called", () =>
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
given.$tree.tree({
|
|
136
|
-
data: exampleData,
|
|
137
|
-
});
|
|
138
|
-
}));
|
|
118
|
+
it("is called", () => {
|
|
119
|
+
const onInit = jest.fn();
|
|
120
|
+
given.$tree.on("tree.init", onInit);
|
|
121
|
+
|
|
122
|
+
given.$tree.tree({
|
|
123
|
+
data: exampleData,
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
// eslint-disable-next-line jest/prefer-called-with
|
|
127
|
+
expect(onInit).toHaveBeenCalled();
|
|
128
|
+
});
|
|
139
129
|
});
|
|
140
130
|
|
|
141
131
|
context("with data loaded from an url", () => {
|
|
@@ -147,20 +137,17 @@ describe("tree.init", () => {
|
|
|
147
137
|
);
|
|
148
138
|
});
|
|
149
139
|
|
|
150
|
-
it("is called", () =>
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
given.$tree.tree({ dataUrl: "/tree/" });
|
|
163
|
-
}));
|
|
140
|
+
it("is called", async () => {
|
|
141
|
+
const onInit = jest.fn();
|
|
142
|
+
given.$tree.on("tree.init", onInit);
|
|
143
|
+
|
|
144
|
+
given.$tree.tree({ dataUrl: "/tree/" });
|
|
145
|
+
|
|
146
|
+
await waitFor(() => {
|
|
147
|
+
// eslint-disable-next-line jest/prefer-called-with
|
|
148
|
+
expect(onInit).toHaveBeenCalled();
|
|
149
|
+
});
|
|
150
|
+
});
|
|
164
151
|
});
|
|
165
152
|
});
|
|
166
153
|
|
|
@@ -172,16 +159,15 @@ describe("tree.load_data", () => {
|
|
|
172
159
|
given("$tree", () => $("#tree1"));
|
|
173
160
|
|
|
174
161
|
context("when the tree is initialized with data", () => {
|
|
175
|
-
it("fires tree.load_data", () =>
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
})
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
}));
|
|
162
|
+
it("fires tree.load_data", () => {
|
|
163
|
+
const onLoadData = jest.fn();
|
|
164
|
+
given.$tree.on("tree.load_data", onLoadData);
|
|
165
|
+
|
|
166
|
+
given.$tree.tree({ data: exampleData });
|
|
167
|
+
expect(onLoadData).toHaveBeenCalledWith(
|
|
168
|
+
expect.objectContaining({ tree_data: exampleData })
|
|
169
|
+
);
|
|
170
|
+
});
|
|
185
171
|
});
|
|
186
172
|
});
|
|
187
173
|
|
|
@@ -203,35 +189,35 @@ describe("tree.select", () => {
|
|
|
203
189
|
});
|
|
204
190
|
});
|
|
205
191
|
|
|
206
|
-
it("fires tree.
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
192
|
+
it("fires tree.select", () => {
|
|
193
|
+
const onSelect = jest.fn();
|
|
194
|
+
given.$tree.on("tree.select", onSelect);
|
|
195
|
+
|
|
196
|
+
given.titleSpan.trigger("click");
|
|
197
|
+
expect(onSelect).toHaveBeenCalledWith(
|
|
198
|
+
expect.objectContaining({
|
|
199
|
+
node: given.node1,
|
|
200
|
+
deselected_node: null,
|
|
201
|
+
})
|
|
202
|
+
);
|
|
203
|
+
});
|
|
218
204
|
|
|
219
205
|
context("when the node was selected", () => {
|
|
220
206
|
beforeEach(() => {
|
|
221
207
|
given.$tree.tree("selectNode", given.node1);
|
|
222
208
|
});
|
|
223
209
|
|
|
224
|
-
it("fires tree.select with node is null", () =>
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
const treeClickEvent = e as ClickNodeEvent;
|
|
228
|
-
|
|
229
|
-
expect(treeClickEvent.node).toBeNull();
|
|
230
|
-
expect(treeClickEvent.previous_node).toBe(given.node1);
|
|
231
|
-
done();
|
|
232
|
-
});
|
|
210
|
+
it("fires tree.select with node is null", () => {
|
|
211
|
+
const onSelect = jest.fn();
|
|
212
|
+
given.$tree.on("tree.select", onSelect);
|
|
233
213
|
|
|
234
|
-
|
|
235
|
-
|
|
214
|
+
given.titleSpan.trigger("click");
|
|
215
|
+
expect(onSelect).toHaveBeenCalledWith(
|
|
216
|
+
expect.objectContaining({
|
|
217
|
+
node: null,
|
|
218
|
+
previous_node: given.node1,
|
|
219
|
+
})
|
|
220
|
+
);
|
|
221
|
+
});
|
|
236
222
|
});
|
|
237
223
|
});
|
|
@@ -53,12 +53,12 @@ context("when a node has load_on_demand in the data", () => {
|
|
|
53
53
|
if (parentId === "1") {
|
|
54
54
|
return response(
|
|
55
55
|
ctx.status(200),
|
|
56
|
-
ctx.json([{ id: 2, name: "loaded-on-demand" }])
|
|
56
|
+
ctx.json([{ id: 2, name: "loaded-on-demand" }]),
|
|
57
57
|
);
|
|
58
58
|
} else {
|
|
59
59
|
return response(ctx.status(400));
|
|
60
60
|
}
|
|
61
|
-
})
|
|
61
|
+
}),
|
|
62
62
|
);
|
|
63
63
|
});
|
|
64
64
|
|
|
@@ -87,7 +87,7 @@ context("when a node has load_on_demand in the data", () => {
|
|
|
87
87
|
|
|
88
88
|
context("when the node is opened", () => {
|
|
89
89
|
given("node", () =>
|
|
90
|
-
given.$tree.tree("getNodeByNameMustExist", "parent-node")
|
|
90
|
+
given.$tree.tree("getNodeByNameMustExist", "parent-node"),
|
|
91
91
|
);
|
|
92
92
|
|
|
93
93
|
it("loads the subtree", async () => {
|
|
@@ -136,8 +136,9 @@ context("when a node has load_on_demand in the data", () => {
|
|
|
136
136
|
|
|
137
137
|
context("when the node is selected and doesn't have the focus", () => {
|
|
138
138
|
beforeEach(() => {
|
|
139
|
-
given.$tree.tree("selectNode", given.node
|
|
140
|
-
|
|
139
|
+
given.$tree.tree("selectNode", given.node, {
|
|
140
|
+
mustSetFocus: false,
|
|
141
|
+
});
|
|
141
142
|
});
|
|
142
143
|
|
|
143
144
|
it("keeps the node selected and not focused", async () => {
|
|
@@ -146,7 +146,7 @@ describe("addToSelection", () => {
|
|
|
146
146
|
|
|
147
147
|
it("selects the nodes", () => {
|
|
148
148
|
expect(given.$tree.tree("getSelectedNodes")).toEqual(
|
|
149
|
-
expect.arrayContaining([given.child1, given.child2])
|
|
149
|
+
expect.arrayContaining([given.child1, given.child2]),
|
|
150
150
|
);
|
|
151
151
|
});
|
|
152
152
|
|
|
@@ -207,7 +207,7 @@ describe("appendNode", () => {
|
|
|
207
207
|
|
|
208
208
|
context("when appending to a parent node", () => {
|
|
209
209
|
given("parent", () =>
|
|
210
|
-
given.$tree.tree("getNodeByNameMustExist", "node1")
|
|
210
|
+
given.$tree.tree("getNodeByNameMustExist", "node1"),
|
|
211
211
|
);
|
|
212
212
|
|
|
213
213
|
it("appends the node to parent node", () => {
|
|
@@ -244,7 +244,7 @@ describe("appendNode", () => {
|
|
|
244
244
|
|
|
245
245
|
it("sets the properties of the object", () => {
|
|
246
246
|
expect(given.$tree.tree("getNodeById", 99)).toMatchObject(
|
|
247
|
-
given.nodeData
|
|
247
|
+
given.nodeData,
|
|
248
248
|
);
|
|
249
249
|
});
|
|
250
250
|
});
|
|
@@ -302,7 +302,7 @@ describe("getNodeByHtmlElement", () => {
|
|
|
302
302
|
|
|
303
303
|
const given = getGiven<Vars>();
|
|
304
304
|
given("htmlElement", () =>
|
|
305
|
-
screen.getByText("node1", { selector: ".jqtree-title" })
|
|
305
|
+
screen.getByText("node1", { selector: ".jqtree-title" }),
|
|
306
306
|
);
|
|
307
307
|
given("$tree", () => $("#tree1"));
|
|
308
308
|
|
|
@@ -312,7 +312,7 @@ describe("getNodeByHtmlElement", () => {
|
|
|
312
312
|
|
|
313
313
|
it("returns the node", () => {
|
|
314
314
|
expect(
|
|
315
|
-
given.$tree.tree("getNodeByHtmlElement", given.htmlElement)
|
|
315
|
+
given.$tree.tree("getNodeByHtmlElement", given.htmlElement),
|
|
316
316
|
).toEqual(expect.objectContaining({ name: "node1" }));
|
|
317
317
|
});
|
|
318
318
|
});
|
|
@@ -394,7 +394,7 @@ describe("getNodesByProperty", () => {
|
|
|
394
394
|
|
|
395
395
|
it("gets nodes by property", () => {
|
|
396
396
|
expect(
|
|
397
|
-
given.$tree.tree("getNodesByProperty", "intProperty", 1)
|
|
397
|
+
given.$tree.tree("getNodesByProperty", "intProperty", 1),
|
|
398
398
|
).toEqual([given.node1]);
|
|
399
399
|
});
|
|
400
400
|
});
|
|
@@ -417,7 +417,7 @@ describe("getSelectedNode", () => {
|
|
|
417
417
|
|
|
418
418
|
context("when nodes have ids", () => {
|
|
419
419
|
given("node", () =>
|
|
420
|
-
given.$tree.tree("getNodeByNameMustExist", "node1")
|
|
420
|
+
given.$tree.tree("getNodeByNameMustExist", "node1"),
|
|
421
421
|
);
|
|
422
422
|
given("treeData", () => exampleData);
|
|
423
423
|
|
|
@@ -440,7 +440,7 @@ describe("getSelectedNode", () => {
|
|
|
440
440
|
|
|
441
441
|
context("when nodes don't have ids", () => {
|
|
442
442
|
given("node", () =>
|
|
443
|
-
given.$tree.tree("getNodeByNameMustExist", "without-id1")
|
|
443
|
+
given.$tree.tree("getNodeByNameMustExist", "without-id1"),
|
|
444
444
|
);
|
|
445
445
|
given("treeData", () => ["without-id1", "without-id2"]);
|
|
446
446
|
|
|
@@ -494,7 +494,7 @@ describe("getSelectedNodes", () => {
|
|
|
494
494
|
|
|
495
495
|
it("returns the selected nodes", () => {
|
|
496
496
|
expect(given.$tree.tree("getSelectedNodes")).toEqual(
|
|
497
|
-
expect.arrayContaining([given.child1, given.child2])
|
|
497
|
+
expect.arrayContaining([given.child1, given.child2]),
|
|
498
498
|
);
|
|
499
499
|
});
|
|
500
500
|
});
|
|
@@ -659,7 +659,7 @@ describe("loadData", () => {
|
|
|
659
659
|
given.$tree.tree(
|
|
660
660
|
"loadData",
|
|
661
661
|
exampleData,
|
|
662
|
-
given.$tree.tree("getNodeByNameMustExist", "initial1")
|
|
662
|
+
given.$tree.tree("getNodeByNameMustExist", "initial1"),
|
|
663
663
|
);
|
|
664
664
|
});
|
|
665
665
|
|
|
@@ -688,7 +688,7 @@ describe("loadData", () => {
|
|
|
688
688
|
beforeEach(() => {
|
|
689
689
|
given.$tree.tree(
|
|
690
690
|
"selectNode",
|
|
691
|
-
given.$tree.tree("getNodeByNameMustExist", "child1")
|
|
691
|
+
given.$tree.tree("getNodeByNameMustExist", "child1"),
|
|
692
692
|
);
|
|
693
693
|
});
|
|
694
694
|
|
|
@@ -696,7 +696,7 @@ describe("loadData", () => {
|
|
|
696
696
|
given.$tree.tree(
|
|
697
697
|
"loadData",
|
|
698
698
|
["new-child1"],
|
|
699
|
-
given.$tree.tree("getNodeByNameMustExist", "node1")
|
|
699
|
+
given.$tree.tree("getNodeByNameMustExist", "node1"),
|
|
700
700
|
);
|
|
701
701
|
|
|
702
702
|
expect(given.$tree.tree("getSelectedNode")).toBeFalse();
|
|
@@ -712,7 +712,7 @@ describe("loadData", () => {
|
|
|
712
712
|
given.$tree.tree(
|
|
713
713
|
"loadData",
|
|
714
714
|
["new-child1"],
|
|
715
|
-
given.$tree.tree("getNodeByNameMustExist", "node1")
|
|
715
|
+
given.$tree.tree("getNodeByNameMustExist", "node1"),
|
|
716
716
|
);
|
|
717
717
|
|
|
718
718
|
expect(given.$tree.tree("getSelectedNode")).toBeFalse();
|
|
@@ -723,7 +723,7 @@ describe("loadData", () => {
|
|
|
723
723
|
given.$tree.tree(
|
|
724
724
|
"loadData",
|
|
725
725
|
["new-child1"],
|
|
726
|
-
given.$tree.tree("getNodeByNameMustExist", "node2")
|
|
726
|
+
given.$tree.tree("getNodeByNameMustExist", "node2"),
|
|
727
727
|
);
|
|
728
728
|
|
|
729
729
|
expect(given.$tree.tree("getSelectedNode")).toMatchObject({
|
|
@@ -750,8 +750,8 @@ describe("loadDataFromUrl", () => {
|
|
|
750
750
|
beforeEach(() => {
|
|
751
751
|
server.use(
|
|
752
752
|
rest.get("/tree/", (_request, response, ctx) =>
|
|
753
|
-
response(ctx.status(200), ctx.json(given.serverData))
|
|
754
|
-
)
|
|
753
|
+
response(ctx.status(200), ctx.json(given.serverData)),
|
|
754
|
+
),
|
|
755
755
|
);
|
|
756
756
|
|
|
757
757
|
given.$tree.tree({ data: given.initialData });
|
|
@@ -775,7 +775,7 @@ describe("loadDataFromUrl", () => {
|
|
|
775
775
|
it("loads a subtree", async () => {
|
|
776
776
|
const parentNode = given.$tree.tree(
|
|
777
777
|
"getNodeByNameMustExist",
|
|
778
|
-
"initial1"
|
|
778
|
+
"initial1",
|
|
779
779
|
);
|
|
780
780
|
given.$tree.tree("loadDataFromUrl", "/tree/", parentNode);
|
|
781
781
|
await screen.findByText("new1");
|
|
@@ -949,7 +949,7 @@ describe("prependNode", () => {
|
|
|
949
949
|
|
|
950
950
|
context("with a parent node", () => {
|
|
951
951
|
given("parent", () =>
|
|
952
|
-
given.$tree.tree("getNodeByNameMustExist", "node1")
|
|
952
|
+
given.$tree.tree("getNodeByNameMustExist", "node1"),
|
|
953
953
|
);
|
|
954
954
|
|
|
955
955
|
it("prepends the node to the parent", () => {
|
|
@@ -984,7 +984,7 @@ describe("refresh", () => {
|
|
|
984
984
|
|
|
985
985
|
it("rerenders the tree", () => {
|
|
986
986
|
const tree = given.$tree.tree("getTree");
|
|
987
|
-
tree.children[0].name = "node1a";
|
|
987
|
+
(tree.children[0] as INode).name = "node1a";
|
|
988
988
|
|
|
989
989
|
expect(given.$tree).toHaveTreeStructure([
|
|
990
990
|
expect.objectContaining({ name: "node1" }),
|
|
@@ -1013,8 +1013,8 @@ describe("reload", () => {
|
|
|
1013
1013
|
beforeEach(async () => {
|
|
1014
1014
|
server.use(
|
|
1015
1015
|
rest.get("/tree2/", (_request, response, ctx) =>
|
|
1016
|
-
response(ctx.status(200), ctx.json(exampleData))
|
|
1017
|
-
)
|
|
1016
|
+
response(ctx.status(200), ctx.json(exampleData)),
|
|
1017
|
+
),
|
|
1018
1018
|
);
|
|
1019
1019
|
|
|
1020
1020
|
given.$tree.tree({ dataUrl: "/tree2/" });
|
|
@@ -1070,7 +1070,7 @@ describe("removeNode", () => {
|
|
|
1070
1070
|
|
|
1071
1071
|
context("with a child node", () => {
|
|
1072
1072
|
given("node", () =>
|
|
1073
|
-
given.$tree.tree("getNodeByNameMustExist", "child1")
|
|
1073
|
+
given.$tree.tree("getNodeByNameMustExist", "child1"),
|
|
1074
1074
|
);
|
|
1075
1075
|
|
|
1076
1076
|
it("removes the node", () => {
|
|
@@ -1103,7 +1103,7 @@ describe("removeNode", () => {
|
|
|
1103
1103
|
|
|
1104
1104
|
context("with a parent node and its children", () => {
|
|
1105
1105
|
given("node", () =>
|
|
1106
|
-
given.$tree.tree("getNodeByNameMustExist", "node1")
|
|
1106
|
+
given.$tree.tree("getNodeByNameMustExist", "node1"),
|
|
1107
1107
|
);
|
|
1108
1108
|
|
|
1109
1109
|
it("removes the node", () => {
|
|
@@ -1121,7 +1121,7 @@ describe("removeNode", () => {
|
|
|
1121
1121
|
beforeEach(() => {
|
|
1122
1122
|
const child1 = given.$tree.tree(
|
|
1123
1123
|
"getNodeByNameMustExist",
|
|
1124
|
-
"child1"
|
|
1124
|
+
"child1",
|
|
1125
1125
|
);
|
|
1126
1126
|
given.$tree.tree("selectNode", child1);
|
|
1127
1127
|
});
|
|
@@ -1139,7 +1139,7 @@ describe("removeNode", () => {
|
|
|
1139
1139
|
|
|
1140
1140
|
it("raises an exception", () => {
|
|
1141
1141
|
expect(() => given.$tree.tree("removeNode", given.node)).toThrow(
|
|
1142
|
-
"Node has no parent"
|
|
1142
|
+
"Node has no parent",
|
|
1143
1143
|
);
|
|
1144
1144
|
});
|
|
1145
1145
|
});
|
|
@@ -1382,7 +1382,7 @@ describe("updateNode", () => {
|
|
|
1382
1382
|
expect.objectContaining({ name: "node2" }),
|
|
1383
1383
|
]);
|
|
1384
1384
|
expect(given.$tree.tree("getNodeById", 999)).toMatchObject(
|
|
1385
|
-
given.nodeData
|
|
1385
|
+
given.nodeData,
|
|
1386
1386
|
);
|
|
1387
1387
|
});
|
|
1388
1388
|
});
|
|
@@ -1406,7 +1406,7 @@ describe("updateNode", () => {
|
|
|
1406
1406
|
context("when adding a child to a child node", () => {
|
|
1407
1407
|
given("nodeData", () => ({ children: ["new-child"] }));
|
|
1408
1408
|
given("node", () =>
|
|
1409
|
-
given.$tree.tree("getNodeByNameMustExist", "child1")
|
|
1409
|
+
given.$tree.tree("getNodeByNameMustExist", "child1"),
|
|
1410
1410
|
);
|
|
1411
1411
|
|
|
1412
1412
|
it("adds the child node", () => {
|