85 lines
2.8 KiB
JavaScript
85 lines
2.8 KiB
JavaScript
import { describe, expect, it, beforeAll, beforeEach, vi } from 'vitest';
|
|
import { createWrapper } from 'app/test/vitest/helper';
|
|
import VnTable from 'src/components/VnTable/VnTable.vue';
|
|
|
|
describe('VnTable', () => {
|
|
let wrapper;
|
|
let vm;
|
|
|
|
beforeAll(() => {
|
|
wrapper = createWrapper(VnTable, {
|
|
propsData: {
|
|
columns: [],
|
|
},
|
|
});
|
|
vm = wrapper.vm;
|
|
|
|
vi.mock('src/composables/useFilterParams', () => {
|
|
return {
|
|
useFilterParams: vi.fn(() => ({
|
|
params: {},
|
|
orders: {},
|
|
})),
|
|
};
|
|
});
|
|
});
|
|
|
|
beforeEach(() => (vm.selected = []));
|
|
|
|
describe('handleSelection()', () => {
|
|
const rows = [
|
|
{ $index: 0 },
|
|
{ $index: 1 },
|
|
{ $index: 2 },
|
|
{ $index: 3 },
|
|
{ $index: 4 },
|
|
];
|
|
|
|
it('should add rows to selected when shift key is pressed and rows are added in ascending order', () => {
|
|
const selectedRows = [{ $index: 1 }];
|
|
vm.handleSelection(
|
|
{ evt: { shiftKey: true }, added: true, rows: selectedRows },
|
|
rows,
|
|
);
|
|
expect(vm.selected).toEqual([{ $index: 0 }]);
|
|
});
|
|
|
|
it('should add rows to selected when shift key is pressed and rows are added in descending order', () => {
|
|
const selectedRows = [{ $index: 3 }];
|
|
vm.handleSelection(
|
|
{ evt: { shiftKey: true }, added: true, rows: selectedRows },
|
|
rows,
|
|
);
|
|
expect(vm.selected).toEqual([{ $index: 0 }, { $index: 1 }, { $index: 2 }]);
|
|
});
|
|
|
|
it('should not add rows to selected when shift key is not pressed', () => {
|
|
const selectedRows = [{ $index: 1 }];
|
|
vm.handleSelection(
|
|
{ evt: { shiftKey: false }, added: true, rows: selectedRows },
|
|
rows,
|
|
);
|
|
expect(vm.selected).toEqual([]);
|
|
});
|
|
|
|
it('should not add rows to selected when rows are not added', () => {
|
|
const selectedRows = [{ $index: 1 }];
|
|
vm.handleSelection(
|
|
{ evt: { shiftKey: true }, added: false, rows: selectedRows },
|
|
rows,
|
|
);
|
|
expect(vm.selected).toEqual([]);
|
|
});
|
|
|
|
it('should add all rows between the smallest and largest selected indexes', () => {
|
|
vm.selected = [{ $index: 1 }, { $index: 3 }];
|
|
const selectedRows = [{ $index: 4 }];
|
|
vm.handleSelection(
|
|
{ evt: { shiftKey: true }, added: true, rows: selectedRows },
|
|
rows,
|
|
);
|
|
expect(vm.selected).toEqual([{ $index: 1 }, { $index: 3 }, { $index: 2 }]);
|
|
});
|
|
});
|
|
});
|