67 lines
2.8 KiB
TypeScript
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']")
|
|
})
|
|
})
|