jqtree 1.5.2 → 1.6.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.
Files changed (174) hide show
  1. package/.eslintrc +1 -0
  2. package/.github/workflows/ci.yml +54 -0
  3. package/.github/workflows/codeql-analysis.yml +28 -0
  4. package/README.md +1 -1
  5. package/_config.yml +1 -1
  6. package/_entries/10_changelog.md +20 -0
  7. package/_entries/{36_showemptynode.md → 36_showemptyfolder.md} +5 -5
  8. package/_entries/38_start_dnd_delay.md +13 -0
  9. package/_entries/{38_tabindex.md → 39_tabindex.md} +0 -0
  10. package/_entries/{39_usecontextmenu.md → 40_usecontextmenu.md} +0 -0
  11. package/_entries/{40_functions.md → 41_functions.md} +0 -0
  12. package/_entries/{41_addparentnode.md → 42_addparentnode.md} +0 -0
  13. package/_entries/{42_addnodeafter.md → 43_addnodeafter.md} +0 -0
  14. package/_entries/{43_addnodebefore.md → 44_addnodebefore.md} +0 -0
  15. package/_entries/{44_appendnode.md → 45_appendnode.md} +0 -0
  16. package/_entries/{45_closenode.md → 46_closenode.md} +0 -0
  17. package/_entries/{46_destroy.md → 47_destroy.md} +0 -0
  18. package/_entries/{47_getnodebycallback.md → 48_getnodebycallback.md} +0 -0
  19. package/_entries/{48_getnodebyid.md → 49_getnodebyid.md} +0 -0
  20. package/_entries/{49_getnodebyhtmlelement.md → 50_getnodebyhtmlelement.md} +0 -0
  21. package/_entries/{50_getselectednode.md → 51_getselectednode.md} +0 -0
  22. package/_entries/{51_getstate.md → 52_getstate.md} +0 -0
  23. package/_entries/{52_gettree.md → 53_gettree.md} +0 -0
  24. package/_entries/{53_isdragging.md → 54_isdragging.md} +0 -0
  25. package/_entries/{54_loaddata.md → 55_loaddata.md} +0 -0
  26. package/_entries/{55_loaddatafromurl.md → 56_loaddatafromurl.md} +0 -0
  27. package/_entries/{56_movedown.md → 57_movedown.md} +0 -0
  28. package/_entries/{57_movenode.md → 58_movenode.md} +0 -0
  29. package/_entries/{58_moveup.md → 59_moveup.md} +0 -0
  30. package/_entries/{59_opennode.md → 60_opennode.md} +0 -0
  31. package/_entries/{60_prependnode.md → 61_prependnode.md} +0 -0
  32. package/_entries/62_refresh.md +12 -0
  33. package/_entries/{61_reload.md → 63_reload.md} +0 -0
  34. package/_entries/{62_removenode.md → 64_removenode.md} +0 -0
  35. package/_entries/{63_selectnode.md → 65_selectnode.md} +0 -0
  36. package/_entries/{64_scrolltonode.md → 66_scrolltonode.md} +0 -0
  37. package/_entries/{65_setoption.md → 67_setoption.md} +0 -0
  38. package/_entries/{66_setstate.md → 68_setstate.md} +0 -0
  39. package/_entries/{67_toggle.md → 69_toggle.md} +0 -0
  40. package/_entries/{68_tojson.md → 70_tojson.md} +0 -0
  41. package/_entries/{69_updatenode.md → 71_updatenode.md} +0 -0
  42. package/_entries/{70_events.md → 72_events.md} +0 -0
  43. package/_entries/{71_tree-click.md → 73_tree-click.md} +0 -0
  44. package/_entries/{72_tree-close.md → 74_tree-close.md} +0 -0
  45. package/_entries/{73_tree-contextmenu.md → 75_tree-contextmenu.md} +0 -0
  46. package/_entries/{74_tree-dblclick.md → 76_tree-dblclick.md} +0 -0
  47. package/_entries/{75_tree-init.md → 77_tree-init.md} +0 -0
  48. package/_entries/{76_tree-load-data.md → 78_tree-load-data.md} +0 -0
  49. package/_entries/{77_tree-loading-data.md → 79_tree-loading-data.md} +0 -0
  50. package/_entries/{78_tree-move.md → 80_tree-move.md} +0 -0
  51. package/_entries/{79_tree-refresh.md → 81_tree-refresh.md} +0 -0
  52. package/_entries/{80_tree-open.md → 82_tree-open.md} +0 -0
  53. package/_entries/{81_tree-select.md → 83_tree-select.md} +0 -0
  54. package/_entries/{82_multiple-selection.md → 84_multiple-selection.md} +0 -0
  55. package/_entries/{83_add-to-selection.md → 85_add-to-selection.md} +0 -0
  56. package/_entries/{84_get-selected-nodes.md → 86_get-selected-nodes.md} +0 -0
  57. package/_entries/{85_is-node-selected.md → 87_is-node-selected.md} +0 -0
  58. package/_entries/{86_remove-from-selection.md → 88_remove-from-selection.md} +0 -0
  59. package/_entries/{87_node-functions.md → 89_node-functions.md} +0 -0
  60. package/_entries/{88_children.md → 90_children.md} +0 -0
  61. package/_entries/{89_getdata.md → 91_getdata.md} +0 -0
  62. package/_entries/{90_getlevel.md → 92_getlevel.md} +0 -0
  63. package/_entries/{91_getnextnode.md → 93_getnextnode.md} +0 -0
  64. package/_entries/{92_getnextsibling.md → 94_getnextsibling.md} +0 -0
  65. package/_entries/{93_getpreviousnode.md → 95_getpreviousnode.md} +0 -0
  66. package/_entries/{94_getprevioussibling.md → 96_getprevioussibling.md} +0 -0
  67. package/_entries/{95_parent.md → 97_parent.md} +0 -0
  68. package/_examples/13_drag_outside.html +2 -1
  69. package/_examples/14_filter.html +113 -0
  70. package/_layouts/base.html +1 -23
  71. package/babel.config.json +11 -0
  72. package/babel.coverage.config.json +4 -0
  73. package/bower.json +1 -1
  74. package/jest-browser.config.js +0 -3
  75. package/jest-jsdom.config.js +1 -2
  76. package/jqtree.css +4 -1
  77. package/jqtree.postcss +3 -0
  78. package/lib/dataLoader.js +146 -98
  79. package/lib/dragAndDropHandler.js +668 -470
  80. package/lib/elementsRenderer.js +282 -197
  81. package/lib/jqtreeOptions.js +1 -2
  82. package/lib/keyHandler.js +134 -87
  83. package/lib/mouse.widget.js +288 -165
  84. package/lib/node.js +693 -505
  85. package/lib/nodeElement.js +329 -205
  86. package/lib/playwright/playwright.test.js +216 -189
  87. package/lib/playwright/testUtil.js +437 -192
  88. package/lib/playwright/visualRegression.js +183 -117
  89. package/lib/saveStateHandler.js +311 -204
  90. package/lib/scrollHandler.js +293 -199
  91. package/lib/selectNodeHandler.js +140 -105
  92. package/lib/simple.widget.js +184 -109
  93. package/lib/test/global.d.js +3 -0
  94. package/lib/test/jqTree/create.test.js +44 -40
  95. package/lib/test/jqTree/events.test.js +185 -138
  96. package/lib/test/jqTree/keyboard.test.js +216 -199
  97. package/lib/test/jqTree/loadOnDemand.test.js +233 -157
  98. package/lib/test/jqTree/methods.test.js +1269 -1000
  99. package/lib/test/jqTree/options.test.js +467 -398
  100. package/lib/test/node.test.js +1036 -873
  101. package/lib/test/nodeUtil.test.js +21 -20
  102. package/lib/test/support/exampleData.js +35 -23
  103. package/lib/test/support/jqTreeMatchers.js +72 -54
  104. package/lib/test/support/matchers.d.js +1 -0
  105. package/lib/test/support/setupTests.js +9 -3
  106. package/lib/test/support/testUtil.js +38 -15
  107. package/lib/test/support/treeStructure.js +41 -32
  108. package/lib/test/util.test.js +21 -20
  109. package/lib/tree.jquery.d.js +1 -0
  110. package/lib/tree.jquery.js +1264 -883
  111. package/lib/types.js +1 -2
  112. package/lib/typings.d.js +2 -0
  113. package/lib/util.js +21 -7
  114. package/lib/version.js +8 -3
  115. package/package.json +43 -36
  116. package/production +4 -4
  117. package/rollup.config.js +16 -11
  118. package/src/dataLoader.ts +6 -6
  119. package/src/dragAndDropHandler.ts +0 -4
  120. package/src/elementsRenderer.ts +4 -0
  121. package/src/jqtreeOptions.ts +33 -32
  122. package/src/mouse.widget.ts +58 -29
  123. package/src/node.ts +32 -46
  124. package/src/nodeElement.ts +17 -9
  125. package/src/playwright/.eslintrc +5 -0
  126. package/src/playwright/playwright.test.ts +30 -30
  127. package/src/playwright/testUtil.ts +36 -37
  128. package/src/saveStateHandler.ts +11 -6
  129. package/src/selectNodeHandler.ts +14 -21
  130. package/src/simple.widget.ts +1 -1
  131. package/src/test/.eslintrc +4 -0
  132. package/src/test/jqTree/create.test.ts +0 -1
  133. package/src/test/jqTree/events.test.ts +12 -13
  134. package/src/test/jqTree/keyboard.test.ts +0 -1
  135. package/src/test/jqTree/loadOnDemand.test.ts +46 -1
  136. package/src/test/jqTree/methods.test.ts +67 -18
  137. package/src/test/jqTree/options.test.ts +5 -6
  138. package/src/test/node.test.ts +2 -2
  139. package/src/test/support/jqTreeMatchers.ts +8 -9
  140. package/src/test/support/matchers.d.ts +2 -4
  141. package/src/test/support/setupTests.ts +2 -1
  142. package/src/tree.jquery.d.ts +19 -13
  143. package/src/tree.jquery.ts +63 -57
  144. package/src/version.ts +1 -1
  145. package/static/bower.json +3 -3
  146. package/static/bower_components/fontawesome/css/all.min.css +2 -2
  147. package/static/bower_components/fontawesome/webfonts/fa-brands-400.eot +0 -0
  148. package/static/bower_components/fontawesome/webfonts/fa-brands-400.svg +774 -627
  149. package/static/bower_components/fontawesome/webfonts/fa-brands-400.ttf +0 -0
  150. package/static/bower_components/fontawesome/webfonts/fa-brands-400.woff +0 -0
  151. package/static/bower_components/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
  152. package/static/bower_components/fontawesome/webfonts/fa-regular-400.eot +0 -0
  153. package/static/bower_components/fontawesome/webfonts/fa-regular-400.svg +93 -95
  154. package/static/bower_components/fontawesome/webfonts/fa-regular-400.ttf +0 -0
  155. package/static/bower_components/fontawesome/webfonts/fa-regular-400.woff +0 -0
  156. package/static/bower_components/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
  157. package/static/bower_components/fontawesome/webfonts/fa-solid-900.eot +0 -0
  158. package/static/bower_components/fontawesome/webfonts/fa-solid-900.svg +1164 -1074
  159. package/static/bower_components/fontawesome/webfonts/fa-solid-900.ttf +0 -0
  160. package/static/bower_components/fontawesome/webfonts/fa-solid-900.woff +0 -0
  161. package/static/bower_components/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
  162. package/static/bower_components/jquery/dist/jquery.js +118 -109
  163. package/static/bower_components/jquery/dist/jquery.min.js +2 -2
  164. package/static/bower_components/jquery-mockjax/dist/jquery.mockjax.js +15 -9
  165. package/static/example.css +13 -0
  166. package/static/example.postcss +13 -0
  167. package/static/example_data.js +33 -36
  168. package/static/examples/filter.js +63 -0
  169. package/tree.jquery.debug.js +4809 -3305
  170. package/tree.jquery.debug.js.map +1 -1
  171. package/tree.jquery.js +3 -3
  172. package/tree.jquery.js.map +1 -1
  173. package/tsconfig.json +1 -0
  174. package/.travis.yml +0 -18
@@ -1,1101 +1,1370 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- exports.__esModule = true;
39
- var $ = require("jquery");
40
- var givens_1 = require("givens");
41
- var dom_1 = require("@testing-library/dom");
42
- var msw_1 = require("msw");
43
- var node_1 = require("msw/node");
2
+
3
+ var _givens = _interopRequireDefault(require("givens"));
4
+
5
+ var _dom = require("@testing-library/dom");
6
+
7
+ var _msw = require("msw");
8
+
9
+ var _node = require("msw/node");
10
+
44
11
  require("../../tree.jquery");
45
- var exampleData_1 = require("../support/exampleData");
46
- var testUtil_1 = require("../support/testUtil");
47
- var version_1 = require("../../version");
12
+
13
+ var _exampleData = _interopRequireDefault(require("../support/exampleData"));
14
+
15
+ var _testUtil = require("../support/testUtil");
16
+
17
+ var _version = _interopRequireDefault(require("../../version"));
18
+
19
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
20
+
21
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
22
+
23
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
24
+
48
25
  var context = describe;
49
26
  beforeEach(function () {
50
- $("body").append('<div id="tree1"></div>');
27
+ $("body").append('<div id="tree1"></div>');
51
28
  });
52
29
  afterEach(function () {
53
- var $tree = $("#tree1");
54
- $tree.tree("destroy");
55
- $tree.remove();
56
- localStorage.clear();
30
+ var $tree = $("#tree1");
31
+ $tree.tree("destroy");
32
+ $tree.remove();
33
+ localStorage.clear();
57
34
  });
58
35
  describe("addNodeAfter", function () {
59
- var given = givens_1["default"]();
60
- given("$tree", function () { return $("#tree1"); });
61
- given("node", function () { return given.$tree.tree("getNodeByNameMustExist", "node1"); });
62
- beforeEach(function () {
63
- given.$tree.tree({
64
- autoOpen: true,
65
- data: exampleData_1["default"]
66
- });
67
- given.$tree.tree("addNodeAfter", "added-node", given.node);
68
- });
69
- it("adds the node", function () {
70
- expect(given.$tree).toHaveTreeStructure([
71
- expect.objectContaining({ name: "node1" }),
72
- expect.objectContaining({ name: "added-node" }),
73
- expect.objectContaining({ name: "node2" }),
74
- ]);
75
- });
36
+ var given = (0, _givens["default"])();
37
+ given("$tree", function () {
38
+ return $("#tree1");
39
+ });
40
+ given("node", function () {
41
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
42
+ });
43
+ beforeEach(function () {
44
+ given.$tree.tree({
45
+ autoOpen: true,
46
+ data: _exampleData["default"]
47
+ });
48
+ given.$tree.tree("addNodeAfter", "added-node", given.node);
49
+ });
50
+ it("adds the node", function () {
51
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
52
+ name: "node1"
53
+ }), expect.objectContaining({
54
+ name: "added-node"
55
+ }), expect.objectContaining({
56
+ name: "node2"
57
+ })]);
58
+ });
76
59
  });
77
60
  describe("addNodeBefore", function () {
78
- var given = givens_1["default"]();
79
- given("$tree", function () { return $("#tree1"); });
80
- given("node", function () { return given.$tree.tree("getNodeByNameMustExist", "node1"); });
81
- beforeEach(function () {
82
- given.$tree.tree({
83
- autoOpen: true,
84
- data: exampleData_1["default"]
85
- });
86
- given.$tree.tree("addNodeBefore", "added-node", given.node);
87
- });
88
- it("adds the node", function () {
89
- expect(given.$tree).toHaveTreeStructure([
90
- expect.objectContaining({ name: "added-node" }),
91
- expect.objectContaining({ name: "node1" }),
92
- expect.objectContaining({ name: "node2" }),
93
- ]);
94
- });
61
+ var given = (0, _givens["default"])();
62
+ given("$tree", function () {
63
+ return $("#tree1");
64
+ });
65
+ given("node", function () {
66
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
67
+ });
68
+ beforeEach(function () {
69
+ given.$tree.tree({
70
+ autoOpen: true,
71
+ data: _exampleData["default"]
72
+ });
73
+ given.$tree.tree("addNodeBefore", "added-node", given.node);
74
+ });
75
+ it("adds the node", function () {
76
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
77
+ name: "added-node"
78
+ }), expect.objectContaining({
79
+ name: "node1"
80
+ }), expect.objectContaining({
81
+ name: "node2"
82
+ })]);
83
+ });
95
84
  });
96
85
  describe("addParentNode", function () {
97
- var given = givens_1["default"]();
98
- given("$tree", function () { return $("#tree1"); });
99
- given("child1", function () { return given.$tree.tree("getNodeByNameMustExist", "child1"); });
100
- beforeEach(function () {
101
- given.$tree.tree({
102
- autoOpen: true,
103
- data: exampleData_1["default"]
104
- });
105
- given.$tree.tree("addParentNode", "new-parent-node", given.child1);
106
- });
107
- it("adds the parent node", function () {
108
- expect(given.$tree).toHaveTreeStructure([
109
- expect.objectContaining({
110
- name: "node1",
111
- children: [
112
- expect.objectContaining({
113
- name: "new-parent-node",
114
- children: [
115
- expect.objectContaining({ name: "child1" }),
116
- expect.objectContaining({ name: "child2" }),
117
- ]
118
- }),
119
- ]
120
- }),
121
- expect.objectContaining({ name: "node2" }),
122
- ]);
123
- });
86
+ var given = (0, _givens["default"])();
87
+ given("$tree", function () {
88
+ return $("#tree1");
89
+ });
90
+ given("child1", function () {
91
+ return given.$tree.tree("getNodeByNameMustExist", "child1");
92
+ });
93
+ beforeEach(function () {
94
+ given.$tree.tree({
95
+ autoOpen: true,
96
+ data: _exampleData["default"]
97
+ });
98
+ given.$tree.tree("addParentNode", "new-parent-node", given.child1);
99
+ });
100
+ it("adds the parent node", function () {
101
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
102
+ name: "node1",
103
+ children: [expect.objectContaining({
104
+ name: "new-parent-node",
105
+ children: [expect.objectContaining({
106
+ name: "child1"
107
+ }), expect.objectContaining({
108
+ name: "child2"
109
+ })]
110
+ })]
111
+ }), expect.objectContaining({
112
+ name: "node2"
113
+ })]);
114
+ });
124
115
  });
125
116
  describe("addToSelection", function () {
126
- var given = givens_1["default"]();
127
- given("$tree", function () { return $("#tree1"); });
128
- given("child1", function () { return given.$tree.tree("getNodeByNameMustExist", "child1"); });
129
- given("child2", function () { return given.$tree.tree("getNodeByNameMustExist", "child2"); });
130
- beforeEach(function () {
131
- given.$tree.tree({
132
- autoOpen: true,
133
- data: exampleData_1["default"]
134
- });
135
- given.$tree.tree("addToSelection", given.child1);
136
- given.$tree.tree("addToSelection", given.child2);
137
- });
138
- it("selects the nodes", function () {
139
- expect(given.$tree.tree("getSelectedNodes")).toEqual(expect.arrayContaining([given.child1, given.child2]));
140
- });
141
- it("renders the nodes correctly", function () {
142
- expect(given.$tree).toHaveTreeStructure([
143
- expect.objectContaining({
144
- name: "node1",
145
- selected: false,
146
- children: [
147
- expect.objectContaining({ name: "child1", selected: true }),
148
- expect.objectContaining({ name: "child2", selected: true }),
149
- ]
150
- }),
151
- expect.objectContaining({
152
- name: "node2",
153
- selected: false,
154
- children: [
155
- expect.objectContaining({
156
- name: "node3",
157
- selected: false
158
- }),
159
- ]
160
- }),
161
- ]);
162
- });
117
+ var given = (0, _givens["default"])();
118
+ given("$tree", function () {
119
+ return $("#tree1");
120
+ });
121
+ given("child1", function () {
122
+ return given.$tree.tree("getNodeByNameMustExist", "child1");
123
+ });
124
+ given("child2", function () {
125
+ return given.$tree.tree("getNodeByNameMustExist", "child2");
126
+ });
127
+ beforeEach(function () {
128
+ given.$tree.tree({
129
+ autoOpen: true,
130
+ data: _exampleData["default"]
131
+ });
132
+ given.$tree.tree("addToSelection", given.child1);
133
+ given.$tree.tree("addToSelection", given.child2);
134
+ });
135
+ it("selects the nodes", function () {
136
+ expect(given.$tree.tree("getSelectedNodes")).toEqual(expect.arrayContaining([given.child1, given.child2]));
137
+ });
138
+ it("renders the nodes correctly", function () {
139
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
140
+ name: "node1",
141
+ selected: false,
142
+ children: [expect.objectContaining({
143
+ name: "child1",
144
+ selected: true
145
+ }), expect.objectContaining({
146
+ name: "child2",
147
+ selected: true
148
+ })]
149
+ }), expect.objectContaining({
150
+ name: "node2",
151
+ selected: false,
152
+ children: [expect.objectContaining({
153
+ name: "node3",
154
+ selected: false
155
+ })]
156
+ })]);
157
+ });
163
158
  });
164
159
  describe("appendNode", function () {
165
- var given = givens_1["default"]();
166
- given("$tree", function () { return $("#tree1"); });
167
- given("parent", function () { return undefined; });
168
- given("nodeData", function () { return "appended-node"; });
169
- beforeEach(function () {
170
- given.$tree.tree({
171
- autoOpen: true,
172
- data: exampleData_1["default"]
173
- });
174
- given.$tree.tree("appendNode", given.nodeData, given.parent);
175
- });
176
- context("with an empty parent parameter", function () {
177
- it("appends the node to the tree", function () {
178
- expect(given.$tree).toHaveTreeStructure([
179
- expect.objectContaining({ name: "node1" }),
180
- expect.objectContaining({ name: "node2" }),
181
- expect.objectContaining({ name: "appended-node" }),
182
- ]);
183
- });
184
- });
185
- context("when appending to a parent node", function () {
186
- given("parent", function () {
187
- return given.$tree.tree("getNodeByNameMustExist", "node1");
188
- });
189
- it("appends the node to parent node", function () {
190
- expect(given.$tree).toHaveTreeStructure([
191
- expect.objectContaining({
192
- name: "node1",
193
- children: [
194
- expect.objectContaining({ name: "child1" }),
195
- expect.objectContaining({ name: "child2" }),
196
- expect.objectContaining({ name: "appended-node" }),
197
- ]
198
- }),
199
- expect.objectContaining({ name: "node2" }),
200
- ]);
201
- });
202
- });
203
- context("when appending a node using an object", function () {
204
- given("nodeData", function () { return ({
205
- color: "green",
206
- id: 99,
207
- name: "appended-using-object"
208
- }); });
209
- it("appends the node to the tree", function () {
210
- expect(given.$tree).toHaveTreeStructure([
211
- expect.objectContaining({
212
- name: "node1"
213
- }),
214
- expect.objectContaining({ name: "node2" }),
215
- expect.objectContaining({ name: "appended-using-object" }),
216
- ]);
217
- });
218
- it("sets the properties of the object", function () {
219
- expect(given.$tree.tree("getNodeById", 99)).toMatchObject(given.nodeData);
220
- });
221
- });
160
+ var given = (0, _givens["default"])();
161
+ given("$tree", function () {
162
+ return $("#tree1");
163
+ });
164
+ given("parent", function () {
165
+ return undefined;
166
+ });
167
+ given("nodeData", function () {
168
+ return "appended-node";
169
+ });
170
+ beforeEach(function () {
171
+ given.$tree.tree({
172
+ autoOpen: true,
173
+ data: _exampleData["default"]
174
+ });
175
+ given.$tree.tree("appendNode", given.nodeData, given.parent);
176
+ });
177
+ context("with an empty parent parameter", function () {
178
+ it("appends the node to the tree", function () {
179
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
180
+ name: "node1"
181
+ }), expect.objectContaining({
182
+ name: "node2"
183
+ }), expect.objectContaining({
184
+ name: "appended-node"
185
+ })]);
186
+ });
187
+ });
188
+ context("when appending to a parent node", function () {
189
+ given("parent", function () {
190
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
191
+ });
192
+ it("appends the node to parent node", function () {
193
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
194
+ name: "node1",
195
+ children: [expect.objectContaining({
196
+ name: "child1"
197
+ }), expect.objectContaining({
198
+ name: "child2"
199
+ }), expect.objectContaining({
200
+ name: "appended-node"
201
+ })]
202
+ }), expect.objectContaining({
203
+ name: "node2"
204
+ })]);
205
+ });
206
+ });
207
+ context("when appending a node using an object", function () {
208
+ given("nodeData", function () {
209
+ return {
210
+ color: "green",
211
+ id: 99,
212
+ name: "appended-using-object"
213
+ };
214
+ });
215
+ it("appends the node to the tree", function () {
216
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
217
+ name: "node1"
218
+ }), expect.objectContaining({
219
+ name: "node2"
220
+ }), expect.objectContaining({
221
+ name: "appended-using-object"
222
+ })]);
223
+ });
224
+ it("sets the properties of the object", function () {
225
+ expect(given.$tree.tree("getNodeById", 99)).toMatchObject(given.nodeData);
226
+ });
227
+ });
222
228
  });
223
229
  describe("closeNode", function () {
224
- var given = givens_1["default"]();
225
- given("node1", function () { return given.$tree.tree("getNodeByNameMustExist", "node1"); });
226
- given("$tree", function () { return $("#tree1"); });
227
- beforeEach(function () {
228
- given.$tree.tree({
229
- autoOpen: true,
230
- data: exampleData_1["default"]
231
- });
232
- given.$tree.tree("closeNode", given.node1, false);
233
- });
234
- it("closes the node", function () {
235
- expect(given.node1.element).toBeClosed();
236
- });
230
+ var given = (0, _givens["default"])();
231
+ given("node1", function () {
232
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
233
+ });
234
+ given("$tree", function () {
235
+ return $("#tree1");
236
+ });
237
+ beforeEach(function () {
238
+ given.$tree.tree({
239
+ autoOpen: true,
240
+ data: _exampleData["default"]
241
+ });
242
+ given.$tree.tree("closeNode", given.node1, false);
243
+ });
244
+ it("closes the node", function () {
245
+ expect(given.node1.element).toBeClosed();
246
+ });
237
247
  });
238
248
  describe("getNodeByCallback", function () {
239
- var given = givens_1["default"]();
240
- given("$tree", function () { return $("#tree1"); });
241
- beforeEach(function () {
242
- given.$tree.tree({ data: exampleData_1["default"] });
243
- });
244
- it("returns the node", function () {
245
- var callback = function (node) { return node.name.startsWith("chi"); };
246
- expect(given.$tree.tree("getNodeByCallback", callback)).toMatchObject({
247
- name: "child1"
248
- });
249
- });
249
+ var given = (0, _givens["default"])();
250
+ given("$tree", function () {
251
+ return $("#tree1");
252
+ });
253
+ beforeEach(function () {
254
+ given.$tree.tree({
255
+ data: _exampleData["default"]
256
+ });
257
+ });
258
+ it("returns the node", function () {
259
+ var callback = function callback(node) {
260
+ return node.name.startsWith("chi");
261
+ };
262
+
263
+ expect(given.$tree.tree("getNodeByCallback", callback)).toMatchObject({
264
+ name: "child1"
265
+ });
266
+ });
250
267
  });
251
268
  describe("getNodeByHtmlElement", function () {
252
- var given = givens_1["default"]();
253
- given("htmlElement", function () {
254
- return dom_1.screen.getByText("node1", { selector: ".jqtree-title" });
255
- });
256
- given("$tree", function () { return $("#tree1"); });
257
- beforeEach(function () {
258
- given.$tree.tree({ data: exampleData_1["default"] });
259
- });
260
- it("returns the node", function () {
261
- expect(given.$tree.tree("getNodeByHtmlElement", given.htmlElement)).toEqual(expect.objectContaining({ name: "node1" }));
262
- });
269
+ var given = (0, _givens["default"])();
270
+ given("htmlElement", function () {
271
+ return _dom.screen.getByText("node1", {
272
+ selector: ".jqtree-title"
273
+ });
274
+ });
275
+ given("$tree", function () {
276
+ return $("#tree1");
277
+ });
278
+ beforeEach(function () {
279
+ given.$tree.tree({
280
+ data: _exampleData["default"]
281
+ });
282
+ });
283
+ it("returns the node", function () {
284
+ expect(given.$tree.tree("getNodeByHtmlElement", given.htmlElement)).toEqual(expect.objectContaining({
285
+ name: "node1"
286
+ }));
287
+ });
263
288
  });
264
289
  describe("getNodeById", function () {
265
- var given = givens_1["default"]();
266
- given("$tree", function () { return $("#tree1"); });
267
- beforeEach(function () {
268
- given.$tree.tree({
269
- data: exampleData_1["default"]
270
- });
271
- });
272
- it("returns the node", function () {
273
- expect(given.$tree.tree("getNodeById", 127)).toMatchObject({
274
- name: "node3"
275
- });
290
+ var given = (0, _givens["default"])();
291
+ given("data", function () {
292
+ return _exampleData["default"];
293
+ });
294
+ given("$tree", function () {
295
+ return $("#tree1");
296
+ });
297
+ beforeEach(function () {
298
+ given.$tree.tree({
299
+ data: given.data
300
+ });
301
+ });
302
+ it("returns the node", function () {
303
+ expect(given.$tree.tree("getNodeById", 127)).toMatchObject({
304
+ name: "node3"
305
+ });
306
+ });
307
+ context("with a string parameter", function () {
308
+ it("doesn't return the node", function () {
309
+ expect(given.$tree.tree("getNodeById", "127")).toBeNull();
310
+ });
311
+ });
312
+ context("when the node doesn't exist", function () {
313
+ it("returns null", function () {
314
+ expect(given.$tree.tree("getNodeById", 99999)).toBeNull();
315
+ });
316
+ });
317
+ context("when the data has string ids", function () {
318
+ given("data", function () {
319
+ return [{
320
+ id: "123",
321
+ name: "node1"
322
+ }];
276
323
  });
277
324
  context("with a string parameter", function () {
278
- it("returns the node", function () {
279
- expect(given.$tree.tree("getNodeById", "127")).toMatchObject({
280
- name: "node3"
281
- });
325
+ it("returns the node", function () {
326
+ expect(given.$tree.tree("getNodeById", "123")).toMatchObject({
327
+ name: "node1"
282
328
  });
329
+ });
330
+ });
331
+ context("with a number parameter", function () {
332
+ it("doesn't return the node", function () {
333
+ expect(given.$tree.tree("getNodeById", 123)).toBeNull();
334
+ });
283
335
  });
284
336
  context("when the node doesn't exist", function () {
285
- it("returns undefined", function () {
286
- expect(given.$tree.tree("getNodeById", 99999)).toBeNull();
287
- });
337
+ it("returns null", function () {
338
+ expect(given.$tree.tree("getNodeById", "abc")).toBeNull();
339
+ });
288
340
  });
341
+ });
289
342
  });
290
343
  describe("getNodesByProperty", function () {
291
- var given = givens_1["default"]();
292
- given("node1", function () { return given.$tree.tree("getNodeByNameMustExist", "node1"); });
293
- given("$tree", function () { return $("#tree1"); });
294
- beforeEach(function () {
295
- given.$tree.tree({
296
- data: exampleData_1["default"]
297
- });
298
- });
299
- it("gets nodes by property", function () {
300
- expect(given.$tree.tree("getNodesByProperty", "intProperty", 1)).toEqual([given.node1]);
301
- });
344
+ var given = (0, _givens["default"])();
345
+ given("node1", function () {
346
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
347
+ });
348
+ given("$tree", function () {
349
+ return $("#tree1");
350
+ });
351
+ beforeEach(function () {
352
+ given.$tree.tree({
353
+ data: _exampleData["default"]
354
+ });
355
+ });
356
+ it("gets nodes by property", function () {
357
+ expect(given.$tree.tree("getNodesByProperty", "intProperty", 1)).toEqual([given.node1]);
358
+ });
302
359
  });
303
360
  describe("getSelectedNode", function () {
304
- var given = givens_1["default"]();
305
- given("$tree", function () { return $("#tree1"); });
306
- beforeEach(function () {
307
- given.$tree.tree({
308
- data: given.treeData
309
- });
361
+ var given = (0, _givens["default"])();
362
+ given("$tree", function () {
363
+ return $("#tree1");
364
+ });
365
+ beforeEach(function () {
366
+ given.$tree.tree({
367
+ data: given.treeData
368
+ });
369
+ });
370
+ context("when nodes have ids", function () {
371
+ given("node", function () {
372
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
373
+ });
374
+ given("treeData", function () {
375
+ return _exampleData["default"];
310
376
  });
311
- context("when nodes have ids", function () {
312
- given("node", function () {
313
- return given.$tree.tree("getNodeByNameMustExist", "node1");
314
- });
315
- given("treeData", function () { return exampleData_1["default"]; });
316
- context("when no node is selected", function () {
317
- it("returns false", function () {
318
- expect(given.$tree.tree("getSelectedNode")).toBe(false);
319
- });
320
- });
321
- context("when a node is selected", function () {
322
- beforeEach(function () {
323
- given.$tree.tree("selectNode", given.node);
324
- });
325
- it("returns the selected node", function () {
326
- expect(given.$tree.tree("getSelectedNode")).toBe(given.node);
327
- });
328
- });
329
- });
330
- context("when nodes don't have ids", function () {
331
- given("node", function () {
332
- return given.$tree.tree("getNodeByNameMustExist", "without-id1");
333
- });
334
- given("treeData", function () { return ["without-id1", "without-id2"]; });
335
- context("when no node is selected", function () {
336
- it("returns false", function () {
337
- expect(given.$tree.tree("getSelectedNode")).toBe(false);
338
- });
339
- });
340
- context("when a node is selected", function () {
341
- beforeEach(function () {
342
- given.$tree.tree("selectNode", given.node);
343
- });
344
- it("returns the selected node", function () {
345
- expect(given.$tree.tree("getSelectedNode")).toBe(given.node);
346
- });
347
- });
377
+ context("when no node is selected", function () {
378
+ it("returns false", function () {
379
+ expect(given.$tree.tree("getSelectedNode")).toBe(false);
380
+ });
381
+ });
382
+ context("when a node is selected", function () {
383
+ beforeEach(function () {
384
+ given.$tree.tree("selectNode", given.node);
385
+ });
386
+ it("returns the selected node", function () {
387
+ expect(given.$tree.tree("getSelectedNode")).toBe(given.node);
388
+ });
389
+ });
390
+ });
391
+ context("when nodes don't have ids", function () {
392
+ given("node", function () {
393
+ return given.$tree.tree("getNodeByNameMustExist", "without-id1");
394
+ });
395
+ given("treeData", function () {
396
+ return ["without-id1", "without-id2"];
348
397
  });
398
+ context("when no node is selected", function () {
399
+ it("returns false", function () {
400
+ expect(given.$tree.tree("getSelectedNode")).toBe(false);
401
+ });
402
+ });
403
+ context("when a node is selected", function () {
404
+ beforeEach(function () {
405
+ given.$tree.tree("selectNode", given.node);
406
+ });
407
+ it("returns the selected node", function () {
408
+ expect(given.$tree.tree("getSelectedNode")).toBe(given.node);
409
+ });
410
+ });
411
+ });
349
412
  });
350
413
  describe("getSelectedNodes", function () {
351
- var given = givens_1["default"]();
352
- given("child1", function () { return given.$tree.tree("getNodeByNameMustExist", "child1"); });
353
- given("child2", function () { return given.$tree.tree("getNodeByNameMustExist", "child2"); });
354
- given("$tree", function () { return $("#tree1"); });
414
+ var given = (0, _givens["default"])();
415
+ given("child1", function () {
416
+ return given.$tree.tree("getNodeByNameMustExist", "child1");
417
+ });
418
+ given("child2", function () {
419
+ return given.$tree.tree("getNodeByNameMustExist", "child2");
420
+ });
421
+ given("$tree", function () {
422
+ return $("#tree1");
423
+ });
424
+ beforeEach(function () {
425
+ given.$tree.tree({
426
+ data: _exampleData["default"]
427
+ });
428
+ });
429
+ context("when no node is selected", function () {
430
+ it("returns an empty array", function () {
431
+ expect(given.$tree.tree("getSelectedNodes")).toHaveLength(0);
432
+ });
433
+ });
434
+ context("when nodes are selected", function () {
355
435
  beforeEach(function () {
356
- given.$tree.tree({
357
- data: exampleData_1["default"]
358
- });
436
+ given.$tree.tree("addToSelection", given.child1);
437
+ given.$tree.tree("addToSelection", given.child2);
359
438
  });
360
- context("when no node is selected", function () {
361
- it("returns an empty array", function () {
362
- expect(given.$tree.tree("getSelectedNodes")).toHaveLength(0);
363
- });
364
- });
365
- context("when nodes are selected", function () {
366
- beforeEach(function () {
367
- given.$tree.tree("addToSelection", given.child1);
368
- given.$tree.tree("addToSelection", given.child2);
369
- });
370
- it("returns the selected nodes", function () {
371
- expect(given.$tree.tree("getSelectedNodes")).toEqual(expect.arrayContaining([given.child1, given.child2]));
372
- });
439
+ it("returns the selected nodes", function () {
440
+ expect(given.$tree.tree("getSelectedNodes")).toEqual(expect.arrayContaining([given.child1, given.child2]));
373
441
  });
442
+ });
374
443
  });
375
444
  describe("getState", function () {
376
- var given = givens_1["default"]();
377
- given("node1", function () { return given.$tree.tree("getNodeByNameMustExist", "node1"); });
378
- given("$tree", function () { return $("#tree1"); });
379
- beforeEach(function () {
380
- given.$tree.tree({ data: exampleData_1["default"] });
381
- given.$tree.tree("openNode", given.node1, false);
382
- });
383
- it("returns the state", function () {
384
- expect(given.$tree.tree("getState")).toEqual({
385
- open_nodes: [123],
386
- selected_node: []
387
- });
388
- });
445
+ var given = (0, _givens["default"])();
446
+ given("node1", function () {
447
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
448
+ });
449
+ given("$tree", function () {
450
+ return $("#tree1");
451
+ });
452
+ beforeEach(function () {
453
+ given.$tree.tree({
454
+ data: _exampleData["default"]
455
+ });
456
+ given.$tree.tree("openNode", given.node1, false);
457
+ });
458
+ it("returns the state", function () {
459
+ expect(given.$tree.tree("getState")).toEqual({
460
+ open_nodes: [123],
461
+ selected_node: []
462
+ });
463
+ });
389
464
  });
390
465
  describe("getStateFromStorage", function () {
391
- var given = givens_1["default"]();
392
- given("node1", function () { return given.$tree.tree("getNodeByNameMustExist", "node1"); });
393
- given("$tree", function () { return $("#tree1"); });
394
- beforeEach(function () {
395
- given.$tree.tree({
396
- data: exampleData_1["default"],
397
- saveState: true
398
- });
399
- given.$tree.tree("openNode", given.node1, false);
400
- });
401
- it("returns the state", function () {
402
- expect(given.$tree.tree("getStateFromStorage")).toEqual({
403
- open_nodes: [123],
404
- selected_node: []
405
- });
406
- });
466
+ var given = (0, _givens["default"])();
467
+ given("node1", function () {
468
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
469
+ });
470
+ given("$tree", function () {
471
+ return $("#tree1");
472
+ });
473
+ beforeEach(function () {
474
+ given.$tree.tree({
475
+ data: _exampleData["default"],
476
+ saveState: true
477
+ });
478
+ given.$tree.tree("openNode", given.node1, false);
479
+ });
480
+ it("returns the state", function () {
481
+ expect(given.$tree.tree("getStateFromStorage")).toEqual({
482
+ open_nodes: [123],
483
+ selected_node: []
484
+ });
485
+ });
407
486
  });
408
487
  describe("getTree", function () {
409
- var given = givens_1["default"]();
410
- given("$tree", function () { return $("#tree1"); });
411
- beforeEach(function () {
412
- given.$tree.tree({ data: exampleData_1["default"] });
413
- });
414
- it("returns the tree", function () {
415
- expect(given.$tree.tree("getTree")).toMatchObject({
416
- children: [
417
- expect.objectContaining({ name: "node1" }),
418
- expect.objectContaining({ name: "node2" }),
419
- ]
420
- });
421
- });
488
+ var given = (0, _givens["default"])();
489
+ given("$tree", function () {
490
+ return $("#tree1");
491
+ });
492
+ beforeEach(function () {
493
+ given.$tree.tree({
494
+ data: _exampleData["default"]
495
+ });
496
+ });
497
+ it("returns the tree", function () {
498
+ expect(given.$tree.tree("getTree")).toMatchObject({
499
+ children: [expect.objectContaining({
500
+ name: "node1"
501
+ }), expect.objectContaining({
502
+ name: "node2"
503
+ })]
504
+ });
505
+ });
422
506
  });
423
507
  describe("getVersion", function () {
424
- var given = givens_1["default"]();
425
- given("$tree", function () { return $("#tree1"); });
426
- beforeEach(function () {
427
- given.$tree.tree();
428
- });
429
- it("returns the version", function () {
430
- expect(given.$tree.tree("getVersion")).toBe(version_1["default"]);
431
- });
508
+ var given = (0, _givens["default"])();
509
+ given("$tree", function () {
510
+ return $("#tree1");
511
+ });
512
+ beforeEach(function () {
513
+ given.$tree.tree();
514
+ });
515
+ it("returns the version", function () {
516
+ expect(given.$tree.tree("getVersion")).toBe(_version["default"]);
517
+ });
432
518
  });
433
519
  describe("isNodeSelected", function () {
434
- var given = givens_1["default"]();
435
- given("node1", function () { return given.$tree.tree("getNodeByNameMustExist", "node1"); });
436
- given("$tree", function () { return $("#tree1"); });
520
+ var given = (0, _givens["default"])();
521
+ given("node1", function () {
522
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
523
+ });
524
+ given("$tree", function () {
525
+ return $("#tree1");
526
+ });
527
+ beforeEach(function () {
528
+ given.$tree.tree({
529
+ data: _exampleData["default"]
530
+ });
531
+ });
532
+ context("when the node is selected", function () {
437
533
  beforeEach(function () {
438
- given.$tree.tree({ data: exampleData_1["default"] });
534
+ given.$tree.tree("selectNode", given.node1);
439
535
  });
440
- context("when the node is selected", function () {
441
- beforeEach(function () {
442
- given.$tree.tree("selectNode", given.node1);
443
- });
444
- it("returns true", function () {
445
- expect(given.$tree.tree("isNodeSelected", given.node1)).toBeTrue();
446
- });
536
+ it("returns true", function () {
537
+ expect(given.$tree.tree("isNodeSelected", given.node1)).toBeTrue();
447
538
  });
448
- context("when the node is not selected", function () {
449
- it("returns false", function () {
450
- expect(given.$tree.tree("isNodeSelected", given.node1)).toBeFalse();
451
- });
539
+ });
540
+ context("when the node is not selected", function () {
541
+ it("returns false", function () {
542
+ expect(given.$tree.tree("isNodeSelected", given.node1)).toBeFalse();
452
543
  });
544
+ });
453
545
  });
454
546
  describe("loadData", function () {
455
- var given = givens_1["default"]();
456
- given("initialData", function () { return ["initial1"]; });
457
- given("$tree", function () { return $("#tree1"); });
547
+ var given = (0, _givens["default"])();
548
+ given("initialData", function () {
549
+ return ["initial1"];
550
+ });
551
+ given("$tree", function () {
552
+ return $("#tree1");
553
+ });
554
+ beforeEach(function () {
555
+ given.$tree.tree({
556
+ data: given.initialData
557
+ });
558
+ });
559
+ context("when the node parameter is empty", function () {
458
560
  beforeEach(function () {
459
- given.$tree.tree({ data: given.initialData });
460
- });
461
- context("when the node parameter is empty", function () {
462
- beforeEach(function () {
463
- given.$tree.tree("loadData", exampleData_1["default"]);
464
- });
465
- it("replaces the whole tree", function () {
466
- expect(given.$tree).toHaveTreeStructure([
467
- expect.objectContaining({
468
- name: "node1",
469
- children: [
470
- expect.objectContaining({ name: "child1" }),
471
- expect.objectContaining({ name: "child2" }),
472
- ]
473
- }),
474
- expect.objectContaining({
475
- name: "node2",
476
- children: [expect.objectContaining({ name: "node3" })]
477
- }),
478
- ]);
479
- });
480
- });
481
- context("with a node parameter", function () {
482
- beforeEach(function () {
483
- given.$tree.tree("loadData", exampleData_1["default"], given.$tree.tree("getNodeByNameMustExist", "initial1"));
484
- });
485
- it("loads the data under the node", function () {
486
- expect(given.$tree).toHaveTreeStructure([
487
- expect.objectContaining({
488
- name: "initial1",
489
- children: [
490
- expect.objectContaining({
491
- name: "node1",
492
- children: [
493
- expect.objectContaining({ name: "child1" }),
494
- expect.objectContaining({ name: "child2" }),
495
- ]
496
- }),
497
- expect.objectContaining({ name: "node2" }),
498
- ]
499
- }),
500
- ]);
501
- });
561
+ given.$tree.tree("loadData", _exampleData["default"]);
562
+ });
563
+ it("replaces the whole tree", function () {
564
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
565
+ name: "node1",
566
+ children: [expect.objectContaining({
567
+ name: "child1"
568
+ }), expect.objectContaining({
569
+ name: "child2"
570
+ })]
571
+ }), expect.objectContaining({
572
+ name: "node2",
573
+ children: [expect.objectContaining({
574
+ name: "node3"
575
+ })]
576
+ })]);
577
+ });
578
+ });
579
+ context("with a node parameter", function () {
580
+ beforeEach(function () {
581
+ given.$tree.tree("loadData", _exampleData["default"], given.$tree.tree("getNodeByNameMustExist", "initial1"));
582
+ });
583
+ it("loads the data under the node", function () {
584
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
585
+ name: "initial1",
586
+ children: [expect.objectContaining({
587
+ name: "node1",
588
+ children: [expect.objectContaining({
589
+ name: "child1"
590
+ }), expect.objectContaining({
591
+ name: "child2"
592
+ })]
593
+ }), expect.objectContaining({
594
+ name: "node2"
595
+ })]
596
+ })]);
597
+ });
598
+ });
599
+ context("with a node parameter which has a selected child", function () {
600
+ given("initialData", function () {
601
+ return _exampleData["default"];
502
602
  });
503
- context("with a node parameter which has a selected child", function () {
504
- given("initialData", function () { return exampleData_1["default"]; });
505
- beforeEach(function () {
506
- given.$tree.tree("selectNode", given.$tree.tree("getNodeByNameMustExist", "child1"));
507
- });
508
- it("deselects the node", function () {
509
- given.$tree.tree("loadData", ["new-child1"], given.$tree.tree("getNodeByNameMustExist", "node1"));
510
- expect(given.$tree.tree("getSelectedNode")).toBeFalse();
511
- });
512
- context("when the selected node doesn't have an id", function () {
513
- given("initialData", function () { return [
514
- { name: "node1", children: ["child1", "child2"] },
515
- "node2",
516
- ]; });
517
- it("deselects the node", function () {
518
- given.$tree.tree("loadData", ["new-child1"], given.$tree.tree("getNodeByNameMustExist", "node1"));
519
- expect(given.$tree.tree("getSelectedNode")).toBeFalse();
520
- });
521
- context("when the selected child is under another node", function () {
522
- it("doesn't deselect the node", function () {
523
- given.$tree.tree("loadData", ["new-child1"], given.$tree.tree("getNodeByNameMustExist", "node2"));
524
- expect(given.$tree.tree("getSelectedNode")).toMatchObject({
525
- name: "child1"
526
- });
527
- });
528
- });
603
+ beforeEach(function () {
604
+ given.$tree.tree("selectNode", given.$tree.tree("getNodeByNameMustExist", "child1"));
605
+ });
606
+ it("deselects the node", function () {
607
+ given.$tree.tree("loadData", ["new-child1"], given.$tree.tree("getNodeByNameMustExist", "node1"));
608
+ expect(given.$tree.tree("getSelectedNode")).toBeFalse();
609
+ });
610
+ context("when the selected node doesn't have an id", function () {
611
+ given("initialData", function () {
612
+ return [{
613
+ name: "node1",
614
+ children: ["child1", "child2"]
615
+ }, "node2"];
616
+ });
617
+ it("deselects the node", function () {
618
+ given.$tree.tree("loadData", ["new-child1"], given.$tree.tree("getNodeByNameMustExist", "node1"));
619
+ expect(given.$tree.tree("getSelectedNode")).toBeFalse();
620
+ });
621
+ context("when the selected child is under another node", function () {
622
+ it("doesn't deselect the node", function () {
623
+ given.$tree.tree("loadData", ["new-child1"], given.$tree.tree("getNodeByNameMustExist", "node2"));
624
+ expect(given.$tree.tree("getSelectedNode")).toMatchObject({
625
+ name: "child1"
626
+ });
529
627
  });
628
+ });
530
629
  });
630
+ });
531
631
  });
532
632
  describe("loadDataFromUrl", function () {
533
- var given = givens_1["default"]();
534
- given("initialData", function () { return []; });
535
- given("serverData", function () { return exampleData_1["default"]; });
536
- given("$tree", function () { return $("#tree1"); });
537
- var server = null;
538
- beforeAll(function () {
539
- server = node_1.setupServer(msw_1.rest.get("/tree/", function (_request, response, ctx) {
540
- return response(ctx.status(200), ctx.json(given.serverData));
541
- }));
542
- server.listen();
543
- });
544
- afterAll(function () {
545
- server === null || server === void 0 ? void 0 : server.close();
546
- });
547
- beforeEach(function () {
548
- given.$tree.tree({ data: given.initialData });
549
- });
550
- context("with url parameter", function () {
551
- it("loads the tree", function () { return __awaiter(void 0, void 0, void 0, function () {
552
- return __generator(this, function (_a) {
553
- switch (_a.label) {
554
- case 0:
555
- given.$tree.tree("loadDataFromUrl", "/tree/");
556
- return [4 /*yield*/, dom_1.screen.findByText("node1")];
557
- case 1:
558
- _a.sent();
559
- expect(given.$tree).toHaveTreeStructure([
560
- expect.objectContaining({ name: "node1" }),
561
- expect.objectContaining({ name: "node2" }),
562
- ]);
563
- return [2 /*return*/];
564
- }
565
- });
566
- }); });
567
- context("with parent node", function () {
568
- given("initialData", function () { return ["initial1", "initial2"]; });
569
- given("serverData", function () { return ["new1", "new2"]; });
570
- it("loads a subtree", function () { return __awaiter(void 0, void 0, void 0, function () {
571
- var parentNode;
572
- return __generator(this, function (_a) {
573
- switch (_a.label) {
574
- case 0:
575
- parentNode = given.$tree.tree("getNodeByNameMustExist", "initial1");
576
- given.$tree.tree("loadDataFromUrl", "/tree/", parentNode);
577
- return [4 /*yield*/, dom_1.screen.findByText("new1")];
578
- case 1:
579
- _a.sent();
580
- expect(given.$tree).toHaveTreeStructure([
581
- expect.objectContaining({
582
- name: "initial1",
583
- children: [
584
- expect.objectContaining({ name: "new1" }),
585
- expect.objectContaining({ name: "new2" }),
586
- ]
587
- }),
588
- expect.objectContaining({ name: "initial2" }),
589
- ]);
590
- return [2 /*return*/];
591
- }
592
- });
593
- }); });
594
- });
595
- });
596
- context("without url parameter", function () {
597
- it("loads the data from dataUrl", function () { return __awaiter(void 0, void 0, void 0, function () {
598
- return __generator(this, function (_a) {
599
- switch (_a.label) {
600
- case 0:
601
- given.$tree.tree("setOption", "dataUrl", "/tree/");
602
- given.$tree.tree("loadDataFromUrl");
603
- return [4 /*yield*/, dom_1.screen.findByText("node1")];
604
- case 1:
605
- _a.sent();
606
- expect(given.$tree).toHaveTreeStructure([
607
- expect.objectContaining({ name: "node1" }),
608
- expect.objectContaining({ name: "node2" }),
609
- ]);
610
- return [2 /*return*/];
611
- }
612
- });
613
- }); });
614
- });
633
+ var given = (0, _givens["default"])();
634
+ given("initialData", function () {
635
+ return [];
636
+ });
637
+ given("serverData", function () {
638
+ return _exampleData["default"];
639
+ });
640
+ given("$tree", function () {
641
+ return $("#tree1");
642
+ });
643
+ var server = null;
644
+ beforeAll(function () {
645
+ server = (0, _node.setupServer)(_msw.rest.get("/tree/", function (_request, response, ctx) {
646
+ return response(ctx.status(200), ctx.json(given.serverData));
647
+ }));
648
+ server.listen();
649
+ });
650
+ afterAll(function () {
651
+ var _server;
652
+
653
+ (_server = server) === null || _server === void 0 ? void 0 : _server.close();
654
+ });
655
+ beforeEach(function () {
656
+ given.$tree.tree({
657
+ data: given.initialData
658
+ });
659
+ });
660
+ context("with url parameter", function () {
661
+ it("loads the tree", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
662
+ return regeneratorRuntime.wrap(function _callee$(_context) {
663
+ while (1) {
664
+ switch (_context.prev = _context.next) {
665
+ case 0:
666
+ given.$tree.tree("loadDataFromUrl", "/tree/");
667
+ _context.next = 3;
668
+ return _dom.screen.findByText("node1");
669
+
670
+ case 3:
671
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
672
+ name: "node1"
673
+ }), expect.objectContaining({
674
+ name: "node2"
675
+ })]);
676
+
677
+ case 4:
678
+ case "end":
679
+ return _context.stop();
680
+ }
681
+ }
682
+ }, _callee);
683
+ })));
684
+ context("with parent node", function () {
685
+ given("initialData", function () {
686
+ return ["initial1", "initial2"];
687
+ });
688
+ given("serverData", function () {
689
+ return ["new1", "new2"];
690
+ });
691
+ it("loads a subtree", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
692
+ var parentNode;
693
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
694
+ while (1) {
695
+ switch (_context2.prev = _context2.next) {
696
+ case 0:
697
+ parentNode = given.$tree.tree("getNodeByNameMustExist", "initial1");
698
+ given.$tree.tree("loadDataFromUrl", "/tree/", parentNode);
699
+ _context2.next = 4;
700
+ return _dom.screen.findByText("new1");
701
+
702
+ case 4:
703
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
704
+ name: "initial1",
705
+ children: [expect.objectContaining({
706
+ name: "new1"
707
+ }), expect.objectContaining({
708
+ name: "new2"
709
+ })]
710
+ }), expect.objectContaining({
711
+ name: "initial2"
712
+ })]);
713
+
714
+ case 5:
715
+ case "end":
716
+ return _context2.stop();
717
+ }
718
+ }
719
+ }, _callee2);
720
+ })));
721
+ });
722
+ });
723
+ context("without url parameter", function () {
724
+ it("loads the data from dataUrl", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
725
+ return regeneratorRuntime.wrap(function _callee3$(_context3) {
726
+ while (1) {
727
+ switch (_context3.prev = _context3.next) {
728
+ case 0:
729
+ given.$tree.tree("setOption", "dataUrl", "/tree/");
730
+ given.$tree.tree("loadDataFromUrl");
731
+ _context3.next = 4;
732
+ return _dom.screen.findByText("node1");
733
+
734
+ case 4:
735
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
736
+ name: "node1"
737
+ }), expect.objectContaining({
738
+ name: "node2"
739
+ })]);
740
+
741
+ case 5:
742
+ case "end":
743
+ return _context3.stop();
744
+ }
745
+ }
746
+ }, _callee3);
747
+ })));
748
+ });
615
749
  });
616
750
  describe("moveDown", function () {
617
- var given = givens_1["default"]();
618
- given("node1", function () { return given.$tree.tree("getNodeByNameMustExist", "node1"); });
619
- given("$tree", function () { return $("#tree1"); });
620
- beforeEach(function () {
621
- given.$tree.tree({ data: exampleData_1["default"] });
622
- given.$tree.tree("selectNode", given.node1);
623
- });
624
- it("selects the next node", function () {
625
- given.$tree.tree("moveDown");
626
- expect(given.$tree.tree("getSelectedNode")).toMatchObject({
627
- name: "node2"
628
- });
629
- });
751
+ var given = (0, _givens["default"])();
752
+ given("node1", function () {
753
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
754
+ });
755
+ given("$tree", function () {
756
+ return $("#tree1");
757
+ });
758
+ beforeEach(function () {
759
+ given.$tree.tree({
760
+ data: _exampleData["default"]
761
+ });
762
+ given.$tree.tree("selectNode", given.node1);
763
+ });
764
+ it("selects the next node", function () {
765
+ given.$tree.tree("moveDown");
766
+ expect(given.$tree.tree("getSelectedNode")).toMatchObject({
767
+ name: "node2"
768
+ });
769
+ });
630
770
  });
631
771
  describe("moveNode", function () {
632
- var given = givens_1["default"]();
633
- given("child1", function () { return given.$tree.tree("getNodeByNameMustExist", "child1"); });
634
- given("node2", function () { return given.$tree.tree("getNodeByNameMustExist", "node2"); });
635
- given("$tree", function () { return $("#tree1"); });
636
- beforeEach(function () {
637
- given.$tree.tree({
638
- autoOpen: true,
639
- data: exampleData_1["default"]
640
- });
641
- given.$tree.tree("moveNode", given.child1, given.node2, "after");
642
- });
643
- it("moves node", function () {
644
- expect(given.$tree).toHaveTreeStructure([
645
- expect.objectContaining({
646
- name: "node1",
647
- children: [expect.objectContaining({ name: "child2" })]
648
- }),
649
- expect.objectContaining({ name: "node2" }),
650
- expect.objectContaining({ name: "child1" }),
651
- ]);
652
- });
772
+ var given = (0, _givens["default"])();
773
+ given("child1", function () {
774
+ return given.$tree.tree("getNodeByNameMustExist", "child1");
775
+ });
776
+ given("node2", function () {
777
+ return given.$tree.tree("getNodeByNameMustExist", "node2");
778
+ });
779
+ given("$tree", function () {
780
+ return $("#tree1");
781
+ });
782
+ beforeEach(function () {
783
+ given.$tree.tree({
784
+ autoOpen: true,
785
+ data: _exampleData["default"]
786
+ });
787
+ given.$tree.tree("moveNode", given.child1, given.node2, "after");
788
+ });
789
+ it("moves node", function () {
790
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
791
+ name: "node1",
792
+ children: [expect.objectContaining({
793
+ name: "child2"
794
+ })]
795
+ }), expect.objectContaining({
796
+ name: "node2"
797
+ }), expect.objectContaining({
798
+ name: "child1"
799
+ })]);
800
+ });
653
801
  });
654
802
  describe("moveUp", function () {
655
- var given = givens_1["default"]();
656
- given("node2", function () { return given.$tree.tree("getNodeByNameMustExist", "node2"); });
657
- given("$tree", function () { return $("#tree1"); });
658
- beforeEach(function () {
659
- given.$tree.tree({ data: exampleData_1["default"] });
660
- given.$tree.tree("selectNode", given.node2);
661
- });
662
- it("selects the next node", function () {
663
- given.$tree.tree("moveUp");
664
- expect(given.$tree.tree("getSelectedNode")).toMatchObject({
665
- name: "node1"
666
- });
667
- });
803
+ var given = (0, _givens["default"])();
804
+ given("node2", function () {
805
+ return given.$tree.tree("getNodeByNameMustExist", "node2");
806
+ });
807
+ given("$tree", function () {
808
+ return $("#tree1");
809
+ });
810
+ beforeEach(function () {
811
+ given.$tree.tree({
812
+ data: _exampleData["default"]
813
+ });
814
+ given.$tree.tree("selectNode", given.node2);
815
+ });
816
+ it("selects the next node", function () {
817
+ given.$tree.tree("moveUp");
818
+ expect(given.$tree.tree("getSelectedNode")).toMatchObject({
819
+ name: "node1"
820
+ });
821
+ });
668
822
  });
669
823
  describe("openNode", function () {
670
- var given = givens_1["default"]();
671
- given("node1", function () { return given.$tree.tree("getNodeByNameMustExist", "node1"); });
672
- given("$tree", function () { return $("#tree1"); });
673
- beforeEach(function () {
674
- given.$tree.tree({
675
- autoOpen: false,
676
- data: exampleData_1["default"]
677
- });
678
- });
679
- it("opens the node", function () {
680
- given.$tree.tree("openNode", given.node1, false);
681
- expect(given.node1.element).toBeOpen();
682
- });
683
- context("with onFinished parameter", function () {
684
- it("calls the function", function () {
685
- return new Promise(function (resolve) {
686
- return given.$tree.tree("openNode", given.node1, function (node) {
687
- return resolve(expect(node).toBe(given.node1));
688
- });
689
- });
690
- });
691
- });
824
+ var given = (0, _givens["default"])();
825
+ given("node1", function () {
826
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
827
+ });
828
+ given("$tree", function () {
829
+ return $("#tree1");
830
+ });
831
+ beforeEach(function () {
832
+ given.$tree.tree({
833
+ autoOpen: false,
834
+ data: _exampleData["default"]
835
+ });
836
+ });
837
+ it("opens the node", function () {
838
+ given.$tree.tree("openNode", given.node1, false);
839
+ expect(given.node1.element).toBeOpen();
840
+ });
841
+ context("with onFinished parameter", function () {
842
+ it("calls the function", function () {
843
+ return new Promise(function (resolve) {
844
+ return given.$tree.tree("openNode", given.node1, function (node) {
845
+ return resolve(expect(node).toBe(given.node1));
846
+ });
847
+ });
848
+ });
849
+ });
692
850
  });
693
851
  describe("prependNode", function () {
694
- var given = givens_1["default"]();
695
- given("$tree", function () { return $("#tree1"); });
696
- given("parent", function () { return undefined; });
697
- beforeEach(function () {
698
- given.$tree.tree({
699
- data: exampleData_1["default"]
700
- });
701
- given.$tree.tree("prependNode", "prepended-node", given.parent);
702
- });
703
- context("with an empty parent parameter", function () {
704
- it("prepends the node to the tree", function () {
705
- expect(given.$tree).toHaveTreeStructure([
706
- expect.objectContaining({ name: "prepended-node" }),
707
- expect.objectContaining({ name: "node1" }),
708
- expect.objectContaining({ name: "node2" }),
709
- ]);
710
- });
711
- });
712
- context("with a parent node", function () {
713
- given("parent", function () {
714
- return given.$tree.tree("getNodeByNameMustExist", "node1");
715
- });
716
- it("prepends the node to the parent", function () {
717
- expect(given.$tree).toHaveTreeStructure([
718
- expect.objectContaining({
719
- name: "node1",
720
- children: [
721
- expect.objectContaining({ name: "prepended-node" }),
722
- expect.objectContaining({ name: "child1" }),
723
- expect.objectContaining({ name: "child2" }),
724
- ]
725
- }),
726
- expect.objectContaining({ name: "node2" }),
727
- ]);
728
- });
729
- });
852
+ var given = (0, _givens["default"])();
853
+ given("$tree", function () {
854
+ return $("#tree1");
855
+ });
856
+ given("parent", function () {
857
+ return undefined;
858
+ });
859
+ beforeEach(function () {
860
+ given.$tree.tree({
861
+ data: _exampleData["default"]
862
+ });
863
+ given.$tree.tree("prependNode", "prepended-node", given.parent);
864
+ });
865
+ context("with an empty parent parameter", function () {
866
+ it("prepends the node to the tree", function () {
867
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
868
+ name: "prepended-node"
869
+ }), expect.objectContaining({
870
+ name: "node1"
871
+ }), expect.objectContaining({
872
+ name: "node2"
873
+ })]);
874
+ });
875
+ });
876
+ context("with a parent node", function () {
877
+ given("parent", function () {
878
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
879
+ });
880
+ it("prepends the node to the parent", function () {
881
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
882
+ name: "node1",
883
+ children: [expect.objectContaining({
884
+ name: "prepended-node"
885
+ }), expect.objectContaining({
886
+ name: "child1"
887
+ }), expect.objectContaining({
888
+ name: "child2"
889
+ })]
890
+ }), expect.objectContaining({
891
+ name: "node2"
892
+ })]);
893
+ });
894
+ });
895
+ });
896
+ describe("refresh", function () {
897
+ var given = (0, _givens["default"])();
898
+ given("$tree", function () {
899
+ return $("#tree1");
900
+ });
901
+ beforeEach(function () {
902
+ given.$tree.tree({
903
+ data: _exampleData["default"]
904
+ });
905
+ });
906
+ it("rerenders the tree", function () {
907
+ var tree = given.$tree.tree("getTree");
908
+ tree.children[0].name = "node1a";
909
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
910
+ name: "node1"
911
+ }), expect.objectContaining({
912
+ name: "node2"
913
+ })]);
914
+ given.$tree.tree("refresh");
915
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
916
+ name: "node1a"
917
+ }), expect.objectContaining({
918
+ name: "node2"
919
+ })]);
920
+ });
730
921
  });
731
922
  describe("reload", function () {
732
- var given = givens_1["default"]();
733
- given("node1", function () { return given.$tree.tree("getNodeByNameMustExist", "node1"); });
734
- given("$tree", function () { return $("#tree1"); });
735
- var server = null;
736
- beforeAll(function () {
737
- server = node_1.setupServer(msw_1.rest.get("/tree/", function (_request, response, ctx) {
738
- return response(ctx.status(200), ctx.json(exampleData_1["default"]));
739
- }));
740
- server.listen();
741
- });
742
- afterAll(function () {
743
- server === null || server === void 0 ? void 0 : server.close();
744
- });
745
- beforeEach(function () { return __awaiter(void 0, void 0, void 0, function () {
746
- return __generator(this, function (_a) {
747
- switch (_a.label) {
748
- case 0:
749
- given.$tree.tree({ dataUrl: "/tree/" });
750
- return [4 /*yield*/, dom_1.screen.findByText("node1")];
751
- case 1:
752
- _a.sent();
753
- given.$tree.tree("removeNode", given.node1);
754
- return [2 /*return*/];
755
- }
756
- });
757
- }); });
758
- it("reloads the data from the server", function () { return __awaiter(void 0, void 0, void 0, function () {
759
- return __generator(this, function (_a) {
760
- switch (_a.label) {
761
- case 0:
762
- expect(given.$tree).toHaveTreeStructure([
763
- expect.objectContaining({ name: "node2" }),
764
- ]);
765
- given.$tree.tree("reload");
766
- return [4 /*yield*/, dom_1.screen.findByText("node1")];
767
- case 1:
768
- _a.sent();
769
- expect(given.$tree).toHaveTreeStructure([
770
- expect.objectContaining({ name: "node1" }),
771
- expect.objectContaining({ name: "node2" }),
772
- ]);
773
- return [2 /*return*/];
774
- }
775
- });
776
- }); });
777
- context("with a onFinished parameter", function () {
778
- it("calls onFinished", function () {
779
- return new Promise(function (resolve) {
780
- var handleFinished = function () {
781
- expect(given.$tree).toHaveTreeStructure([
782
- expect.objectContaining({ name: "node1" }),
783
- expect.objectContaining({ name: "node2" }),
784
- ]);
785
- resolve();
786
- };
787
- given.$tree.tree("reload", handleFinished);
923
+ var given = (0, _givens["default"])();
924
+ given("node1", function () {
925
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
926
+ });
927
+ given("$tree", function () {
928
+ return $("#tree1");
929
+ });
930
+ var server = null;
931
+ beforeAll(function () {
932
+ server = (0, _node.setupServer)(_msw.rest.get("/tree/", function (_request, response, ctx) {
933
+ return response(ctx.status(200), ctx.json(_exampleData["default"]));
934
+ }));
935
+ server.listen();
936
+ });
937
+ afterAll(function () {
938
+ var _server2;
939
+
940
+ (_server2 = server) === null || _server2 === void 0 ? void 0 : _server2.close();
941
+ });
942
+ beforeEach( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
943
+ return regeneratorRuntime.wrap(function _callee4$(_context4) {
944
+ while (1) {
945
+ switch (_context4.prev = _context4.next) {
946
+ case 0:
947
+ given.$tree.tree({
948
+ dataUrl: "/tree/"
788
949
  });
789
- });
790
- });
950
+ _context4.next = 3;
951
+ return _dom.screen.findByText("node1");
952
+
953
+ case 3:
954
+ given.$tree.tree("removeNode", given.node1);
955
+
956
+ case 4:
957
+ case "end":
958
+ return _context4.stop();
959
+ }
960
+ }
961
+ }, _callee4);
962
+ })));
963
+ it("reloads the data from the server", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() {
964
+ return regeneratorRuntime.wrap(function _callee5$(_context5) {
965
+ while (1) {
966
+ switch (_context5.prev = _context5.next) {
967
+ case 0:
968
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
969
+ name: "node2"
970
+ })]);
971
+ given.$tree.tree("reload");
972
+ _context5.next = 4;
973
+ return _dom.screen.findByText("node1");
974
+
975
+ case 4:
976
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
977
+ name: "node1"
978
+ }), expect.objectContaining({
979
+ name: "node2"
980
+ })]);
981
+
982
+ case 5:
983
+ case "end":
984
+ return _context5.stop();
985
+ }
986
+ }
987
+ }, _callee5);
988
+ })));
989
+ context("with a onFinished parameter", function () {
990
+ it("calls onFinished", function () {
991
+ return new Promise(function (resolve) {
992
+ var handleFinished = function handleFinished() {
993
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
994
+ name: "node1"
995
+ }), expect.objectContaining({
996
+ name: "node2"
997
+ })]);
998
+ resolve();
999
+ };
1000
+
1001
+ given.$tree.tree("reload", handleFinished);
1002
+ });
1003
+ });
1004
+ });
791
1005
  });
792
1006
  describe("removeNode", function () {
793
- var given = givens_1["default"]();
794
- given("$tree", function () { return $("#tree1"); });
795
- beforeEach(function () {
796
- given.$tree.tree({
797
- data: exampleData_1["default"]
798
- });
799
- });
800
- context("with a child node", function () {
801
- given("node", function () {
802
- return given.$tree.tree("getNodeByNameMustExist", "child1");
803
- });
804
- it("removes the node", function () {
805
- given.$tree.tree("removeNode", given.node);
806
- expect(given.$tree).toHaveTreeStructure([
807
- expect.objectContaining({
808
- name: "node1",
809
- children: [expect.objectContaining({ name: "child2" })]
810
- }),
811
- expect.objectContaining({
812
- name: "node2",
813
- children: [expect.objectContaining({ name: "node3" })]
814
- }),
815
- ]);
816
- });
817
- context("when the node is selected", function () {
818
- beforeEach(function () {
819
- given.$tree.tree("selectNode", given.node);
820
- });
821
- it("removes and deselects the node", function () {
822
- given.$tree.tree("removeNode", given.node);
823
- expect(given.$tree.tree("getSelectedNode")).toBe(false);
824
- });
825
- });
826
- });
827
- context("with a parent node and its children", function () {
828
- given("node", function () {
829
- return given.$tree.tree("getNodeByNameMustExist", "node1");
830
- });
831
- it("removes the node", function () {
832
- given.$tree.tree("removeNode", given.node);
833
- expect(given.$tree).toHaveTreeStructure([
834
- expect.objectContaining({
835
- name: "node2",
836
- children: [expect.objectContaining({ name: "node3" })]
837
- }),
838
- ]);
839
- });
840
- context("when a child node is selected", function () {
841
- beforeEach(function () {
842
- var child1 = given.$tree.tree("getNodeByNameMustExist", "child1");
843
- given.$tree.tree("selectNode", child1);
844
- });
845
- it("removes the node and deselects the child", function () {
846
- given.$tree.tree("removeNode", given.node);
847
- expect(given.$tree.tree("getSelectedNode")).toBe(false);
848
- });
849
- });
850
- });
851
- context("with a root node", function () {
852
- given("node", function () { return given.$tree.tree("getTree"); });
853
- it("raises an exception", function () {
854
- expect(function () { return given.$tree.tree("removeNode", given.node); }).toThrow("Node has no parent");
855
- });
1007
+ var given = (0, _givens["default"])();
1008
+ given("$tree", function () {
1009
+ return $("#tree1");
1010
+ });
1011
+ beforeEach(function () {
1012
+ given.$tree.tree({
1013
+ data: _exampleData["default"]
1014
+ });
1015
+ });
1016
+ context("with a child node", function () {
1017
+ given("node", function () {
1018
+ return given.$tree.tree("getNodeByNameMustExist", "child1");
1019
+ });
1020
+ it("removes the node", function () {
1021
+ given.$tree.tree("removeNode", given.node);
1022
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
1023
+ name: "node1",
1024
+ children: [expect.objectContaining({
1025
+ name: "child2"
1026
+ })]
1027
+ }), expect.objectContaining({
1028
+ name: "node2",
1029
+ children: [expect.objectContaining({
1030
+ name: "node3"
1031
+ })]
1032
+ })]);
856
1033
  });
1034
+ context("when the node is selected", function () {
1035
+ beforeEach(function () {
1036
+ given.$tree.tree("selectNode", given.node);
1037
+ });
1038
+ it("removes and deselects the node", function () {
1039
+ given.$tree.tree("removeNode", given.node);
1040
+ expect(given.$tree.tree("getSelectedNode")).toBe(false);
1041
+ });
1042
+ });
1043
+ });
1044
+ context("with a parent node and its children", function () {
1045
+ given("node", function () {
1046
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
1047
+ });
1048
+ it("removes the node", function () {
1049
+ given.$tree.tree("removeNode", given.node);
1050
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
1051
+ name: "node2",
1052
+ children: [expect.objectContaining({
1053
+ name: "node3"
1054
+ })]
1055
+ })]);
1056
+ });
1057
+ context("when a child node is selected", function () {
1058
+ beforeEach(function () {
1059
+ var child1 = given.$tree.tree("getNodeByNameMustExist", "child1");
1060
+ given.$tree.tree("selectNode", child1);
1061
+ });
1062
+ it("removes the node and deselects the child", function () {
1063
+ given.$tree.tree("removeNode", given.node);
1064
+ expect(given.$tree.tree("getSelectedNode")).toBe(false);
1065
+ });
1066
+ });
1067
+ });
1068
+ context("with a root node", function () {
1069
+ given("node", function () {
1070
+ return given.$tree.tree("getTree");
1071
+ });
1072
+ it("raises an exception", function () {
1073
+ expect(function () {
1074
+ return given.$tree.tree("removeNode", given.node);
1075
+ }).toThrow("Node has no parent");
1076
+ });
1077
+ });
857
1078
  });
858
1079
  describe("selectNode", function () {
859
- var given = givens_1["default"]();
860
- given("node1", function () { return given.$tree.tree("getNodeByNameMustExist", "node1"); });
861
- given("node2", function () { return given.$tree.tree("getNodeByNameMustExist", "node2"); });
862
- given("$tree", function () { return $("#tree1"); });
1080
+ var given = (0, _givens["default"])();
1081
+ given("node1", function () {
1082
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
1083
+ });
1084
+ given("node2", function () {
1085
+ return given.$tree.tree("getNodeByNameMustExist", "node2");
1086
+ });
1087
+ given("$tree", function () {
1088
+ return $("#tree1");
1089
+ });
1090
+ beforeEach(function () {
1091
+ given.$tree.tree({
1092
+ data: _exampleData["default"],
1093
+ selectable: true
1094
+ });
1095
+ });
1096
+ context("when another node is selected", function () {
863
1097
  beforeEach(function () {
864
- given.$tree.tree({
865
- data: exampleData_1["default"],
866
- selectable: true
867
- });
1098
+ given.$tree.tree("selectNode", given.node2);
1099
+ given.$tree.tree("selectNode", given.node1);
868
1100
  });
869
- context("when another node is selected", function () {
870
- beforeEach(function () {
871
- given.$tree.tree("selectNode", given.node2);
872
- given.$tree.tree("selectNode", given.node1);
873
- });
874
- it("selects the node and deselects the previous node", function () {
875
- expect(given.node1.element).toBeSelected();
876
- expect(given.node2.element).notToBeSelected();
877
- });
878
- });
879
- context("when the node is not selected", function () {
880
- beforeEach(function () {
881
- given.$tree.tree("selectNode", given.node1);
882
- });
883
- it("selects the node", function () {
884
- expect(given.node1.element).toBeSelected();
885
- });
1101
+ it("selects the node and deselects the previous node", function () {
1102
+ expect(given.node1.element).toBeSelected();
1103
+ expect(given.node2.element).not.toBeSelected();
886
1104
  });
887
- context("when the node is selected", function () {
888
- beforeEach(function () {
889
- given.$tree.tree("selectNode", given.node1);
890
- });
891
- it("deselects the node", function () {
892
- given.$tree.tree("selectNode", given.node1);
893
- expect(given.node1.element).notToBeSelected();
894
- });
1105
+ });
1106
+ context("when the node is not selected", function () {
1107
+ beforeEach(function () {
1108
+ given.$tree.tree("selectNode", given.node1);
895
1109
  });
896
- context("with a null parameter", function () {
897
- beforeEach(function () {
898
- given.$tree.tree("selectNode", given.node1);
899
- });
900
- it("deselects the current node", function () {
901
- given.$tree.tree("selectNode", null);
902
- expect(given.$tree.tree("getSelectedNode")).toBeFalse();
903
- });
1110
+ it("selects the node", function () {
1111
+ expect(given.node1.element).toBeSelected();
904
1112
  });
905
- });
906
- describe("setOption", function () {
907
- var given = givens_1["default"]();
1113
+ });
1114
+ context("when the node is selected", function () {
908
1115
  beforeEach(function () {
909
- given.$tree.tree({
910
- animationSpeed: 0,
911
- data: exampleData_1["default"],
912
- selectable: false
913
- });
1116
+ given.$tree.tree("selectNode", given.node1);
914
1117
  });
915
- given("node1", function () { return given.$tree.tree("getNodeByNameMustExist", "node1"); });
916
- given("$tree", function () { return $("#tree1"); });
917
- it("sets an option", function () {
918
- given.$tree.tree("setOption", "selectable", true);
919
- testUtil_1.titleSpan(given.node1.element).click();
920
- expect(given.$tree.tree("getSelectedNode")).toMatchObject({
921
- name: "node1"
922
- });
1118
+ it("deselects the node", function () {
1119
+ given.$tree.tree("selectNode", given.node1);
1120
+ expect(given.node1.element).not.toBeSelected();
923
1121
  });
924
- });
925
- describe("setState", function () {
926
- var given = givens_1["default"]();
1122
+ });
1123
+ context("with a null parameter", function () {
927
1124
  beforeEach(function () {
928
- given.$tree.tree({
929
- autoOpen: false,
930
- data: exampleData_1["default"],
931
- selectable: true
932
- });
1125
+ given.$tree.tree("selectNode", given.node1);
933
1126
  });
934
- given("$tree", function () { return $("#tree1"); });
935
- it("sets the state", function () {
936
- given.$tree.tree("setState", {
937
- open_nodes: [123],
938
- selected_node: [123]
939
- });
940
- expect(given.$tree).toHaveTreeStructure([
941
- expect.objectContaining({
942
- name: "node1",
943
- open: true,
944
- selected: true
945
- }),
946
- expect.objectContaining({
947
- name: "node2",
948
- open: false,
949
- selected: false
950
- }),
951
- ]);
1127
+ it("deselects the current node", function () {
1128
+ given.$tree.tree("selectNode", null);
1129
+ expect(given.$tree.tree("getSelectedNode")).toBeFalse();
952
1130
  });
1131
+ });
1132
+ });
1133
+ describe("setOption", function () {
1134
+ var given = (0, _givens["default"])();
1135
+ beforeEach(function () {
1136
+ given.$tree.tree({
1137
+ animationSpeed: 0,
1138
+ data: _exampleData["default"],
1139
+ selectable: false
1140
+ });
1141
+ });
1142
+ given("node1", function () {
1143
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
1144
+ });
1145
+ given("$tree", function () {
1146
+ return $("#tree1");
1147
+ });
1148
+ it("sets an option", function () {
1149
+ given.$tree.tree("setOption", "selectable", true);
1150
+ (0, _testUtil.titleSpan)(given.node1.element).trigger("click");
1151
+ expect(given.$tree.tree("getSelectedNode")).toMatchObject({
1152
+ name: "node1"
1153
+ });
1154
+ });
1155
+ });
1156
+ describe("setState", function () {
1157
+ var given = (0, _givens["default"])();
1158
+ beforeEach(function () {
1159
+ given.$tree.tree({
1160
+ autoOpen: false,
1161
+ data: _exampleData["default"],
1162
+ selectable: true
1163
+ });
1164
+ });
1165
+ given("$tree", function () {
1166
+ return $("#tree1");
1167
+ });
1168
+ it("sets the state", function () {
1169
+ given.$tree.tree("setState", {
1170
+ open_nodes: [123],
1171
+ selected_node: [123]
1172
+ });
1173
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
1174
+ name: "node1",
1175
+ open: true,
1176
+ selected: true
1177
+ }), expect.objectContaining({
1178
+ name: "node2",
1179
+ open: false,
1180
+ selected: false
1181
+ })]);
1182
+ });
953
1183
  });
954
1184
  describe("toggle", function () {
955
- var given = givens_1["default"]();
956
- given("autoOpen", function () { return false; });
957
- given("node1", function () { return given.$tree.tree("getNodeByNameMustExist", "node1"); });
958
- given("$tree", function () { return $("#tree1"); });
959
- beforeEach(function () {
960
- given.$tree.tree({
961
- autoOpen: given.autoOpen,
962
- data: exampleData_1["default"]
963
- });
964
- given.$tree.tree("toggle", given.node1, false);
1185
+ var given = (0, _givens["default"])();
1186
+ given("autoOpen", function () {
1187
+ return false;
1188
+ });
1189
+ given("node1", function () {
1190
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
1191
+ });
1192
+ given("$tree", function () {
1193
+ return $("#tree1");
1194
+ });
1195
+ beforeEach(function () {
1196
+ given.$tree.tree({
1197
+ autoOpen: given.autoOpen,
1198
+ data: _exampleData["default"]
1199
+ });
1200
+ given.$tree.tree("toggle", given.node1, false);
1201
+ });
1202
+ context("when the node is closed", function () {
1203
+ it("opens the node", function () {
1204
+ expect(given.node1.element).toBeOpen();
965
1205
  });
966
- context("when the node is closed", function () {
967
- it("opens the node", function () {
968
- expect(given.node1.element).toBeOpen();
969
- });
1206
+ });
1207
+ context("when the node is open", function () {
1208
+ given("autoOpen", function () {
1209
+ return true;
970
1210
  });
971
- context("when the node is open", function () {
972
- given("autoOpen", function () { return true; });
973
- it("closes the node", function () {
974
- expect(given.node1.element).toBeClosed();
975
- });
1211
+ it("closes the node", function () {
1212
+ expect(given.node1.element).toBeClosed();
976
1213
  });
1214
+ });
977
1215
  });
978
1216
  describe("toJson", function () {
979
- var given = givens_1["default"]();
980
- given("$tree", function () { return $("#tree1"); });
981
- beforeEach(function () {
982
- given.$tree.tree({
983
- data: exampleData_1["default"]
984
- });
985
- });
986
- it("returns nodes as json", function () {
987
- expect(JSON.parse(given.$tree.tree("toJson"))).toEqual(exampleData_1["default"]);
988
- });
1217
+ var given = (0, _givens["default"])();
1218
+ given("$tree", function () {
1219
+ return $("#tree1");
1220
+ });
1221
+ beforeEach(function () {
1222
+ given.$tree.tree({
1223
+ data: _exampleData["default"]
1224
+ });
1225
+ });
1226
+ it("returns nodes as json", function () {
1227
+ expect(JSON.parse(given.$tree.tree("toJson"))).toEqual(_exampleData["default"]);
1228
+ });
989
1229
  });
990
1230
  describe("updateNode", function () {
991
- var given = givens_1["default"]();
992
- given("isSelected", function () { return false; });
993
- given("node", function () { return given.$tree.tree("getNodeByNameMustExist", "node1"); });
994
- given("$tree", function () { return $("#tree1"); });
995
- beforeEach(function () {
996
- given.$tree.tree({
997
- autoOpen: true,
998
- data: exampleData_1["default"]
999
- });
1000
- if (given.isSelected) {
1001
- given.$tree.tree("selectNode", given.node);
1002
- }
1003
- given.$tree.tree("updateNode", given.node, given.nodeData);
1004
- });
1005
- context("with a string", function () {
1006
- given("nodeData", function () { return "updated-node"; });
1007
- it("updates the name", function () {
1008
- expect(given.$tree).toHaveTreeStructure([
1009
- expect.objectContaining({ name: "updated-node" }),
1010
- expect.objectContaining({ name: "node2" }),
1011
- ]);
1012
- });
1013
- });
1014
- context("with an object containing a name", function () {
1015
- given("nodeData", function () { return ({ name: "updated-node" }); });
1016
- it("updates the name", function () {
1017
- expect(given.$tree).toHaveTreeStructure([
1018
- expect.objectContaining({ name: "updated-node" }),
1019
- expect.objectContaining({ name: "node2" }),
1020
- ]);
1021
- });
1022
- });
1023
- context("with an object containing an id", function () {
1024
- given("nodeData", function () { return ({ id: 999 }); });
1025
- it("updates the id", function () {
1026
- expect(given.$tree).toHaveTreeStructure([
1027
- expect.objectContaining({ name: "node1" }),
1028
- expect.objectContaining({ name: "node2" }),
1029
- ]);
1030
- expect(given.$tree.tree("getNodeById", 999)).toMatchObject(given.nodeData);
1031
- });
1032
- });
1033
- context("with an object containing a property", function () {
1034
- given("nodeData", function () { return ({ color: "green" }); });
1035
- it("updates the node", function () {
1036
- expect(given.$tree).toHaveTreeStructure([
1037
- expect.objectContaining({ name: "node1" }),
1038
- expect.objectContaining({ name: "node2" }),
1039
- ]);
1040
- expect(given.$tree.tree("getNodeById", 123)).toMatchObject({
1041
- color: "green",
1042
- name: "node1"
1043
- });
1044
- });
1045
- });
1046
- context("with an object containing children", function () {
1047
- context("when adding a child to a child node", function () {
1048
- given("nodeData", function () { return ({ children: ["new-child"] }); });
1049
- given("node", function () {
1050
- return given.$tree.tree("getNodeByNameMustExist", "child1");
1051
- });
1052
- it("adds the child node", function () {
1053
- expect(given.$tree).toHaveTreeStructure([
1054
- expect.objectContaining({
1055
- name: "node1",
1056
- children: [
1057
- expect.objectContaining({
1058
- name: "child1",
1059
- children: [
1060
- expect.objectContaining({
1061
- name: "new-child"
1062
- }),
1063
- ]
1064
- }),
1065
- expect.objectContaining({ name: "child2" }),
1066
- ]
1067
- }),
1068
- expect.objectContaining({ name: "node2" }),
1069
- ]);
1070
- });
1071
- });
1072
- context("when removing the children", function () {
1073
- given("nodeData", function () { return ({ children: [] }); });
1074
- it("removes the children", function () {
1075
- expect(given.$tree).toHaveTreeStructure([
1076
- expect.objectContaining({
1077
- nodeType: "child",
1078
- name: "node1"
1079
- }),
1080
- expect.objectContaining({
1081
- nodeType: "folder",
1082
- name: "node2"
1083
- }),
1084
- ]);
1085
- });
1086
- });
1087
- });
1088
- context("when the node was selected", function () {
1089
- given("isSelected", function () { return true; });
1090
- it("keeps the node selected", function () {
1091
- expect(given.$tree).toHaveTreeStructure([
1092
- expect.objectContaining({ name: "node1" }),
1093
- expect.objectContaining({ name: "node2" }),
1094
- ]);
1095
- });
1096
- it("keeps the focus on the node", function () {
1097
- expect(document.activeElement).not.toBeNil();
1098
- expect(given.$tree.tree("getNodeByHtmlElement", document.activeElement)).not.toBeNil();
1099
- });
1100
- });
1101
- });
1231
+ var given = (0, _givens["default"])();
1232
+ given("isSelected", function () {
1233
+ return false;
1234
+ });
1235
+ given("node", function () {
1236
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
1237
+ });
1238
+ given("$tree", function () {
1239
+ return $("#tree1");
1240
+ });
1241
+ beforeEach(function () {
1242
+ given.$tree.tree({
1243
+ autoOpen: true,
1244
+ data: _exampleData["default"]
1245
+ });
1246
+
1247
+ if (given.isSelected) {
1248
+ given.$tree.tree("selectNode", given.node);
1249
+ }
1250
+
1251
+ given.$tree.tree("updateNode", given.node, given.nodeData);
1252
+ });
1253
+ context("with a string", function () {
1254
+ given("nodeData", function () {
1255
+ return "updated-node";
1256
+ });
1257
+ it("updates the name", function () {
1258
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
1259
+ name: "updated-node"
1260
+ }), expect.objectContaining({
1261
+ name: "node2"
1262
+ })]);
1263
+ });
1264
+ });
1265
+ context("with an object containing a name", function () {
1266
+ given("nodeData", function () {
1267
+ return {
1268
+ name: "updated-node"
1269
+ };
1270
+ });
1271
+ it("updates the name", function () {
1272
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
1273
+ name: "updated-node"
1274
+ }), expect.objectContaining({
1275
+ name: "node2"
1276
+ })]);
1277
+ });
1278
+ });
1279
+ context("with an object containing an id", function () {
1280
+ given("nodeData", function () {
1281
+ return {
1282
+ id: 999
1283
+ };
1284
+ });
1285
+ it("updates the id", function () {
1286
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
1287
+ name: "node1"
1288
+ }), expect.objectContaining({
1289
+ name: "node2"
1290
+ })]);
1291
+ expect(given.$tree.tree("getNodeById", 999)).toMatchObject(given.nodeData);
1292
+ });
1293
+ });
1294
+ context("with an object containing a property", function () {
1295
+ given("nodeData", function () {
1296
+ return {
1297
+ color: "green"
1298
+ };
1299
+ });
1300
+ it("updates the node", function () {
1301
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
1302
+ name: "node1"
1303
+ }), expect.objectContaining({
1304
+ name: "node2"
1305
+ })]);
1306
+ expect(given.$tree.tree("getNodeById", 123)).toMatchObject({
1307
+ color: "green",
1308
+ name: "node1"
1309
+ });
1310
+ });
1311
+ });
1312
+ context("with an object containing children", function () {
1313
+ context("when adding a child to a child node", function () {
1314
+ given("nodeData", function () {
1315
+ return {
1316
+ children: ["new-child"]
1317
+ };
1318
+ });
1319
+ given("node", function () {
1320
+ return given.$tree.tree("getNodeByNameMustExist", "child1");
1321
+ });
1322
+ it("adds the child node", function () {
1323
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
1324
+ name: "node1",
1325
+ children: [expect.objectContaining({
1326
+ name: "child1",
1327
+ children: [expect.objectContaining({
1328
+ name: "new-child"
1329
+ })]
1330
+ }), expect.objectContaining({
1331
+ name: "child2"
1332
+ })]
1333
+ }), expect.objectContaining({
1334
+ name: "node2"
1335
+ })]);
1336
+ });
1337
+ });
1338
+ context("when removing the children", function () {
1339
+ given("nodeData", function () {
1340
+ return {
1341
+ children: []
1342
+ };
1343
+ });
1344
+ it("removes the children", function () {
1345
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
1346
+ nodeType: "child",
1347
+ name: "node1"
1348
+ }), expect.objectContaining({
1349
+ nodeType: "folder",
1350
+ name: "node2"
1351
+ })]);
1352
+ });
1353
+ });
1354
+ });
1355
+ context("when the node was selected", function () {
1356
+ given("isSelected", function () {
1357
+ return true;
1358
+ });
1359
+ it("keeps the node selected", function () {
1360
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
1361
+ name: "node1"
1362
+ }), expect.objectContaining({
1363
+ name: "node2"
1364
+ })]);
1365
+ });
1366
+ it("keeps the focus on the node", function () {
1367
+ expect(given.node.element).toBeFocused();
1368
+ });
1369
+ });
1370
+ });