ai-chatbot/tests/routes/hicad-project-experience.test.ts

67 lines
2.8 KiB
TypeScript

import fs from 'node:fs'
import path from 'node:path'
import { expect, test } from '@playwright/test'
const projectRoot = process.cwd()
test.describe('HiCAD project management experience', () => {
test('vendors the project dashboard and autosave status', () => {
const script = fs.readFileSync(
path.join(projectRoot, 'scripts/vendor-zoo-modeling-app.mjs'),
'utf8'
)
const experience = fs.readFileSync(
path.join(
projectRoot,
'vendor/zoo-modeling-app/HicadProjectExperience.tsx.template'
),
'utf8'
)
expect(script).toContain('HicadProjectExperience.tsx.template')
expect(script).toContain('projectCount={scopedHomeProjectEntries.length}')
expect(script).toContain('thumbnailFallback')
expect(script).toContain('最近编辑')
expect(experience).toContain('我的 CAD 项目')
expect(experience).toContain('编辑内容会自动保存')
expect(experience).toContain('自动保存已开启')
expect(experience).toContain('data-testid="hicad-create-project"')
expect(experience).toContain('data-testid="hicad-create-from-sample"')
expect(experience).toContain('data-testid="hicad-open-project-list"')
expect(experience).toContain('data-testid="hicad-create-blank-project"')
expect(experience).toContain('?create=blank')
expect(experience).toContain('[data-testid="home-new-file"]')
expect(script).toContain('<HicadEditorProjectActions')
expect(script).toContain('lsp.onProjectClose')
expect(script).toContain('kclManager.switchedFiles = true')
expect(script).toContain('" if (await webHomeRouteEnabled(app))')
expect(script).toContain('" if (!window.electron && !(await webHomeRouteEnabled(app)))')
expect(script).toContain('"src/lib/app.ts"')
expect(script).toContain(` const enableProjectDirectoryCommands =
typeof window !== 'undefined'
`)
})
test('keeps new project creation simple and understandable', () => {
const script = fs.readFileSync(
path.join(projectRoot, 'scripts/vendor-zoo-modeling-app.mjs'),
'utf8'
)
const localization = fs.readFileSync(
path.join(projectRoot, 'vendor/zoo-modeling-app/localization.ts'),
'utf8'
)
expect(script).toContain('新建 CAD 项目')
expect(script).toContain("displayName: '项目名称'")
expect(script).toContain('例如:五金连接安装板')
expect(script).toContain("defaultValue: () => ''")
expect(localization).toContain("['Submit', '确认']")
expect(localization).toContain("['Continue', '下一步']")
expect(localization).toContain("['Step back', '返回上一步']")
expect(localization).toContain('还没有项目,点击“新建项目”开始设计。')
expect(localization).toContain("[data-testid='home-sidebar']")
})
})