/* @vitest-environment happy-dom */
|
|
import { describe, expect, it } from 'vitest';
|
|
import workspaceSource from '../SourceWorkspace.vue?raw';
|
|
const templateSource = workspaceSource.match(/<template>([\s\S]*)<\/template>/)?.[1] || '';
|
|
describe('lIMS 数据项简化工作台', () => {
|
it('只向业务人员呈现数据项概念', () => {
|
expect(templateSource).toContain('LIMS 数据项');
|
expect(templateSource).not.toMatch(/tab="数据集"|起始业务对象|对象步骤|Join 来源|Join 目标|RAW|DISPLAY_NAME/);
|
});
|
|
it('从业务名称自动生成只读数据标识', () => {
|
expect(workspaceSource).toMatch(/data-test=["']source-display-name["']/);
|
expect(workspaceSource).toContain(':maxlength="200"');
|
expect(workspaceSource).toMatch(/suggestFieldCode\(.*displayName/);
|
expect(workspaceSource).toMatch(/data-test=["']source-property-code["']/);
|
expect(workspaceSource).toMatch(/source-property-code[^>]*(readonly|disabled)/);
|
});
|
|
it('方案 A 的聚焦抽屉提供独立来源路径页面入口', () => {
|
expect(workspaceSource).toContain('<BasicDrawer');
|
expect(workspaceSource).toContain('data-test="manage-source-paths"');
|
expect(workspaceSource).toContain('来源路径管理');
|
expect(workspaceSource).toContain("onlineUtils.route('/eln/source-paths', { title: '来源路径管理' })");
|
expect(workspaceSource).toContain('onActivated');
|
});
|
|
it('不在抽屉或弹窗组件上使用 v-show', () => {
|
expect(templateSource).not.toMatch(/<(?:BasicDrawer|BasicModal)[^>]+v-show=/);
|
});
|
|
it('复用标准列表页面结构和通用表格加载状态', () => {
|
expect(templateSource).toContain('jnpf-content-wrapper-search-box');
|
expect(templateSource).toContain('jnpf-content-wrapper-content');
|
expect(templateSource.match(/<BasicVxeTable/g)).toHaveLength(1);
|
expect(templateSource).not.toContain('<ASpin');
|
expect(templateSource).not.toContain('<BasicModal');
|
expect(workspaceSource).toContain('setTableLoading');
|
});
|
|
it('为带底部操作区的抽屉预留底部空间', () => {
|
const editorDrawerTag = templateSource.match(/<BasicDrawer[^>]+registerEditor[^>]+>/)?.[0] || '';
|
expect(editorDrawerTag).toContain('show-footer');
|
expect(workspaceSource).not.toContain('registerPathEditor');
|
});
|
});
|