import * as React from 'react'; import { configure, mount, ReactWrapper } from 'enzyme'; import Adapter from 'enzyme-adapter-react-16'; import Story from './Story'; import SpreadSheet from '../../../SpreadSheetProvider'; import { mockResizeObserver } from 'valor-app-utils'; import { getCellsInfo } from '../helper'; mockResizeObserver(); configure({ adapter: new Adapter() }); describe('', () => { it('删除第1行', () => { const wrapper = mount(); const sheetWrapper = wrapper.find(SpreadSheet).at(0); // 选中第1个单元格 const spreadSheetInstance = sheetWrapper.instance() as any; // 选中前必须先计算行列宽度 spreadSheetInstance.runtime.fsmService.send('MOUSE.DOWN', { selectedCell: 1 }); setTimeout(() => { wrapper .find('#deleteRow1') .at(0) .simulate('click'); let cellInfo = getCellsInfo(wrapper); expect(cellInfo.resultIds).toEqual([4]); expect(cellInfo.resultValues).toEqual([4]); wrapper .find('#undo') .at(0) .simulate('click'); cellInfo = getCellsInfo(wrapper); expect(cellInfo.resultIds).toEqual([1, 2, 3, 4]); expect(cellInfo.resultValues).toEqual([1, 2, 3, 4]); wrapper .find('#redo') .at(0) .simulate('click'); cellInfo = getCellsInfo(wrapper); expect(cellInfo.resultIds).toEqual([4]); expect(cellInfo.resultValues).toEqual([4]); }); }); it('删除第2行', () => { const wrapper = mount(); const sheetWrapper = wrapper.find(SpreadSheet).at(0); // 选中第1个单元格 const spreadSheetInstance = sheetWrapper.instance() as any; // 选中前必须先计算行列宽度 spreadSheetInstance.runtime.fsmService.send('MOUSE.DOWN', { selectedCell: 2 }); setTimeout(() => { wrapper .find('#deleteRow2') .at(0) .simulate('click'); let cellInfo = getCellsInfo(wrapper); expect(cellInfo.resultIds).toEqual([1, 3, 4]); expect(cellInfo.resultValues).toEqual([1, 3, 4]); wrapper .find('#undo') .at(0) .simulate('click'); cellInfo = getCellsInfo(wrapper); expect(cellInfo.resultIds).toEqual([1, 2, 3, 4]); expect(cellInfo.resultValues).toEqual([1, 2, 3, 4]); wrapper .find('#redo') .at(0) .simulate('click'); cellInfo = getCellsInfo(wrapper); expect(cellInfo.resultIds).toEqual([1, 3, 4]); expect(cellInfo.resultValues).toEqual([1, 3, 4]); }); }); it('删除第4行', () => { const wrapper = mount(); const sheetWrapper = wrapper.find(SpreadSheet).at(0); // 选中第1个单元格 const spreadSheetInstance = sheetWrapper.instance() as any; // 选中前必须先计算行列宽度 spreadSheetInstance.runtime.fsmService.send('MOUSE.DOWN', { selectedCell: 4 }); setTimeout(() => { wrapper .find('#deleteRow4') .at(0) .simulate('click'); let cellInfo = getCellsInfo(wrapper); expect(cellInfo.resultIds).toEqual([1, 2, 3]); expect(cellInfo.resultValues).toEqual([1, 2, 3]); wrapper .find('#undo') .at(0) .simulate('click'); cellInfo = getCellsInfo(wrapper); expect(cellInfo.resultIds).toEqual([1, 2, 3, 4]); expect(cellInfo.resultValues).toEqual([1, 2, 3, 4]); wrapper .find('#redo') .at(0) .simulate('click'); cellInfo = getCellsInfo(wrapper); expect(cellInfo.resultIds).toEqual([1, 2, 3]); expect(cellInfo.resultValues).toEqual([1, 2, 3]); }); }); });