30 lines
1.7 KiB
JavaScript
30 lines
1.7 KiB
JavaScript
import fs from 'node:fs'
|
|
import path from 'node:path'
|
|
|
|
const root = process.cwd()
|
|
const previewPath = path.join(root, 'src/views/dataset/DatasetPreviewView.vue')
|
|
const mockPath = path.join(root, 'src/mock/data.ts')
|
|
const source = fs.readFileSync(previewPath, 'utf8')
|
|
const mockSource = fs.readFileSync(mockPath, 'utf8')
|
|
|
|
function expect(condition, message) {
|
|
if (!condition) throw new Error(message)
|
|
}
|
|
|
|
expect(source.includes('class="preview-workspace"'), '预览页应使用文件与内容双栏工作区')
|
|
expect(source.includes('class="code-line"'), '内容查看器应提供逐行展示')
|
|
expect(source.includes('class="line-number"'), '内容查看器应显示行号')
|
|
expect(source.includes('previewLoading'), '切换文件时应提供独立加载状态')
|
|
expect(source.includes('previewError'), '内容加载失败时应提供错误状态')
|
|
expect(source.includes('aria-current'), '文件选中态应向辅助技术暴露')
|
|
expect(!source.includes('handleDownloadAll'), '页面不应保留整包下载逻辑')
|
|
expect(!source.includes('handleDelete'), '页面不应保留删除逻辑')
|
|
expect(!source.includes('router.back()'), '页面不应保留页头返回逻辑')
|
|
expect(mockSource.includes('files: ['), 'Mock 数据集应包含可验收的文件列表')
|
|
expect(mockSource.includes('mockDatasetPreviews'), 'Mock 数据应包含文件预览内容')
|
|
expect(mockSource.includes("'mock-jsonl'"), 'Mock 数据应为通用数据集提供模拟样本')
|
|
expect(mockSource.includes("'mock-readme'"), 'Mock 数据应为通用数据集提供模拟说明')
|
|
expect(mockSource.includes('.map((dataset)'), '所有 Mock 数据集都应自动补齐预览文件')
|
|
|
|
console.log('dataset preview regression checks passed')
|