Skip to content

Commit 36624f3

Browse files
committed
add cell edit unit test
1 parent f0c9f4d commit 36624f3

File tree

1 file changed

+68
-1
lines changed

1 file changed

+68
-1
lines changed

tests/unit/specs/ve-table-cell-edit.spec.js

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { mount } from "@vue/test-utils";
22
import { cloneDeep } from "lodash";
33
import veTable from "@/ve-table";
4+
import CellEditor from "@/ve-table/src/editor/edit-input.jsx";
45
import { later } from "../util";
56
import { KEY_CODES } from "../constant";
6-
// import cellEditor from "@/ve-table/src/editor/edit-input.jsx";
77
import { HOOKS_NAME } from "@/ve-table/src/util/constant";
88

99
describe("veTable cell edit", () => {
@@ -1832,6 +1832,73 @@ describe("veTable cell edit", () => {
18321832
);
18331833
});
18341834

1835+
// table clickoutside
1836+
it("table cell focus", async () => {
1837+
const mockFn = jest.fn();
1838+
1839+
const ParentComp = {
1840+
template: `
1841+
<div>
1842+
<button id="outsideButton">outside table</button>
1843+
<veTable
1844+
:columns="columns"
1845+
:tableData="tableData"
1846+
:editOption="editOption"
1847+
rowKeyFieldName="rowKey"
1848+
/>
1849+
</div>
1850+
1851+
`,
1852+
data() {
1853+
return {
1854+
columns: COLUMNS,
1855+
tableData: cloneDeep(TABLE_DATA),
1856+
editOption: {
1857+
// cell value change
1858+
cellValueChange: ({ row, column }) => {
1859+
mockFn(row, column);
1860+
},
1861+
},
1862+
};
1863+
},
1864+
components: {
1865+
veTable,
1866+
},
1867+
};
1868+
1869+
await later();
1870+
1871+
const div = document.createElement("div");
1872+
document.body.appendChild(div);
1873+
1874+
// need attach to documnet
1875+
const wrapper = mount(ParentComp, { attachTo: div });
1876+
1877+
const cellEditor = wrapper.findComponent(CellEditor);
1878+
1879+
// td
1880+
const firstCell = wrapper
1881+
.findAll(".ve-table-body-tr")
1882+
.at(1)
1883+
.findAll(".ve-table-body-td")
1884+
.at(1);
1885+
1886+
expect(cellEditor.vm.isEditCellFocus).toBe(false);
1887+
1888+
// set cell selection
1889+
firstCell.trigger("click");
1890+
1891+
await later();
1892+
expect(cellEditor.vm.isEditCellFocus).toBe(true);
1893+
1894+
// click outside
1895+
wrapper.find("#outsideButton").trigger("click");
1896+
1897+
await later();
1898+
1899+
expect(cellEditor.vm.isEditCellFocus).toBe(false);
1900+
});
1901+
18351902
it("disable editing columns", async () => {
18361903
const wrapper = mount(veTable, {
18371904
propsData: {

0 commit comments

Comments
 (0)