97 lines
2.0 KiB
TypeScript
97 lines
2.0 KiB
TypeScript
import { mount } from '@vue/test-utils';
|
|
import { describe, expect, test } from 'vitest';
|
|
import MsBaseTable from '@/components/pure/ms-table/base-table.vue';
|
|
import { nextTick } from 'vue';
|
|
import { MsTableColumn } from '@/components/pure/ms-table/type';
|
|
import useTable from '@/components/pure/ms-table/useTable';
|
|
import { getTableList } from '@/api/modules/api-test/index';
|
|
|
|
const columns: MsTableColumn = [
|
|
{
|
|
title: 'ID',
|
|
dataIndex: 'num',
|
|
},
|
|
{
|
|
title: '接口名称',
|
|
dataIndex: 'name',
|
|
},
|
|
{
|
|
title: '请求类型',
|
|
dataIndex: 'method',
|
|
},
|
|
{
|
|
title: '责任人',
|
|
dataIndex: 'username',
|
|
},
|
|
{
|
|
title: '路径',
|
|
dataIndex: 'path',
|
|
},
|
|
{
|
|
title: '标签',
|
|
dataIndex: 'tags',
|
|
},
|
|
{
|
|
title: '更新时间',
|
|
slotName: 'updataTime',
|
|
},
|
|
{
|
|
title: '用例数',
|
|
dataIndex: 'caseTotal',
|
|
},
|
|
{
|
|
title: '用例状态',
|
|
dataIndex: 'caseStatus',
|
|
},
|
|
{
|
|
title: '用例通过率',
|
|
dataIndex: 'casePassingRate',
|
|
},
|
|
{
|
|
title: '接口状态',
|
|
dataIndex: 'status',
|
|
},
|
|
{
|
|
title: '创建时间',
|
|
slotName: 'createTime',
|
|
},
|
|
{
|
|
title: '描述',
|
|
dataIndex: 'description',
|
|
},
|
|
{
|
|
title: '操作',
|
|
slotName: 'action',
|
|
fixed: 'right',
|
|
width: 200,
|
|
},
|
|
];
|
|
|
|
describe('MS-Table', () => {
|
|
test('init table with useTable', async () => {
|
|
const { propsRes, propsEvent, loadList, setProps } = useTable(getTableList, {
|
|
columns,
|
|
scroll: { y: 750, x: 2000 },
|
|
selectable: true,
|
|
});
|
|
|
|
const wrapper = mount(MsBaseTable as any, {
|
|
vOn: propsEvent,
|
|
vBind: propsRes,
|
|
});
|
|
loadList();
|
|
|
|
await nextTick();
|
|
let content = wrapper.find('.arco-table-td-content').element.innerHTML;
|
|
expect(propsRes.value.data.length).toBe(20);
|
|
expect(content).toBe('e7bd7179-d63a-43a5-1a65-218473ee69ca');
|
|
|
|
setProps({});
|
|
loadList();
|
|
|
|
await nextTick();
|
|
content = wrapper.find('.arco-table-td-content').element.innerHTML;
|
|
expect(content).toBe('937be890-79bb-1b68-e03e-7d37a8b0a607');
|
|
});
|
|
});
|