Skip to content

Conversation

haozang54-source
Copy link
Contributor

@haozang54-source haozang54-source commented Sep 5, 2025

🤔 这个 PR 的性质是?

  • 日常 bug 修复
  • 新特性提交
  • 文档改进
  • 演示代码改进
  • 组件样式/交互改进
  • CI/CD 改进
  • 重构
  • 代码风格优化
  • 测试用例
  • 分支合并
  • 其他

🔗 相关 Issue

#5631

💡 需求背景和解决方案

背景

为了提升 TDesign Vue Next 组件库的质量和稳定性,增强组件的可靠性,开展测试覆盖率提升专项。Collapse 组件作为重要的交互组件,需要全面的测试覆盖来确保在各种场景下表现稳定。

解决方案

  1. 全面测试覆盖:按照 TDesign 测试规范,为 Collapse 组件及其子组件编写完整的测试用例
  2. API 完整覆盖:确保每个 API 都有对应的测试,包括基础类型和复杂类型的测试
  3. Bug 修复:修复发现的类型定义问题
  4. 测试文件规范化:按照规范创建独立的测试文件,提升测试的可维护性

主要改进

  • 测试用例数量:从 19 个增加到 96 个(+405%)
  • 测试覆盖率:达到 93.45% statements, 95.23% branches
  • 新增 4 个专门的测试文件:分别测试子组件、工具函数、内部逻辑和依赖组件
  • 修复类型定义 Bug:解决 fake-arrow.tsx 中的 PropType 定义问题
  • 完整的 API 覆盖:所有 Props、事件、插槽和交互逻辑都有对应测试
Clipboard_Screenshot_1757059138

📋 详细变更内容

新增测试文件

  • collapse-panel.test.tsx: CollapsePanel 子组件专项测试(31 个用例)
  • collapse.utils.test.tsx: 工具函数和内部逻辑测试(15 个用例)
  • collapse.hooks.test.tsx: 自定义 Hook 和响应式逻辑测试(13 个用例)
  • fake-arrow.test.tsx: 依赖组件 FakeArrow 测试(6 个用例)

增强现有测试

  • collapse.test.tsx: 主组件测试从 19 个增加到 31 个用例

Bug 修复

  • 修复 packages/components/common-components/fake-arrow.tsx 中的类型定义错误:
    // 修复前
    overlayStyle: {
      type: Object || (String as PropType<string | CSSProperties>),
    },
    
    // 修复后
    overlayStyle: {
      type: [Object, String] as PropType<string | CSSProperties>,
    },

测试覆盖范围

  • ✅ 所有 Props 的基础类型和函数类型测试
  • ✅ 展开/收起交互逻辑
  • ✅ 手风琴模式功能
  • ✅ 动画过渡效果
  • ✅ 键盘导航支持(Enter/Space 键)
  • ✅ 事件处理和冒泡控制
  • ✅ 父子组件通信(provide/inject)
  • ✅ 边界情况和异常处理
  • ✅ 动态属性变化和响应式更新

📝 更新日志

  • 本条 PR 不需要纳入 Changelog

tdesign-vue-next

  • test(collapse): 大幅提升 Collapse 组件测试覆盖率至 93.45%
  • fix(fake-arrow): 修复 overlayStyle PropType 定义错误

☑️ 请求合并前的自查清单

⚠️ 请自检并全部勾选全部选项⚠️

  • 文档已补充或无须补充
  • 代码演示已提供或无须提供
  • TypeScript 定义已补充或无须补充
  • Changelog 已提供或无须提供

🧪 测试结果

# 测试覆盖率结果
✅ 96 个测试用例全部通过
✅ 整体覆盖率:93.45% statements, 95.23% branches
✅ 核心组件覆盖率接近 100%
✅ 零测试失败,零 Vue 警告

📊 覆盖率对比

组件 修改前 修改后 提升
collapse.tsx 部分覆盖 100%
collapse-panel.tsx 未测试 97.5%
fake-arrow.tsx 75% 100%
整体测试用例 19 个 96 个 +405%

- Add 4 new test files and enhance existing tests
- Fix fake-arrow.tsx type definition bug
- Increase test cases from 19 to 96
- Core component coverage approaches 100%
- Complete coverage of all APIs and interaction logic
@uyarn uyarn changed the title feat(collapse): Improve test coverage to 93.45%, add 77 test cases test(collapse): improve collapse test coverage Sep 6, 2025
@tdesign-bot
Copy link
Collaborator

TDesign Component Site Preview Open

Component Preview
tdesign-vue-next 完成
@tdesign-vue-next/chat 完成

@uyarn uyarn merged commit 542d69e into Tencent:develop Sep 6, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants