Skip to content

Commit 18f1faf

Browse files
committed
Spec updates
1 parent ea9315d commit 18f1faf

1 file changed

Lines changed: 60 additions & 18 deletions

File tree

specs/LK R&D EHR - React Animal History - Search By Id.md

Lines changed: 60 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,14 @@ Beyond migrating to a new framework, this will be an opportunity to rethink and
8686
2. Likelihood: Medium
8787
3. Mitigation:
8888
1. Id resolution feedback for in UI.
89-
2. Implemented as experimental feature to be able to view old and new animal history results side-by-side.
89+
2. Implemented as admin feature initially to be able to view old and new animal history results side-by-side.
9090
3. Manual testing with test data.
9191
4. Regression test coverage.
9292
2. Risk: Incorrect data sent to reports
9393
1. Impact: High
9494
2. Likelihood: Medium
9595
3. Mitigation:
96-
1. Implemented as experimental feature to be able to view old and new animal history reports side-by-side.
96+
1. Implemented as admin feature initially to be able to view old and new animal history reports side-by-side.
9797
2. Manual testing with test data.
9898
3. Regression test coverage across all reports for each center.
9999

@@ -1362,38 +1362,80 @@ Add tracking for:
13621362
- Verify resolution finds ID regardless of stored casing
13631363
- Enter same ID in uppercase, verify same result
13641364

1365+
12. **Very Long IDs**
1366+
- Enter a single ID with 500+ characters
1367+
- Click "Search By Ids"
1368+
- Verify ID is processed without truncation or error
1369+
- Verify ID appears in "Not Found" section (assuming no match)
1370+
- Enter a single ID with 2000+ characters
1371+
- Verify no browser/UI freeze or crash
1372+
- Verify appropriate handling (either processed or reasonable error)
1373+
- Enter 50 IDs where each ID is 100 characters long
1374+
- Verify all IDs are parsed and processed correctly
1375+
- Verify URL hash doesn't exceed browser limits when bookmarking
1376+
1377+
13. **Special Characters in IDs (Beyond Separators)**
1378+
- **URL-sensitive characters:** Enter IDs containing `&`, `=`, `?`, `#`, `%`, `+`
1379+
- Example: "ID&123", "ID=456", "ID?789", "ID#ABC", "ID%20DEF", "ID+GHI"
1380+
- Verify characters are preserved literally, not interpreted as URL parameters
1381+
- Verify URL hash encoding works correctly when bookmarking
1382+
- **Quote characters:** Enter IDs containing single quotes, double quotes, backticks
1383+
- Example: "ID'123", "ID\"456", "ID\`789"
1384+
- Verify no JavaScript errors or injection issues
1385+
- Verify IDs appear in "Not Found" section (assuming no match)
1386+
- **HTML/XSS characters:** Enter IDs containing `<`, `>`, `&`, script tags
1387+
- Example: "ID<123>", "ID&amp;456", "<script>alert(1)</script>"
1388+
- Verify characters are escaped in display, no XSS execution
1389+
- Verify feedback section renders safely
1390+
- **Regex metacharacters:** Enter IDs containing `*`, `.`, `[`, `]`, `^`, `$`, `(`, `)`, `{`, `}`, `|`, `\`
1391+
- Example: "ID*123", "ID.456", "ID[789]", "ID^ABC", "ID$DEF", "ID(GHI)", "ID\\JKL"
1392+
- Verify characters are treated literally, not as regex patterns
1393+
- Verify no regex evaluation errors
1394+
- **Unicode and international characters:** Enter IDs with accented letters, CJK characters, emoji
1395+
- Example: "IDéàü123", "ID中文456", "ID🐒789"
1396+
- Verify characters are preserved and displayed correctly
1397+
- Verify encoding works in URL hash
1398+
- **Whitespace variations:** Enter IDs with leading/trailing spaces, multiple spaces, non-breaking spaces
1399+
- Example: " ID123 ", "ID 456", "ID\u00A0789" (non-breaking space)
1400+
- Verify trimming behavior is consistent
1401+
- Verify non-breaking spaces are handled appropriately
1402+
- **Null and control characters:** Enter IDs with embedded null bytes or control characters
1403+
- Example: "ID\x00123", "ID\x01456"
1404+
- Verify no crash or security issue
1405+
- Verify sanitization removes or escapes dangerous characters
1406+
13651407
### All Animals Mode
13661408

1367-
12. **View All Animals**
1409+
14. **View All Animals**
13681410
- Click "All Animals" button
13691411
- Verify ID input textarea is cleared and hidden
13701412
- Verify reports display data for all animals in database
13711413
- Verify no ID filters applied
13721414
- Test with multiple report tabs
13731415

1374-
13. **URL Bookmarking - All Animals**
1416+
15. **URL Bookmarking - All Animals**
13751417
- While in All Animals mode, copy URL
13761418
- Open URL in new browser tab
13771419
- Verify All Animals mode is active
13781420
- Verify all animals shown
13791421

13801422
### All Alive at Center Mode
13811423

1382-
14. **View Alive Animals (Supported Report)**
1424+
16. **View Alive Animals (Supported Report)**
13831425
- Navigate to report with `supportsNonIdFilters = true`
13841426
- Verify "All Alive at Center" button is enabled
13851427
- Click "All Alive at Center"
13861428
- Verify reports show only animals with `Id/Demographics/calculated_status = 'Alive'`
13871429
- Verify ID input is cleared/hidden
13881430

1389-
15. **Disabled for Unsupported Reports**
1431+
17. **Disabled for Unsupported Reports**
13901432
- Navigate to report with `supportsNonIdFilters = false`
13911433
- Verify "All Alive at Center" button is disabled/grayed out
13921434
- Hover over button, verify tooltip explains why disabled
13931435
- Switch to another report with `supportsNonIdFilters = true`
13941436
- Verify button becomes enabled
13951437

1396-
16. **Report Tab Switching**
1438+
18. **Report Tab Switching**
13971439
- Start in All Alive at Center mode on supported report
13981440
- Switch to report tab with `supportsNonIdFilters = false`
13991441
- Verify "All Alive at Center" button becomes disabled
@@ -1407,15 +1449,15 @@ Add tracking for:
14071449

14081450
### URL Params Mode (Read-Only)
14091451

1410-
17. **Shared Link with Subjects**
1452+
19. **Shared Link with Subjects**
14111453
- Perform ID search for 3 animals, get results
14121454
- Generate shareable URL with `readOnly=true` parameter
14131455
- Open URL in incognito/private browser window
14141456
- Verify SearchByIdPanel is completely hidden (no filter buttons, no textarea, no summary)
14151457
- Verify reports display data for the 3 animals immediately
14161458
- Verify clean presentation suitable for sharing
14171459

1418-
18. **Exit ReadOnly Mode via URL Edit**
1460+
20. **Exit ReadOnly Mode via URL Edit**
14191461
- From URL Params mode (shared link with readOnly=true)
14201462
- Manually edit URL to remove `readOnly:true` from hash
14211463
- Verify SearchByIdPanel now visible
@@ -1424,15 +1466,15 @@ Add tracking for:
14241466
- Modify ID list, click "Search By Ids"
14251467
- Verify new IDs resolve and reports update
14261468

1427-
19. **Bookmark with Many Subjects**
1469+
21. **Bookmark with Many Subjects**
14281470
- Create URL Params mode link with 50 animal IDs
14291471
- Bookmark the URL
14301472
- Close browser, reopen bookmark
14311473
- Verify exactly 50 animals display correctly
14321474
- Verify no ID limit validation (URL Params mode bypasses 100 limit)
14331475
- Verify URL hash length doesn't cause browser issues
14341476

1435-
20. **URL with Subjects but No readOnly Flag**
1477+
22. **URL with Subjects but No readOnly Flag**
14361478
- Build URL with subjects in hash but without `readOnly=true` parameter
14371479
- Navigate to URL
14381480
- Verify ID Search mode active (not URL Params mode)
@@ -1441,31 +1483,31 @@ Add tracking for:
14411483

14421484
### Filter Mode Switching
14431485

1444-
21. **ID Search → All Animals**
1486+
23. **ID Search → All Animals**
14451487
- Enter 5 animal IDs, click "Search By Ids"
14461488
- Verify reports show 5 animals
14471489
- Click "All Animals" button
14481490
- Verify ID textarea is cleared
14491491
- Verify reports now show all animals
14501492

1451-
22. **All Animals → ID Search**
1493+
24. **All Animals → ID Search**
14521494
- While in All Animals mode showing all animals
14531495
- Enter animal IDs in textarea and click "Search By Ids"
14541496
- Verify ID resolution occurs
14551497
- Verify reports update to show only entered animals
14561498

1457-
23. **ID Search → All Alive at Center**
1499+
25. **ID Search → All Alive at Center**
14581500
- From ID Search with 5 animals
14591501
- Click "All Alive at Center" button (on supported report)
14601502
- Verify ID textarea cleared
14611503
- Verify reports now show only alive animals (not just the 5)
14621504

1463-
24. **All Alive at Center → ID Search**
1505+
26. **All Alive at Center → ID Search**
14641506
- From All Alive at Center mode
14651507
- Enter animal IDs in textarea and click "Search By Ids"
14661508
- Verify can return to ID search with specified animals
14671509

1468-
25. **Browser Back/Forward Navigation**
1510+
27. **Browser Back/Forward Navigation**
14691511
- Perform ID search for 3 animals
14701512
- Click "All Animals"
14711513
- Click browser back button
@@ -1476,13 +1518,13 @@ Add tracking for:
14761518

14771519
### Cross-Report Consistency
14781520

1479-
26. **Data Consistency Across Report Types**
1521+
28. **Data Consistency Across Report Types**
14801522
- Search for 3 animals
14811523
- Navigate through all report tabs (Demographics, Weight, Housing, etc.)
14821524
- Verify all reports show same 3 animals
14831525
- Verify filter is maintained across tabs
14841526

1485-
27. **Single vs Multi-Animal Report Variants**
1527+
29. **Single vs Multi-Animal Report Variants**
14861528
- Search for 1 animal
14871529
- Verify reports using single-animal view layout
14881530
- Search for 10 animals

0 commit comments

Comments
 (0)