Skip to content

Test cases: Vendor inventory

VersionDate (UTC)Summary
1.0.02026-05-13Initial split from vendor backend
1.1.02026-05-13Internal transfers (vendor/internal-transfers) + warehouse detail tab


IDClassScenarioAutomation
TC-VINV-001HappyList warehouses for selected storeUnit + E2E*
TC-VINV-002UnhappyMissing store_id on scoped route → 400Unit
TC-VINV-003HappyCreate / update warehouse with valid address fieldsE2E*
TC-VINV-004UnhappyDuplicate code / invalid zone rejectedUnit
IDClassScenarioAutomation
TC-VINV-010HappyStock list pagination + search + sort URL syncE2E*
TC-VINV-011HappyLot detail shows traceability fields expected by UIE2E*
TC-VINV-012UnhappyLot not in store → 403 / 404Unit
TC-VINV-013UnhappyConcurrent adjustment race → optimistic UI or refetchE2E*
IDClassScenarioAutomation
TC-VINV-020HappyCreate adjustment draft → submit → approved stock movementUnit + E2E*
TC-VINV-021UnhappyNegative stock after adjustment blocked by serverUnit
TC-VINV-022UnhappyWrong warehouse for SKU → rejectionUnit
TC-VINV-023HappyAdjustment list filters by status and dateE2E*

Internal transfers (vendor/internal-transfers)

Section titled “Internal transfers (vendor/internal-transfers)”
IDClassScenarioAutomation
TC-VINV-040HappyGET vendor/internal-transfers/list with store_id + pagination returns rows for warehouse pairUnit✓ (apps/backend/src/modules/vendor/vendor-internal-transfers.controller.spec.ts)
TC-VINV-041HappyPOST vendor/internal-transfers — valid source/dest warehouses + lines moves stock (inventory service)Unit✓ (apps/backend/src/modules/vendor/vendor-inventory.service.spec.ts)
TC-VINV-042UnhappySource warehouse = destination → 400 / validation errorUnit
TC-VINV-043UnhappyLine quantity above available → insufficient stock surfaced to UI toastUnit + E2E*
TC-VINV-044HappyWarehouse detail Internal transfers tab lists history; empty state when noneE2E*
TC-VINV-045HappyNew transfer route (/dashboard/inventory/internal-transfers/new) — pick source first, then products, submit successE2E*
TC-VINV-046UnhappyUser without inventory module → 403 on list + createUnit

Soft-delete / visibility (if product exposes)

Section titled “Soft-delete / visibility (if product exposes)”
IDClassScenarioAutomation
TC-VINV-030HappyArchived master rows hidden from default filters when API supportsUnit
TC-VINV-031UnhappyRestore / unarchive requires permissionUnit

  • Mirror admin inventory sheets where behavior is symmetric (Admin warehouses if applicable)
  • High-risk paths: lot expiry, valuation mode (if any) have explicit unhappy rows
  • Internal transfer DTO changes mirrored in TC-VINV-040+ and CreateVendorInternalTransferDto unit tests

Parent index: System test cases (index) · Cross-cutting: Vendor backend