# Jonard Search — QA Test Case Validation Report

| Field | Value |
|-------|-------|
| **Generated** | 2026-09-01T08:45:40.172Z |
| **Environment** | https://mpbenddev.conversionbox.io |
| **API ranking version** | 2026-08-30-stage9 |
| **Expected version** | 2026-08-30-stage9 |
| **Version match** | YES |

## Executive summary

| Metric | Count |
|--------|------:|
| Total workbook cases analyzed | 191 |
| **PASS (API automated)** | **54** |
| FAIL (API automated) | 5 |
| BLOCKED (data/deploy) | 11 |
| MANUAL (storefront/admin) | 121 |
| Critical — API PASS | 46 / 113 |
| Client Demo — API PASS | 19 / 25 |

### Interpretation

- **PASS (API)** — Autocomplete API on Dev matches expected result. Manual QA must **confirm same behavior on Jonard storefront UI**.
- **MANUAL** — Requires human tester (UI, admin, performance, placeholder inputs).
- **BLOCKED** — Missing test data or undeployed feature; not a product failure.
- **FAIL (API)** — Dev API does not meet expected result; engineering fix required before manual QA.

## Failures (API)

- **TC-029** (Functional QA): FDC-66 not in top 5: [FC-600, FSK-5] | query=`fiber trash` | top5: 1:FC-600, 2:FSK-5
- **TC-056** (Functional QA): Only 3 products (need 5) | query=`fiber stripper kit` | top5: 1:TK-375, 2:TK-355, 3:TK-350
- **TC-065** (Functional QA): FDC-66 not in top 8: [] | query=`what can I use for fiber scraps` | top5: 
- **TC-088** (Functional QA): field_competitor_part_no in response | query=`32-60-375` | top5: 1:TK-375, 2:TK-350
- **DEMO-21** (Client Demo Smoke): field_competitor_part_no in response | query=`32-60-375` | top5: 1:TK-375, 2:TK-350

## Client Demo Smoke — API results

| ID | Query | Status | Detail | Top 5 |
|----|-------|--------|--------|-------|
| DEMO-01 | FDC-66 | PASS (API) | Rank 1 = FDC-66 | 1:FDC-66 |
| DEMO-02 | fdc66 | PASS (API) | Rank 1 = FDC-66 | 1:FDC-66 |
| DEMO-03 | 811490017801 | PASS (API) | Rank 1 = FDC-66 | 1:FDC-66 |
| DEMO-04 | screwdriver | PASS (API) | 8 products; top1=SDP-2 | 1:SDP-2, 2:SD-61, 3:SDC-3810, 4:SDP-1, 5:SD-41 |
| DEMO-05 | screw driver | PASS (API) | 8 products; top1=SDP-2 | 1:SDP-2, 2:SD-61, 3:SDC-3810, 4:SDP-1, 5:SD-41 |
| DEMO-06 | fiber trash can | PASS (API) | Rank 1 = FDC-66 | 1:FDC-66 |
| DEMO-07 | fiber scraps | PASS (API) | FDC-66 in top 5: [FDC-66, FWM-2214] | 1:FDC-66, 2:FWM-2214 |
| DEMO-08 | fiber insertion tool | PASS (API) | 8 products; top1=FCT-100 | 1:FCT-100, 2:FCT-200, 3:FW-50, 4:DW-90, 5:RFS-100 |
| DEMO-09 | electrical connector tools | PASS (API) | 8 products; top1=R-5926 | 1:R-5926, 2:CMP-1226, 3:AR-910672, 4:R-4601, 5:R-4602 |
| DEMO-10 | cable pulling tools | PASS (API) | 8 products; top1=CP-475 | 1:CP-475, 2:ROD-3316, 3:MP-700, 4:FTF-1125, 5:JIC-3209 |
| DEMO-11 | wire pulling tools | PASS (API) | 8 products; top1=ROD-3316 | 1:ROD-3316, 2:MP-700, 3:FTF-1125, 4:JIC-3209, 5:MP-400 |
| DEMO-12 | fiber optic stripper | PASS (API) | 8 products; top1=JIC-375 | 1:JIC-375, 2:JIC-125, 3:JIC-1022, 4:ST-500, 5:TSAB-40 |
| DEMO-13 | fiber stripper kit | PASS (API) | 3 products; top1=TK-375 | 1:TK-375, 2:TK-355, 3:TK-350 |
| DEMO-14 | tool to strip 900 micron fiber | PASS (API) | 7 products; top1=JIC-375 | 1:JIC-375, 2:TK-121, 3:TK-170, 4:TK-121B, 5:TK-375 |
| DEMO-15 | fiber | PASS (API) | 8 products; top1=JIC-375 | 1:JIC-375, 2:FOD-2000, 3:VFL-150, 4:MS-6, 5:OFI-100 |
| DEMO-16 | Voltlife | BLOCKED | Voltlife VERIFY incomplete | — |
| DEMO-17 | 32-60-375 | PASS (API) | 2 products; top1=TK-375 | 1:TK-375, 2:TK-350 |
| DEMO-18 | Use known discontinued SKU | BLOCKED | No verified discontinued+replacement SKU in test data | — |
| DEMO-19 | s | PASS (API) | 8 products; top1=COPY KN-300INS | 1:COPY KN-300INS, 2:CC-2721, 3:TBS-100, 4:TTBW-158, 5:MS-526 |
| DEMO-20 | xyzzy nonexistent jonard tool 99999 | PASS (API) | request_tool.offer=true | — |
| DEMO-21 | 32-60-375 | FAIL (API) | field_competitor_part_no in response | 1:TK-375, 2:TK-350 |
| DEMO-22 | Use a tool query with merch overlap | MANUAL | Placeholder input — use concrete query from QA guide Section 6 | — |
| DEMO-23 | Use query matching both | MANUAL | Not mapped to API automation — execute on storefront per QA guide | — |
| DEMO-24 | tool to strip 900 micron fiber | PASS (API) | 7 products; top1=JIC-375 | 1:JIC-375, 2:TK-121, 3:TK-170, 4:TK-121B, 5:TK-375 |
| DEMO-25 | Run autocomplete + SERP checks | MANUAL | Storefront UI or measured timing required | — |

## API-automated Functional QA (sample)

| ID | Module | Query | Status | Top 5 |
|----|--------|-------|--------|-------|
| TC-001 | Exact Product Search | FDC-66 | PASS (API) | 1:FDC-66 |
| TC-002 | Exact Product Search | fdc-66 | PASS (API) | 1:FDC-66 |
| TC-003 | Exact Product Search | fdc66 | PASS (API) | 1:FDC-66 |
| TC-004 | Exact Product Search | 811490017801 | PASS (API) | 1:FDC-66 |
| TC-005 | Exact Product Search | Fiber Stripper & Scissors Kit | PASS (API) | 1:TK-375 |
| TC-008 | Spacing & Compound | screwdriver | PASS (API) | 1:SDP-2, 2:SD-61, 3:SDC-3810, 4:SDP-1, 5:SD-41 |
| TC-009 | Spacing & Compound | screw driver | PASS (API) | 1:SDP-2, 2:SD-61, 3:SDC-3810, 4:SDP-1, 5:SD-41 |
| TC-010 | Spacing & Compound | fishtape | PASS (API) | 1:FTS-240, 2:FTF-1125, 3:FTS-50, 4:JIC-685, 5:FTS-240 |
| TC-011 | Spacing & Compound | fish tape | PASS (API) | 1:FTS-240, 2:FTF-1125, 3:FTS-50, 4:JIC-685, 5:FTS-240 |
| TC-012 | Spacing & Compound | Screw Driver | PASS (API) | 1:SDP-2, 2:SD-61, 3:SDC-3810, 4:SDP-1, 5:SD-41 |
| TC-013 | Spacing & Compound | screw   driver | PASS (API) | 1:SDP-2, 2:SD-61, 3:SPK-100, 4:SDC-3810, 5:SDP-1 |
| TC-014 | Singular & Plural | connector | PASS (API) | 1:FCC-125, 2:JIC-891, 3:FCT-100, 4:TK-151, 5:PAB-CG |
| TC-015 | Singular & Plural | connectors | PASS (API) | 1:CTF-200, 2:TK-82, 3:FCT-100, 4:FLS-50, 5:RJ45-625 |
| TC-020 | Typo Handling | conector | PASS (API) | 1:CTF-200, 2:FCC-125, 3:JIC-891, 4:TK-82, 5:FCT-100 |
| TC-021 | Typo Handling | scredriver | PASS (API) | 1:SDP-2, 2:SD-61, 3:SPK-100, 4:SDC-3810, 5:SDP-1 |
| TC-026 | Synonyms & Wording | fiber disposal | PASS (API) | 1:FDC-66 |
| TC-027 | Synonyms & Wording | fiber scraps | PASS (API) | 1:FDC-66, 2:FWM-2214 |
| TC-028 | Synonyms & Wording | fiber trash can | PASS (API) | 1:FDC-66 |
| TC-033 | Category / Series | fiber | PASS (API) | 1:JIC-375, 2:FOD-2000, 3:VFL-150, 4:MS-6, 5:OFI-100 |
| TC-034 | Category / Series | fiber | PASS (API) | 1:JIC-375, 2:FOD-2000, 3:VFL-150, 4:MS-6, 5:OFI-100 |
| TC-040 | Product Type | electrical connector tools | PASS (API) | 1:R-5926, 2:CMP-1226, 3:AR-910672, 4:R-4601, 5:R-4602 |
| TC-045 | Functional Intent | fiber insertion tool | PASS (API) | 1:FCT-100, 2:FCT-200, 3:FW-50, 4:DW-90, 5:RFS-100 |
| TC-047 | Functional Intent | fiber removal tool | PASS (API) | 1:FCT-100, 2:FCT-200, 3:FS-1416, 4:FW-50, 5:DW-90 |
| TC-048 | Functional Intent | cable pulling tools | PASS (API) | 1:CP-475, 2:ROD-3316, 3:MP-700, 4:FTF-1125, 5:JIC-3209 |
| TC-049 | Functional Intent | wire pulling tools | PASS (API) | 1:ROD-3316, 2:MP-700, 3:FTF-1125, 4:JIC-3209, 5:MP-400 |
| TC-058 | Kit vs Individual | JIC-375 | PASS (API) | 1:JIC-375 |
| TC-061 | Natural Language | tool to strip 900 micron fiber | PASS (API) | 1:JIC-375, 2:TK-121, 3:TK-170, 4:TK-121B, 5:TK-375 |
| TC-071 | Semantic Safety | FDC-66 | PASS (API) | 1:FDC-66 |
| TC-072 | Semantic Safety | Fiber Stripper & Scissors Kit | PASS (API) | 1:TK-375 |
| TC-084 | Competitor Search | 32-60-375 | PASS (API) | 1:TK-375, 2:TK-350 |
| TC-103 | Autocomplete | s | PASS (API) | 1:COPY KN-300INS, 2:CC-2721, 3:TBS-100, 4:TTBW-158, 5:MS-526 |
| TC-111 | Fallback / Request a Tool | xyzzy nonexistent jonard tool 99999 | PASS (API) |  |
| TC-112 | Fallback / Request a Tool | xyzzy nonexistent jonard tool 99999 | PASS (API) |  |
| TC-115 | Fallback / Request a Tool | FDC-66 | PASS (API) | 1:FDC-66 |
| TC-118 | Fallback / Request a Tool | xyzzy nonexistent jonard tool 99999 | PASS (API) |  |

## Blocked cases

- **TC-023**: Voltlife taxonomy VERIFY incomplete (catalog evaluateLive=false)
- **TC-037**: Voltlife taxonomy VERIFY incomplete
- **TC-078**: No verified discontinued+replacement SKU
- **TC-083**: No verified discontinued+replacement SKU
- **TC-093**: No verified discontinued+replacement SKU
- **TC-094**: No verified discontinued+replacement SKU
- **TC-095**: No verified discontinued+replacement SKU
- **TC-096**: No verified discontinued+replacement SKU
- **TC-097**: No verified discontinued+replacement SKU
- **DEMO-16**: Voltlife VERIFY incomplete
- **DEMO-18**: No verified discontinued+replacement SKU in test data

## Manual QA next steps

1. Open `qa-test-case-validation-report.xlsx` — validation columns pre-filled.
2. For every **PASS (API)** row: confirm on storefront; set Status=Pass if UI matches.
3. Execute all **MANUAL** rows per `docs/Jonard_Search_Manual_QA_Testing_Guide.md`.
4. Mark **BLOCKED** rows Blocked (not Fail) until data/deploy ready.
5. Add manual execution for **ADD-fiber-sc** / **ADD-fiber-scr** if not in workbook.

---
*Automated validation uses Dev autocomplete API only. SERP, admin, and UI are manual.*