jqtree 1.6.0 → 1.6.3

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