fix: add recomputeDedup mock to ProductLibrary test #1686

Merged
auto-approve-bot merged 1 commits from fix/test-recompute-dedup-mock into develop 2026-09-04 14:14:53 +08:00
Owner

Problem

PR #1685 added recomputeDedup to @/api/products, but the test mock in ProductLibrary.test.tsx was missing it.

The component imports recomputeDedup and uses it via useRecomputeDedup hook. When Vitest runs the test, the mock returns undefined for this function, causing the test to crash.

Solution

Added recomputeDedup: vi.fn().mockResolvedValue({ enqueued: 0, total_scanned: 0, skipped: 0, message: "" }) to the vi.mock("@/api/products", ...) block.

Changes

  • apps/web/src/test/pages/ProductLibrary.test.tsx — added recomputeDedup mock

Verification

  • npx vitest run src/test/pages/ProductLibrary.test.tsx passes
  • Prettier formatted
## Problem PR #1685 added `recomputeDedup` to `@/api/products`, but the test mock in `ProductLibrary.test.tsx` was missing it. The component imports `recomputeDedup` and uses it via `useRecomputeDedup` hook. When Vitest runs the test, the mock returns `undefined` for this function, causing the test to crash. ## Solution Added `recomputeDedup: vi.fn().mockResolvedValue({ enqueued: 0, total_scanned: 0, skipped: 0, message: "" })` to the `vi.mock("@/api/products", ...)` block. ## Changes - `apps/web/src/test/pages/ProductLibrary.test.tsx` — added `recomputeDedup` mock ## Verification - ✅ `npx vitest run src/test/pages/ProductLibrary.test.tsx` passes - ✅ Prettier formatted
xiaoxia added 1 commit 2026-09-04 14:08:46 +08:00
fix: add recomputeDedup mock to ProductLibrary test
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m37s
AI Code Review / AI Code Review (pull_request) Successful in 1m45s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 1m44s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m52s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 1m58s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m3s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m5s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 2m23s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 5m23s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 1s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 3m59s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 10s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 37s
d2dbc7d3a7
PR #1685 added recomputeDedup to @/api/products but the test mock
in ProductLibrary.test.tsx was missing it, causing the component
to receive undefined and crash during Vitest runs.

Added recomputeDedup mock returning { enqueued: 0, ... } to fix
the Frontend Unit Tests CI check.
Collaborator

【阻塞级判定】

  • 是否存在阻塞级问题:否
  • 阻塞级问题数量:0 个

📊 审查概览

  • 整体评价:通过
  • 建议级问题数量:0 个

🔴 阻塞级问题(必须修复)

💡 改进建议(不阻塞合并)

良好实践

  • Mock 定义遵循了现有代码的风格和模式(使用 vi.fn().mockResolvedValue)。
  • 返回值结构清晰,符合 API 响应的预期格式,便于测试用例覆盖基本场景。

🤖 由 AI 代码审查机器人自动生成 | 2026-09-04 06:10:31 | 模型:

### 【阻塞级判定】 - 是否存在阻塞级问题:否 - 阻塞级问题数量:0 个 ### 📊 审查概览 - 整体评价:通过 - 建议级问题数量:0 个 ### 🔴 阻塞级问题(必须修复) 无 ### 💡 改进建议(不阻塞合并) 无 ### ✅ 良好实践 - Mock 定义遵循了现有代码的风格和模式(使用 `vi.fn().mockResolvedValue`)。 - 返回值结构清晰,符合 API 响应的预期格式,便于测试用例覆盖基本场景。 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-09-04 06:10:31 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->

🚀 预览环境已部署

项目 详情
PR号 #1686
预览链接 https://pr-1686.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1686 | | 预览链接 | [https://pr-1686.preview.xiaoxiajianji.com](https://pr-1686.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot approved these changes 2026-09-04 14:10:51 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-09-04 14:10:52 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot merged commit 02d226a163 into develop 2026-09-04 14:14:53 +08:00
auto-approve-bot deleted branch fix/test-recompute-dedup-mock 2026-09-04 14:14:53 +08:00

🗑️ 预览环境已清理

PR #1686 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #1686 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.