jqtree 1.5.2 → 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/.eslintrc +1 -0
  2. package/.github/workflows/ci.yml +54 -0
  3. package/.github/workflows/codeql-analysis.yml +28 -0
  4. package/README.md +1 -1
  5. package/_config.yml +1 -1
  6. package/_entries/10_changelog.md +20 -0
  7. package/_entries/{36_showemptynode.md → 36_showemptyfolder.md} +5 -5
  8. package/_entries/38_start_dnd_delay.md +13 -0
  9. package/_entries/{38_tabindex.md → 39_tabindex.md} +0 -0
  10. package/_entries/{39_usecontextmenu.md → 40_usecontextmenu.md} +0 -0
  11. package/_entries/{40_functions.md → 41_functions.md} +0 -0
  12. package/_entries/{41_addparentnode.md → 42_addparentnode.md} +0 -0
  13. package/_entries/{42_addnodeafter.md → 43_addnodeafter.md} +0 -0
  14. package/_entries/{43_addnodebefore.md → 44_addnodebefore.md} +0 -0
  15. package/_entries/{44_appendnode.md → 45_appendnode.md} +0 -0
  16. package/_entries/{45_closenode.md → 46_closenode.md} +0 -0
  17. package/_entries/{46_destroy.md → 47_destroy.md} +0 -0
  18. package/_entries/{47_getnodebycallback.md → 48_getnodebycallback.md} +0 -0
  19. package/_entries/{48_getnodebyid.md → 49_getnodebyid.md} +0 -0
  20. package/_entries/{49_getnodebyhtmlelement.md → 50_getnodebyhtmlelement.md} +0 -0
  21. package/_entries/{50_getselectednode.md → 51_getselectednode.md} +0 -0
  22. package/_entries/{51_getstate.md → 52_getstate.md} +0 -0
  23. package/_entries/{52_gettree.md → 53_gettree.md} +0 -0
  24. package/_entries/{53_isdragging.md → 54_isdragging.md} +0 -0
  25. package/_entries/{54_loaddata.md → 55_loaddata.md} +0 -0
  26. package/_entries/{55_loaddatafromurl.md → 56_loaddatafromurl.md} +0 -0
  27. package/_entries/{56_movedown.md → 57_movedown.md} +0 -0
  28. package/_entries/{57_movenode.md → 58_movenode.md} +0 -0
  29. package/_entries/{58_moveup.md → 59_moveup.md} +0 -0
  30. package/_entries/{59_opennode.md → 60_opennode.md} +0 -0
  31. package/_entries/{60_prependnode.md → 61_prependnode.md} +0 -0
  32. package/_entries/62_refresh.md +12 -0
  33. package/_entries/{61_reload.md → 63_reload.md} +0 -0
  34. package/_entries/{62_removenode.md → 64_removenode.md} +0 -0
  35. package/_entries/{63_selectnode.md → 65_selectnode.md} +0 -0
  36. package/_entries/{64_scrolltonode.md → 66_scrolltonode.md} +0 -0
  37. package/_entries/{65_setoption.md → 67_setoption.md} +0 -0
  38. package/_entries/{66_setstate.md → 68_setstate.md} +0 -0
  39. package/_entries/{67_toggle.md → 69_toggle.md} +0 -0
  40. package/_entries/{68_tojson.md → 70_tojson.md} +0 -0
  41. package/_entries/{69_updatenode.md → 71_updatenode.md} +0 -0
  42. package/_entries/{70_events.md → 72_events.md} +0 -0
  43. package/_entries/{71_tree-click.md → 73_tree-click.md} +0 -0
  44. package/_entries/{72_tree-close.md → 74_tree-close.md} +0 -0
  45. package/_entries/{73_tree-contextmenu.md → 75_tree-contextmenu.md} +0 -0
  46. package/_entries/{74_tree-dblclick.md → 76_tree-dblclick.md} +0 -0
  47. package/_entries/{75_tree-init.md → 77_tree-init.md} +0 -0
  48. package/_entries/{76_tree-load-data.md → 78_tree-load-data.md} +0 -0
  49. package/_entries/{77_tree-loading-data.md → 79_tree-loading-data.md} +0 -0
  50. package/_entries/{78_tree-move.md → 80_tree-move.md} +0 -0
  51. package/_entries/{79_tree-refresh.md → 81_tree-refresh.md} +0 -0
  52. package/_entries/{80_tree-open.md → 82_tree-open.md} +0 -0
  53. package/_entries/{81_tree-select.md → 83_tree-select.md} +0 -0
  54. package/_entries/{82_multiple-selection.md → 84_multiple-selection.md} +0 -0
  55. package/_entries/{83_add-to-selection.md → 85_add-to-selection.md} +0 -0
  56. package/_entries/{84_get-selected-nodes.md → 86_get-selected-nodes.md} +0 -0
  57. package/_entries/{85_is-node-selected.md → 87_is-node-selected.md} +0 -0
  58. package/_entries/{86_remove-from-selection.md → 88_remove-from-selection.md} +0 -0
  59. package/_entries/{87_node-functions.md → 89_node-functions.md} +0 -0
  60. package/_entries/{88_children.md → 90_children.md} +0 -0
  61. package/_entries/{89_getdata.md → 91_getdata.md} +0 -0
  62. package/_entries/{90_getlevel.md → 92_getlevel.md} +0 -0
  63. package/_entries/{91_getnextnode.md → 93_getnextnode.md} +0 -0
  64. package/_entries/{92_getnextsibling.md → 94_getnextsibling.md} +0 -0
  65. package/_entries/{93_getpreviousnode.md → 95_getpreviousnode.md} +0 -0
  66. package/_entries/{94_getprevioussibling.md → 96_getprevioussibling.md} +0 -0
  67. package/_entries/{95_parent.md → 97_parent.md} +0 -0
  68. package/_examples/13_drag_outside.html +2 -1
  69. package/_examples/14_filter.html +113 -0
  70. package/_layouts/base.html +1 -23
  71. package/babel.config.json +11 -0
  72. package/babel.coverage.config.json +4 -0
  73. package/bower.json +1 -1
  74. package/jest-browser.config.js +0 -3
  75. package/jest-jsdom.config.js +1 -2
  76. package/jqtree.css +4 -1
  77. package/jqtree.postcss +3 -0
  78. package/lib/dataLoader.js +146 -98
  79. package/lib/dragAndDropHandler.js +668 -470
  80. package/lib/elementsRenderer.js +282 -197
  81. package/lib/jqtreeOptions.js +1 -2
  82. package/lib/keyHandler.js +134 -87
  83. package/lib/mouse.widget.js +288 -165
  84. package/lib/node.js +693 -505
  85. package/lib/nodeElement.js +329 -205
  86. package/lib/playwright/playwright.test.js +216 -189
  87. package/lib/playwright/testUtil.js +437 -192
  88. package/lib/playwright/visualRegression.js +183 -117
  89. package/lib/saveStateHandler.js +311 -204
  90. package/lib/scrollHandler.js +293 -199
  91. package/lib/selectNodeHandler.js +140 -105
  92. package/lib/simple.widget.js +184 -109
  93. package/lib/test/global.d.js +3 -0
  94. package/lib/test/jqTree/create.test.js +44 -40
  95. package/lib/test/jqTree/events.test.js +185 -138
  96. package/lib/test/jqTree/keyboard.test.js +216 -199
  97. package/lib/test/jqTree/loadOnDemand.test.js +233 -157
  98. package/lib/test/jqTree/methods.test.js +1269 -1000
  99. package/lib/test/jqTree/options.test.js +467 -398
  100. package/lib/test/node.test.js +1036 -873
  101. package/lib/test/nodeUtil.test.js +21 -20
  102. package/lib/test/support/exampleData.js +35 -23
  103. package/lib/test/support/jqTreeMatchers.js +72 -54
  104. package/lib/test/support/matchers.d.js +1 -0
  105. package/lib/test/support/setupTests.js +9 -3
  106. package/lib/test/support/testUtil.js +38 -15
  107. package/lib/test/support/treeStructure.js +41 -32
  108. package/lib/test/util.test.js +21 -20
  109. package/lib/tree.jquery.d.js +1 -0
  110. package/lib/tree.jquery.js +1264 -883
  111. package/lib/types.js +1 -2
  112. package/lib/typings.d.js +2 -0
  113. package/lib/util.js +21 -7
  114. package/lib/version.js +8 -3
  115. package/package.json +43 -36
  116. package/production +4 -4
  117. package/rollup.config.js +16 -11
  118. package/src/dataLoader.ts +6 -6
  119. package/src/dragAndDropHandler.ts +0 -4
  120. package/src/elementsRenderer.ts +4 -0
  121. package/src/jqtreeOptions.ts +33 -32
  122. package/src/mouse.widget.ts +58 -29
  123. package/src/node.ts +32 -46
  124. package/src/nodeElement.ts +17 -9
  125. package/src/playwright/.eslintrc +5 -0
  126. package/src/playwright/playwright.test.ts +30 -30
  127. package/src/playwright/testUtil.ts +36 -37
  128. package/src/saveStateHandler.ts +11 -6
  129. package/src/selectNodeHandler.ts +14 -21
  130. package/src/simple.widget.ts +1 -1
  131. package/src/test/.eslintrc +4 -0
  132. package/src/test/jqTree/create.test.ts +0 -1
  133. package/src/test/jqTree/events.test.ts +12 -13
  134. package/src/test/jqTree/keyboard.test.ts +0 -1
  135. package/src/test/jqTree/loadOnDemand.test.ts +46 -1
  136. package/src/test/jqTree/methods.test.ts +67 -18
  137. package/src/test/jqTree/options.test.ts +5 -6
  138. package/src/test/node.test.ts +2 -2
  139. package/src/test/support/jqTreeMatchers.ts +8 -9
  140. package/src/test/support/matchers.d.ts +2 -4
  141. package/src/test/support/setupTests.ts +2 -1
  142. package/src/tree.jquery.d.ts +19 -13
  143. package/src/tree.jquery.ts +63 -57
  144. package/src/version.ts +1 -1
  145. package/static/bower.json +3 -3
  146. package/static/bower_components/fontawesome/css/all.min.css +2 -2
  147. package/static/bower_components/fontawesome/webfonts/fa-brands-400.eot +0 -0
  148. package/static/bower_components/fontawesome/webfonts/fa-brands-400.svg +774 -627
  149. package/static/bower_components/fontawesome/webfonts/fa-brands-400.ttf +0 -0
  150. package/static/bower_components/fontawesome/webfonts/fa-brands-400.woff +0 -0
  151. package/static/bower_components/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
  152. package/static/bower_components/fontawesome/webfonts/fa-regular-400.eot +0 -0
  153. package/static/bower_components/fontawesome/webfonts/fa-regular-400.svg +93 -95
  154. package/static/bower_components/fontawesome/webfonts/fa-regular-400.ttf +0 -0
  155. package/static/bower_components/fontawesome/webfonts/fa-regular-400.woff +0 -0
  156. package/static/bower_components/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
  157. package/static/bower_components/fontawesome/webfonts/fa-solid-900.eot +0 -0
  158. package/static/bower_components/fontawesome/webfonts/fa-solid-900.svg +1164 -1074
  159. package/static/bower_components/fontawesome/webfonts/fa-solid-900.ttf +0 -0
  160. package/static/bower_components/fontawesome/webfonts/fa-solid-900.woff +0 -0
  161. package/static/bower_components/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
  162. package/static/bower_components/jquery/dist/jquery.js +118 -109
  163. package/static/bower_components/jquery/dist/jquery.min.js +2 -2
  164. package/static/bower_components/jquery-mockjax/dist/jquery.mockjax.js +15 -9
  165. package/static/example.css +13 -0
  166. package/static/example.postcss +13 -0
  167. package/static/example_data.js +33 -36
  168. package/static/examples/filter.js +63 -0
  169. package/tree.jquery.debug.js +4809 -3305
  170. package/tree.jquery.debug.js.map +1 -1
  171. package/tree.jquery.js +3 -3
  172. package/tree.jquery.js.map +1 -1
  173. package/tsconfig.json +1 -0
  174. package/.travis.yml +0 -18
@@ -1,173 +1,220 @@
1
1
  "use strict";
2
- exports.__esModule = true;
3
- var $ = require("jquery");
4
- var givens_1 = require("givens");
5
- var msw_1 = require("msw");
6
- var node_1 = require("msw/node");
2
+
3
+ var _givens = _interopRequireDefault(require("givens"));
4
+
5
+ var _msw = require("msw");
6
+
7
+ var _node = require("msw/node");
8
+
7
9
  require("../../tree.jquery");
8
- var exampleData_1 = require("../support/exampleData");
9
- var testUtil_1 = require("../support/testUtil");
10
+
11
+ var _exampleData = _interopRequireDefault(require("../support/exampleData"));
12
+
13
+ var _testUtil = require("../support/testUtil");
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
16
+
10
17
  var context = describe;
11
18
  beforeEach(function () {
12
- $("body").append('<div id="tree1"></div>');
19
+ $("body").append('<div id="tree1"></div>');
13
20
  });
14
21
  afterEach(function () {
15
- var $tree = $("#tree1");
16
- $tree.tree("destroy");
17
- $tree.remove();
22
+ var $tree = $("#tree1");
23
+ $tree.tree("destroy");
24
+ $tree.remove();
18
25
  });
19
26
  describe("tree.click", function () {
20
- var given = givens_1["default"]();
21
- given("node1", function () { return given.$tree.tree("getNodeByNameMustExist", "node1"); });
22
- given("titleSpan", function () { return testUtil_1.titleSpan(given.node1.element); });
23
- given("$tree", function () { return $("#tree1"); });
24
- beforeEach(function () {
25
- given.$tree.tree({ data: exampleData_1["default"] });
27
+ var given = (0, _givens["default"])();
28
+ given("node1", function () {
29
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
30
+ });
31
+ given("titleSpan", function () {
32
+ return (0, _testUtil.titleSpan)(given.node1.element);
33
+ });
34
+ given("$tree", function () {
35
+ return $("#tree1");
36
+ });
37
+ beforeEach(function () {
38
+ given.$tree.tree({
39
+ data: _exampleData["default"]
26
40
  });
27
- it("fires tree.click", function () {
28
- return new Promise(function (done) {
29
- given.$tree.on("tree.click", function (e) {
30
- var treeClickEvent = e;
31
- expect(treeClickEvent.node).toBe(given.node1);
32
- done();
33
- });
34
- given.titleSpan.click();
35
- });
41
+ });
42
+ it("fires tree.click", function () {
43
+ return new Promise(function (done) {
44
+ given.$tree.on("tree.click", function (e) {
45
+ var treeClickEvent = e;
46
+ expect(treeClickEvent.node).toBe(given.node1);
47
+ done();
48
+ });
49
+ given.titleSpan.trigger("click");
36
50
  });
51
+ });
37
52
  });
38
53
  describe("tree.contextmenu", function () {
39
- var given = givens_1["default"]();
40
- given("node1", function () { return given.$tree.tree("getNodeByNameMustExist", "node1"); });
41
- given("titleSpan", function () { return testUtil_1.titleSpan(given.node1.element); });
42
- given("$tree", function () { return $("#tree1"); });
43
- beforeEach(function () {
44
- given.$tree.tree({ data: exampleData_1["default"] });
54
+ var given = (0, _givens["default"])();
55
+ given("node1", function () {
56
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
57
+ });
58
+ given("titleSpan", function () {
59
+ return (0, _testUtil.titleSpan)(given.node1.element);
60
+ });
61
+ given("$tree", function () {
62
+ return $("#tree1");
63
+ });
64
+ beforeEach(function () {
65
+ given.$tree.tree({
66
+ data: _exampleData["default"]
45
67
  });
46
- it("fires tree.contextmenu", function () {
47
- return new Promise(function (done) {
48
- given.$tree.on("tree.contextmenu", function (e) {
49
- var treeClickEvent = e;
50
- expect(treeClickEvent.node).toBe(given.node1);
51
- done();
52
- });
53
- given.titleSpan.contextmenu();
54
- });
68
+ });
69
+ it("fires tree.contextmenu", function () {
70
+ return new Promise(function (done) {
71
+ given.$tree.on("tree.contextmenu", function (e) {
72
+ var treeClickEvent = e;
73
+ expect(treeClickEvent.node).toBe(given.node1);
74
+ done();
75
+ });
76
+ given.titleSpan.contextmenu();
55
77
  });
78
+ });
56
79
  });
57
80
  describe("tree.dblclick", function () {
58
- var given = givens_1["default"]();
59
- given("node1", function () { return given.$tree.tree("getNodeByNameMustExist", "node1"); });
60
- given("titleSpan", function () { return testUtil_1.titleSpan(given.node1.element); });
61
- given("$tree", function () { return $("#tree1"); });
62
- beforeEach(function () {
63
- given.$tree.tree({ data: exampleData_1["default"] });
81
+ var given = (0, _givens["default"])();
82
+ given("node1", function () {
83
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
84
+ });
85
+ given("titleSpan", function () {
86
+ return (0, _testUtil.titleSpan)(given.node1.element);
87
+ });
88
+ given("$tree", function () {
89
+ return $("#tree1");
90
+ });
91
+ beforeEach(function () {
92
+ given.$tree.tree({
93
+ data: _exampleData["default"]
64
94
  });
65
- it("fires tree.dblclick", function () {
66
- return new Promise(function (done) {
67
- given.$tree.on("tree.dblclick", function (e) {
68
- var treeClickEvent = e;
69
- expect(treeClickEvent.node).toBe(given.node1);
70
- done();
71
- });
72
- given.titleSpan.dblclick();
73
- });
95
+ });
96
+ it("fires tree.dblclick", function () {
97
+ return new Promise(function (done) {
98
+ given.$tree.on("tree.dblclick", function (e) {
99
+ var treeClickEvent = e;
100
+ expect(treeClickEvent.node).toBe(given.node1);
101
+ done();
102
+ });
103
+ given.titleSpan.trigger("dblclick");
74
104
  });
105
+ });
75
106
  });
76
107
  describe("tree.init", function () {
77
- var given = givens_1["default"]();
78
- given("$tree", function () { return $("#tree1"); });
79
- context("with json data", function () {
80
- it("is called", function () {
81
- return new Promise(function (done) {
82
- given.$tree.on("tree.init", function () {
83
- expect(given.$tree.tree("getNodeByName", "node2")).toMatchObject({
84
- id: 124,
85
- name: "node2"
86
- });
87
- done();
88
- });
89
- given.$tree.tree({
90
- data: exampleData_1["default"]
91
- });
92
- });
108
+ var given = (0, _givens["default"])();
109
+ given("$tree", function () {
110
+ return $("#tree1");
111
+ });
112
+ context("with json data", function () {
113
+ it("is called", function () {
114
+ return new Promise(function (done) {
115
+ given.$tree.on("tree.init", function () {
116
+ expect(given.$tree.tree("getNodeByName", "node2")).toMatchObject({
117
+ id: 124,
118
+ name: "node2"
119
+ });
120
+ done();
93
121
  });
94
- });
95
- context("with data loaded from an url", function () {
96
- var server = null;
97
- beforeAll(function () {
98
- server = node_1.setupServer(msw_1.rest.get("/tree/", function (_request, response, ctx) {
99
- return response(ctx.status(200), ctx.json(exampleData_1["default"]));
100
- }));
101
- server.listen();
122
+ given.$tree.tree({
123
+ data: _exampleData["default"]
102
124
  });
103
- afterAll(function () {
104
- server === null || server === void 0 ? void 0 : server.close();
125
+ });
126
+ });
127
+ });
128
+ context("with data loaded from an url", function () {
129
+ var server = null;
130
+ beforeAll(function () {
131
+ server = (0, _node.setupServer)(_msw.rest.get("/tree/", function (_request, response, ctx) {
132
+ return response(ctx.status(200), ctx.json(_exampleData["default"]));
133
+ }));
134
+ server.listen();
135
+ });
136
+ afterAll(function () {
137
+ var _server;
138
+
139
+ (_server = server) === null || _server === void 0 ? void 0 : _server.close();
140
+ });
141
+ it("is called", function () {
142
+ return new Promise(function (done) {
143
+ given.$tree.on("tree.init", function () {
144
+ expect(given.$tree.tree("getNodeByName", "node2")).toMatchObject({
145
+ id: 124,
146
+ name: "node2"
147
+ });
148
+ done();
105
149
  });
106
- it("is called", function () {
107
- return new Promise(function (done) {
108
- given.$tree.on("tree.init", function () {
109
- expect(given.$tree.tree("getNodeByName", "node2")).toMatchObject({
110
- id: 124,
111
- name: "node2"
112
- });
113
- done();
114
- });
115
- given.$tree.tree({ dataUrl: "/tree/" });
116
- });
150
+ given.$tree.tree({
151
+ dataUrl: "/tree/"
117
152
  });
153
+ });
118
154
  });
155
+ });
119
156
  });
120
157
  describe("tree.load_data", function () {
121
- var given = givens_1["default"]();
122
- given("$tree", function () { return $("#tree1"); });
123
- context("when the tree is initialized with data", function () {
124
- it("fires tree.load_data", function () {
125
- return new Promise(function (resolve) {
126
- given.$tree.on("tree.load_data", function (e) {
127
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
128
- expect(e.tree_data).toEqual(exampleData_1["default"]);
129
- resolve();
130
- });
131
- given.$tree.tree({ data: exampleData_1["default"] });
132
- });
158
+ var given = (0, _givens["default"])();
159
+ given("$tree", function () {
160
+ return $("#tree1");
161
+ });
162
+ context("when the tree is initialized with data", function () {
163
+ it("fires tree.load_data", function () {
164
+ return new Promise(function (resolve) {
165
+ given.$tree.on("tree.load_data", function (e) {
166
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
167
+ expect(e.tree_data).toEqual(_exampleData["default"]);
168
+ resolve();
169
+ });
170
+ given.$tree.tree({
171
+ data: _exampleData["default"]
133
172
  });
173
+ });
134
174
  });
175
+ });
135
176
  });
136
177
  describe("tree.select", function () {
137
- var given = givens_1["default"]();
138
- given("node1", function () { return given.$tree.tree("getNodeByNameMustExist", "node1"); });
139
- given("titleSpan", function () { return testUtil_1.titleSpan(given.node1.element); });
140
- given("$tree", function () { return $("#tree1"); });
141
- beforeEach(function () {
142
- given.$tree.tree({
143
- data: exampleData_1["default"]
144
- });
178
+ var given = (0, _givens["default"])();
179
+ given("node1", function () {
180
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
181
+ });
182
+ given("titleSpan", function () {
183
+ return (0, _testUtil.titleSpan)(given.node1.element);
184
+ });
185
+ given("$tree", function () {
186
+ return $("#tree1");
187
+ });
188
+ beforeEach(function () {
189
+ given.$tree.tree({
190
+ data: _exampleData["default"]
145
191
  });
146
- it("fires tree.click", function () {
147
- return new Promise(function (done) {
148
- given.$tree.on("tree.select", function (e) {
149
- var treeClickEvent = e;
150
- expect(treeClickEvent.node).toBe(given.node1);
151
- expect(treeClickEvent.deselected_node).toBeNull();
152
- done();
153
- });
154
- given.titleSpan.click();
155
- });
192
+ });
193
+ it("fires tree.click", function () {
194
+ return new Promise(function (done) {
195
+ given.$tree.on("tree.select", function (e) {
196
+ var treeClickEvent = e;
197
+ expect(treeClickEvent.node).toBe(given.node1);
198
+ expect(treeClickEvent.deselected_node).toBeNull();
199
+ done();
200
+ });
201
+ given.titleSpan.trigger("click");
156
202
  });
157
- context("when the node was selected", function () {
158
- beforeEach(function () {
159
- given.$tree.tree("selectNode", given.node1);
160
- });
161
- it("fires tree.select with node is null", function () {
162
- return new Promise(function (done) {
163
- given.$tree.on("tree.select", function (e) {
164
- var treeClickEvent = e;
165
- expect(treeClickEvent.node).toBeNull();
166
- expect(treeClickEvent.previous_node).toBe(given.node1);
167
- done();
168
- });
169
- given.titleSpan.click();
170
- });
203
+ });
204
+ context("when the node was selected", function () {
205
+ beforeEach(function () {
206
+ given.$tree.tree("selectNode", given.node1);
207
+ });
208
+ it("fires tree.select with node is null", function () {
209
+ return new Promise(function (done) {
210
+ given.$tree.on("tree.select", function (e) {
211
+ var treeClickEvent = e;
212
+ expect(treeClickEvent.node).toBeNull();
213
+ expect(treeClickEvent.previous_node).toBe(given.node1);
214
+ done();
171
215
  });
216
+ given.titleSpan.trigger("click");
217
+ });
172
218
  });
173
- });
219
+ });
220
+ });