Skip to content

Commit 8216815

Browse files
committed
Update ve-table-contextmenu.spec.js
1 parent 51ddbd2 commit 8216815

File tree

1 file changed

+166
-0
lines changed

1 file changed

+166
-0
lines changed

tests/unit/specs/ve-table-contextmenu.spec.js

Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,4 +288,170 @@ describe("veTable contextmenu", () => {
288288
type: "INSERT_ROW_BELOW",
289289
});
290290
});
291+
292+
it("contextmenu REMOVE_ROW", async () => {
293+
const mockFn = jest.fn();
294+
295+
let tableData = cloneDeep(TABLE_DATA);
296+
297+
const WRAPPER = mount(
298+
{
299+
render() {
300+
return (
301+
<div>
302+
<ve-table
303+
row-key-field-name="rowKey"
304+
columns={COLUMNS}
305+
table-data={tableData}
306+
contextmenu-body-option={
307+
this.contextmenuBodyOption
308+
}
309+
/>
310+
</div>
311+
);
312+
},
313+
data() {
314+
return {
315+
contextmenuBodyOption: {
316+
callback: ({ type, selection }) => {
317+
mockFn({ type, selection });
318+
},
319+
contextmenus: CONTEXTMENUS,
320+
},
321+
};
322+
},
323+
},
324+
// need attach to documnet
325+
{ attachTo: document.body },
326+
);
327+
328+
const firstTrTdEl = WRAPPER.findAll(".ve-table-body-tr")
329+
.at(2)
330+
.findAll(".ve-table-body-td")
331+
.at(2);
332+
333+
firstTrTdEl.trigger("click");
334+
335+
await later();
336+
337+
expect(firstTrTdEl.classes()).toContain("ve-table-cell-selection");
338+
339+
const bodyEl = WRAPPER.find(".ve-table-body");
340+
bodyEl.trigger("contextmenu");
341+
342+
await later();
343+
344+
const contextmenuPopper = document.querySelector(
345+
".ve-contextmenu-popper",
346+
);
347+
348+
const contextmenuNodes = contextmenuPopper.querySelectorAll(
349+
".ve-contextmenu-node",
350+
);
351+
352+
const event2 = new MouseEvent("click", {
353+
view: window, // window
354+
bubbles: true,
355+
cancelable: true,
356+
});
357+
358+
contextmenuNodes[2].dispatchEvent(event2);
359+
360+
await later();
361+
362+
expect(tableData.length).toBe(4);
363+
364+
expect(mockFn).toHaveBeenCalled();
365+
expect(mockFn).toHaveBeenCalledWith({
366+
selection: { colKey: "date", rowKey: 2 },
367+
type: "REMOVE_ROW",
368+
});
369+
});
370+
371+
it("contextmenu HIDE_COLUMN", async () => {
372+
const mockFn = jest.fn();
373+
374+
let tableData = cloneDeep(TABLE_DATA);
375+
376+
const WRAPPER = mount(
377+
{
378+
render() {
379+
return (
380+
<div>
381+
<ve-table
382+
row-key-field-name="rowKey"
383+
columns={COLUMNS}
384+
table-data={tableData}
385+
contextmenu-body-option={
386+
this.contextmenuBodyOption
387+
}
388+
/>
389+
</div>
390+
);
391+
},
392+
data() {
393+
return {
394+
contextmenuBodyOption: {
395+
callback: ({ type, selection }) => {
396+
mockFn({ type, selection });
397+
},
398+
contextmenus: CONTEXTMENUS,
399+
},
400+
};
401+
},
402+
},
403+
// need attach to documnet
404+
{ attachTo: document.body },
405+
);
406+
407+
const firstTrTdEl = WRAPPER.findAll(".ve-table-body-tr")
408+
.at(2)
409+
.findAll(".ve-table-body-td")
410+
.at(2);
411+
412+
firstTrTdEl.trigger("click");
413+
414+
await later();
415+
416+
expect(firstTrTdEl.classes()).toContain("ve-table-cell-selection");
417+
418+
const bodyEl = WRAPPER.find(".ve-table-body");
419+
bodyEl.trigger("contextmenu");
420+
421+
await later();
422+
423+
const DateTh = WRAPPER.findAll(
424+
".ve-table-header-tr .ve-table-header-th",
425+
).at(2);
426+
expect(DateTh.text()).toBe("Date");
427+
428+
const contextmenuPopper = document.querySelector(
429+
".ve-contextmenu-popper",
430+
);
431+
432+
const contextmenuNodes = contextmenuPopper.querySelectorAll(
433+
".ve-contextmenu-node",
434+
);
435+
436+
const event2 = new MouseEvent("click", {
437+
view: window, // window
438+
bubbles: true,
439+
cancelable: true,
440+
});
441+
442+
contextmenuNodes[3].dispatchEvent(event2);
443+
444+
await later();
445+
446+
const DateTh2 = WRAPPER.findAll(
447+
".ve-table-header-tr .ve-table-header-th",
448+
).at(2);
449+
expect(DateTh2.text()).toBe("Number");
450+
451+
expect(mockFn).toHaveBeenCalled();
452+
expect(mockFn).toHaveBeenCalledWith({
453+
selection: { colKey: "date", rowKey: 2 },
454+
type: "HIDE_COLUMN",
455+
});
456+
});
291457
});

0 commit comments

Comments
 (0)