test: ENG-03 share behavior fixtures across source and releases

This commit is contained in:
Harvey Zhao committed 2026-09-10 21:55:27 +08:00
1 parent b53461da1c
commit 458bc3215d
15 files changed
+260 -74

No files matched your search

+1
View File
@@ -43,6 +43,7 @@
| [消费者与真实环境矩阵](environment-matrix.md) | 22 包的版本依据、能力/设备/样本、现有证据、验证任务及发布影响 |
| [类型检查与迁移入口](typechecking.md) | 根/分包配置、当前/旧编译器、严格正反例和历史声明错误 |
| [JS/TS 构建与开发](build-development.md) | 非交互选包、开发重建、资源夹具和 AMD 全局修复 |
| [测试目录维护说明](../test/README.md) | 统一测试命令、JS/TS loader、受控媒体及新旧公共契约 |
## 维护规则
@@ -0,0 +1,11 @@
# ENG-03:公共行为与单元入口
日期 2026-09-10;起点 b53461da;分支 codex/compatible-modernization。
新增 yarn test:unit 和 yarn test,保留 test:playback/test:dash-control/test:node/test:baseline/test:imports;ci:check 复用统一入口。播放与 DASH 的原 19 项断言保留,只提取源码加载和可控媒体夹具。新增的 JS/TS loader 会拒绝两个同名后缀同时存在,Vite 源包加载不写 dist,避免源码改名后测试仍加载旧 JS。
公共 Emitter 的五组行为由同一份 contracts/emitter.js 执行:链式返回/上下文/参数、once 重入、派发快照、按原函数删除 once/重复监听、异常传播。固定发布 core 5.4.0 与当前源码均通过;ARTPLAYER_TEST_CORE 可加入实际候选产物,同一夹具分别运行 ENG-06 生成的 .js/.legacy.js/.mjs,三次各 15 项通过。候选 SHA-256 仍对应 [构建证据](../baselines/build-validation.json) 的核心三产物。
新增的 loader 回归实际编译 TS/JS 并验证含糊入口被拒绝。完整 ci:check 通过只读 lint、类型、30 项单元/公共契约、2 项工具回归、22 项基线测试,共 54 项,无失败或跳过;不改生产源码、公开声明、依赖版本或产物,也未追加浏览器通过结论。已发布归档会先校验完整性,缺缓存时下载固定版本;候选事件检查不代替隔离安装/全部 API/真实媒体。
实现地图、命令与维护规则在仓库 test/README.md。本任务独立提交 ENG-03;撤销可回到原 Node 入口,原测试名称与断言一直保留。下一项 ENG-05 接入浏览器自动化,再推进 chapter 特有测试与源码迁移。
+3 -1
View File
@@ -9,7 +9,9 @@
| `yarn lint` | 只读 ESLint,覆盖包源码/声明、JS/MJS 工具、测试和编辑器声明 |
| `yarn lint:fix` | 显式自动修复相同范围 |
| `yarn typecheck` | 根/迁移包严格检查、当前与兼容 TS 消费;历史 NodeNext ESM 错误单独核对,见 typechecking.md |
| `yarn test:node` | 显式执行 4 个有行为断言的 Node 测试文件,保留原 test:playback/test:dash-control 入口 |
| `yarn test:unit` | 原播放/DASH 回归、同夹具的新旧公共契约与 JS/TS loader 验证 |
| `yarn test:node` | test:unit 加工具链/文档构建回归,保留原 test:playback/test:dash-control 入口 |
| `yarn test` | 统一执行 Node 与基线测试,源码/夹具维护入口见仓库 test/README.md |
| `yarn test:imports` | 3 个既有包导入 smoke,构建后执行以使用新产物;不把 console 示例视为完整行为断言 |
| `yarn test:baseline` | 固定发布包完整性及本地 HTTP 基线测试;首次可能下载已固定归档到缓存 |
| `yarn ci:check` | 严格 Node/Yarn/锁检查、计划、只读 lint、类型、Node 和基线测试;允许写忽略缓存,不修改源码 |
+3 -2
View File
@@ -4,7 +4,7 @@
基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 214 项,范围 22 个包及工作区/示例。
状态:todo 187 / doing 0 / blocked 0 / done 27 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。
状态:todo 186 / doing 0 / blocked 0 / done 28 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。
前置依赖是启动条件;验收是完成条件。任务可以继续拆分,但不能复用或悄悄删除旧 ID。
@@ -76,7 +76,7 @@
| ENG-01 | workspace<br>固定 Node、包管理器与依赖 | BASE-01 | 版本 pin、唯一锁文件、安装说明 | 干净环境可复现,最低 Node 与构建依赖一致,未夹带全量升级 | M | done |
| ENG-PM-01 | workspace<br>按用户选择切换固定 Yarn 包管理器 | ENG-01 | Yarn 固定版本、唯一 yarn.lock、工具检查与安装维护文档 | 干净冻结安装、Node 测试和全部构建通过;记录解析差异和依赖用途,独立提交 | M | done |
| ENG-02 | workspace<br>拆分只读检查并建立 PR CI | ENG-01, ENG-PM-01 | lint/lint:fix、PR 与主线检查、独立部署任务;遵循 github-ci-cd.md,PR/重构分支触发、最小权限及 workflow 静态检查 | 仓库内检查可执行且不改源码、不发布;required checks 的外部设置状态列入发布台账,不阻塞本地框架建设 | M | done |
| ENG-03 | workspace<br>建立公共行为与单元测试入口 | ENG-02, BASE-03 | 保留现有 node:test,测试目录/夹具/统一入口 | 已有 19 项回归保留,旧版与候选可用同一夹具运行 | M | todo |
| ENG-03 | workspace<br>建立公共行为与单元测试入口 | ENG-02, BASE-03 | 保留现有 node:test,测试目录/夹具/统一入口 | 已有 19 项回归保留,旧版与候选可用同一夹具运行 | M | done |
| ENG-04 | workspace<br>建立类型测试基础 | ENG-02, BASE-05 | 根与分包 tsconfig、显式 TS 依赖、正反例测试 | 核心/试点与迁移模块严格检查,未迁移第三方/包历史问题独立台账;明确最低/当前 TS 和各环境类型;复用 BASE-05 的四种消费模式,不以 skipLibCheck 掩盖 BASE-TYPE-01/03 | M | done |
| ENG-05 | workspace<br>建立真实浏览器测试服务 | ENG-03, BASE-04, BASE-08 | Playwright projects、本地 Range/失败媒体服务;复用 docs 页面/样本的状态隔离、错误采集与候选资源映射 | Chromium/Firefox/WebKit 的基础播放 smoke 和报告可执行;以媒体状态断言判定通过,区分轻量用例与真实编辑器交互 | M | todo |
| ENG-06 | workspace<br>支持按包非交互与 JS/TS 构建 | ENG-02, BASE-05 | build/dev 入口解析、指定包参数、原交互保留 | 三种产物、Less/SVG/worker 和本地 8082 demo 正常;保持 BASE-05 的 AMD 同时写入全局行为及 i18n/legacy 入口 | H | done |
@@ -428,5 +428,6 @@
- ENG-01: [记录](changes/2026-09-10-ENG-01-reproducible-toolchain.md) [记录](baselines/toolchain-validation.json)
- ENG-PM-01: [记录](changes/2026-09-10-ENG-PM-01-yarn-toolchain.md) [记录](baselines/yarn-validation.json)
- ENG-02: [记录](changes/2026-09-10-ENG-02-readonly-ci.md) [记录](baselines/ci-validation.json)
- ENG-03: [记录](changes/2026-09-10-ENG-03-unit-entry.md)
- ENG-04: [记录](changes/2026-09-10-ENG-04-typechecking.md) [记录](typechecking.md)
- ENG-06: [记录](changes/2026-09-10-ENG-06-build-development.md) [记录](build-development.md) [记录](baselines/build-validation.json)
+4
View File
@@ -1,5 +1,9 @@
# 进度与证据
## 当前实施:ENG-03 公共行为与单元入口完成
原 19 项播放/DASH 回归保留,JS/TS loader 与受控媒体夹具复用;同一份五组 Emitter 契约在发布 core 5.4.0、工作区和三格式候选上通过。统一 yarn test:unit/test 与 CI 入口已接入,见 [ENG-03](changes/2026-09-10-ENG-03-unit-entry.md)。当前 214 项,28 完成、186 待办;生产源码 TS 迁移仍为零。ENG-06 提交 b53461da,本任务独立提交,下一项 ENG-05 浏览器自动化。
## 当前实施:ENG-06 JS/TS 构建与开发完成
正常 build/dev 支持指定包与唯一 JS/TS 入口,dev 可禁止自动打开浏览器并串行重建。构建夹具复现并修复 AMD 全局参数错误;63 产物中 39 字节相同、24 仅该修复;内置浏览器 42 个 AMD 入口、TS worker/资源及首页真实播放通过。见 [ENG-06](changes/2026-09-10-ENG-06-build-development.md)。
+4 -2
View File
@@ -492,11 +492,13 @@
"ENG-02",
"BASE-03"
],
"status": "todo",
"status": "done",
"risk": "M",
"deliverable": "保留现有 node:test,测试目录/夹具/统一入口",
"acceptance": "已有 19 项回归保留,旧版与候选可用同一夹具运行",
"evidence": []
"evidence": [
"changes/2026-09-10-ENG-03-unit-entry.md"
]
},
{
"id": "ENG-04",