3.3 KiB
3.3 KiB
2026-03-27 Q-004 Coverage Remediation Pass 3
Scope
- Continue remediating
Q-004 自动化覆盖率不足. - This pass stayed on the remaining real gaps instead of moving to
Q-005. - Focus areas:
- Frontend
UsersPage - Frontend deeper
ProfileSecurityPageaction branches - Backend
internal/repository - Backend
internal/auth/providers
- Frontend
Changes
Frontend
- Added page-level regression tests for:
frontend/admin/src/pages/admin/UsersPage/UsersPage.test.tsxfrontend/admin/src/pages/admin/ProfileSecurityPage/ProfileSecurityPage.behavior.test.tsx
- Newly covered user-facing branches include:
UsersPage- initial load
- keyword filter and reset
- refresh
- create/detail/edit/assign-role overlay flows
- self-delete guard
- all status transition branches (
1 -> 3,3 -> 1,2 -> 1,0 -> 1) - role-fetch failure
- page error retry
ProfileSecurityPage- TOTP setup open
- enable validation and success path
- disable validation and success path
- avatar type and size validation
- valid avatar upload success path
- device enable/disable/delete flows
Backend
- Added repository regression tests in:
internal/repository/repository_additional_test.go
- Added provider non-network coverage in:
internal/auth/providers/provider_urls_additional_test.go
- Fixed one real repository defect in:
internal/repository/device.go- explicit
status=0on device create was being swallowed by the DB default, causing inactive devices to persist as active
Verified Commands
cd D:\project\frontend\admin
npm.cmd run test:run -- src/pages/admin/UsersPage/UsersPage.test.tsx src/pages/admin/ProfileSecurityPage/ProfileSecurityPage.behavior.test.tsx
npm.cmd run lint
npm.cmd run build
npm.cmd run test:coverage
cd D:\project
$env:GOCACHE='D:\project\.tmp\gocache'
$env:GOPATH='D:\project\.tmp\go'
$env:GOMODCACHE='D:\project\.tmp\go\pkg\mod'
go test ./internal/repository ./internal/auth/providers -count=1
go test ./internal/auth/providers ./internal/repository -cover
go test ./... -count=1
go vet ./...
go build ./cmd/server
Results
Frontend coverage
- Overall:
- statements
49.18% - branches
42.86% - functions
44.92% - lines
49.79%
- statements
- Target modules:
src/pages/admin/UsersPage/UsersPage.tsx:90.98%statements,68.75%branchessrc/pages/admin/ProfileSecurityPage/ProfileSecurityPage.tsx:70.17%statements,48.97%branchessrc/pages/admin/ProfileSecurityPage/ContactBindingsSection.tsx:85.29%statementssrc/pages/admin/WebhooksPage/WebhooksPage.tsx:93.15%src/pages/admin/ImportExportPage/ImportExportPage.tsx:83.58%
Backend coverage
internal/repository:37.1%internal/auth/providers:8.5%
Real Conclusion
- This pass materially reduced the previously explicit
UsersPageandProfileSecurityPagegaps. - It also exposed and closed a real persistence bug in
DeviceRepository.Create. Q-004has improved again, but it still cannot be honestly declared closed.- The main remaining gaps are still:
- low-coverage frontend service layers and multiple untouched admin pages
- deeper
internal/auth/providersnon-network parsing/error paths - the rest of
internal/repositorybeyond the newly covered device/login-log/password-history/operation-log paths