Skip to content

[35/N] Add unit tests for AlgoList registry, algorithm index, and InfoModals - #126

Open
karkir0003 wants to merge 35 commits into
csvistool:masterfrom
karkir0003:karthik/kar-42-add-unit-tests-for-algolist-and-infomodals
Open

karkir0003 wants to merge 35 commits into
csvistool:masterfrom
karkir0003:karthik/kar-42-add-unit-tests-for-algolist-and-infomodals

Conversation

@karkir0003

@karkir0003 karkir0003 commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

PR Stack

  1. ⬅️ [1/N] Update CI to run frontend unit tests #91 (Add test infrastructure and Jest setup)
  2. ⬅️ [2/N] Configure React Testing Library and Setup Tests #92 (Add unit tests for Header, Footer, and Blob components)
  3. ⬅️ [3/N] Add unit tests for SideButton component #94 (Add unit tests for HomeScreen components (SideButton, SearchFilter))
  4. ⬅️ [4/N] Add unit tests for SearchFilter component #95 (Add unit tests for AlgoScreen components (AlgoSection, Pseudocode, ModalSidebarSectionTab))
  5. ⬅️ [6/N] Add unit tests for Blob mascot component #97 (Add unit tests for modals (BigOModal, InfoModals))
  6. ⬅️ [5/N] Add unit tests for Header and Footer components #96 (Add unit tests for AlgorithmNotFound404 component)
  7. ⬅️ [7/N] Add unit tests for AboutScreen screen #98 (Add unit tests for HomeScreen page)
  8. ⬅️ [8/N] Add integration tests for HomeScreen screen #99 (Add unit tests for AboutScreen page)
  9. ⬅️ [9/N] Add unit tests for AlgorithmNotFound404 component #100 (Add unit tests for AlgoScreen page)
  10. ⬅️ [10/N] Add integration tests for AlgoScreen screen #101 (Add unit tests for App root component and routes)
  11. ⬅️ [11/N] Add unit tests for ModalSidebarSectionTab component #102 (Add test coverage workflow for CI)
  12. ⬅️ [12/N] Add unit tests for BigOModal component #103 (Add unit tests for CustomEvents animation utility)
  13. ⬅️ [13/N] Add unit tests for Pseudocode component #104 (Add unit tests for UndoFunctions animation utility)
  14. ⬅️ [14/N] Add unit and integration tests for AlgoSection component #105 (Add unit tests for AnimatedCircle animation primitive)
  15. ⬅️ [15/N] Add unit and integration tests for root App component #106 (Add unit tests for AnimatedHighlightCircle)
  16. ⬅️ [16/N] Add unit tests for animation events and undo functions #107 (Add unit tests for SingleAnimation)
  17. ⬅️ [17/N] Add unit tests for AnimatedObject, AnimatedCircle, and AnimatedHighlightCircle #108 (Add unit tests for AnimatedObject base class)
  18. ⬅️ [18/N] Add unit tests for AnimatedRectangle, AnimatedLabel, and AnimatedLine #109 (Add unit tests for AnimatedRectangle, AnimatedLabel, and AnimatedLine)
  19. ⬅️ [19/N] Add unit tests for AnimatedLinkedListNode, AnimatedDoublyLinkedListNode, and AnimatedCircularlyLinkedListNode #110 (Add unit tests for AnimatedLinkedListNode, AnimatedDoublyLinkedListNode, and AnimatedCircularlyLinkedListNode)
  20. ⬅️ [20/N] Add unit tests for AnimatedBTreeNode and AnimatedSkipListNode #111 (Add unit tests for AnimatedBTreeNode and AnimatedSkipListNode)
  21. ⬅️ [21/N] Add unit tests for ObjectManager #112 (Add unit tests for ObjectManager)
  22. ⬅️ [22/N] Add unit tests for AnimationMain #113 (Add unit tests for AnimationMain)
  23. ⬅️ [23/N] Add unit tests for algo util helpers (PriorityQueue, SkipListHeads, GraphValues) #114 (Add unit tests for algo util helpers (PriorityQueue, SkipListHeads, GraphValues))
  24. ⬅️ [24/N] Add unit tests for base Algorithm class and control bar helpers #115 (Add unit tests for base Algorithm class and control bar helpers)
  25. ⬅️ [25/N] Add unit tests for ArrayList algorithm #116 (Add unit tests for ArrayList algorithm)
  26. ⬅️ [26/N] Add unit tests for LinkedList, DoublyLinkedList, and CircularlyLinkedList algorithms #117 (Add unit tests for LinkedList, DoublyLinkedList, and CircularlyLinkedList algorithms)
  27. ⬅️ [27/N] Add unit tests for Stack, Queue, and Deque algorithms (Array and LL variants) #118 (Add unit tests for Stack, Queue, and Deque algorithms (Array and LL variants))
  28. ⬅️ [28/N] Add unit tests for BST, AVL, Heap, and SplayTree algorithms #119 (Add unit tests for BST, AVL, Heap, and SplayTree algorithms)
  29. ⬅️ [29/N] Add unit tests for BTree, TreeMap, SkipList, and DisjointSet algorithms #120 (Add unit tests for BTree, TreeMap, SkipList, and DisjointSet algorithms)
  30. ⬅️ [30/N] Add unit tests for Hash, OpenHash, ClosedHash, and NonLinearProbing algorithms #121 (Add unit tests for Hash, OpenHash, ClosedHash, and NonLinearProbing algorithms)
  31. ⬅️ [31/N] Add unit tests for BruteForce, BoyerMoore, KMP, RabinKarp, and LCS pattern matching algorithms #122 (Add unit tests for BruteForce, BoyerMoore, KMP, RabinKarp, and LCS pattern matching algorithms)
  32. ⬅️ [32/N] Add unit tests for BubbleSort, CocktailSort, SelectionSort, InsertionSort, MergeSort, Quicksort, Quickselect, and HeapSort algorithms #123 (Add unit tests for BubbleSort, CocktailSort, SelectionSort, InsertionSort, MergeSort, Quicksort, Quickselect, and HeapSort algorithms)
  33. ⬅️ [33/N] Add unit tests for LSDRadix, RadixSort, BogoSort, DropSort, FredSort, MiracleSort, and SleepSort algorithms #124 (Add unit tests for LSDRadix, RadixSort, BogoSort, DropSort, FredSort, MiracleSort, and SleepSort algorithms)
  34. ⬅️ [34/N] Add unit tests for Graph, BFS, DFS, Dijkstras, Prims, Kruskals, Floyd, CreateGraph, and LVA algorithms #125 (Add unit tests for Graph, BFS, DFS, Dijkstras, Prims, Kruskals, Floyd, CreateGraph, and LVA algorithms)
  35. 👉 #CURRENT — Add unit tests for AlgoList registry, algorithm index, and InfoModals (this PR)

Addresses #93

Context

Adds comprehensive unit test coverage for the master algorithm registry, algorithm re-exports, and example guidance modals across the application:

  • src/AlgoList.js: The central registry mapping algorithm routes to metadata tuples ([displayName, ComponentClass, hasPseudocode, verboseDisplayName?, rainbowColor?]), list ordering, category headers, related search recommendations, and filter categorization.
  • src/algo/index.js: The barrel file re-exporting all 48 visualizer classes used across the application.
  • src/modals/InfoModals.js: The dictionary of educational tips and operational guidance modals displayed when users open the information drawer for each algorithm.

Changes Made

  • Introduced src/__tests__/AlgoList.test.js:
    • Validates algoMap entries for all standard and April Fools algorithms.
    • Verifies entry tuple lengths, display names, component constructor types, and boolean flags.
    • Verifies algoList ordering, structure, and category section headers.
    • Verifies relatedSearches mapping keys and values resolve to known algorithm keys.
    • Verifies algoFilter category grouping and algorithm ID integrity.
  • Introduced src/algo/__tests__/index.test.js:
    • Verifies all 48 visualizers are exported cleanly as valid constructor functions.
  • Introduced src/modals/__tests__/InfoModals.test.js:
    • Asserts existence and validity of all 25 algorithm modal elements.
    • Renders each modal element with @testing-library/react and asserts key instructional text in the DOM.

Test Plan

  • Ran npm test -- --watchAll=false (all 3 new test suites pass, 37 unit tests passing; 87 suites, 923 tests passing repository-wide).
  • Ran npm run lint and npm run prettier (0 errors, 0 warnings).

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant