Repository navigation
Improve Test Coverage of the Web App #93
Copy link
Copy link
Open
Description
Activity
@karkir0003 will take care of this so the rest of the team can focus on adding functionality
cc: @luciankt , can you review these PRs in ascending order as specified (eg: The
[1/N]PR is reviewed before the[2/N]PR). This is due to me setting up what's called a stacked PR workflow via GitHub CLI to make each unit test addition self contained and make review easier.🎉 Complete Test Coverage Stack [1/35] through [35/35]
All 35 stacked PRs for comprehensive unit and integration test coverage across the entire Georgia Tech CS 1332 Visualization Tool codebase have been submitted and are all passing CI:
- PR [1/N] Update CI to run frontend unit tests #91: [1/N] Add test infrastructure and Jest setup
- PR [2/N] Configure React Testing Library and Setup Tests #92: [2/N] Add unit tests for Header, Footer, and Blob components
- PR [3/N] Add unit tests for SideButton component #94: [3/N] Add unit tests for HomeScreen components (SideButton, SearchFilter)
- PR [4/N] Add unit tests for SearchFilter component #95: [4/N] Add unit tests for AlgoScreen components (AlgoSection, Pseudocode, ModalSidebarSectionTab)
- PR [6/N] Add unit tests for Blob mascot component #97: [5/N] Add unit tests for modals (BigOModal, InfoModals)
- PR [5/N] Add unit tests for Header and Footer components #96: [6/N] Add unit tests for AlgorithmNotFound404 component
- PR [7/N] Add unit tests for AboutScreen screen #98: [7/N] Add unit tests for HomeScreen page
- PR [8/N] Add integration tests for HomeScreen screen #99: [8/N] Add unit tests for AboutScreen page
- PR [9/N] Add unit tests for AlgorithmNotFound404 component #100: [9/N] Add unit tests for AlgoScreen page
- PR [10/N] Add integration tests for AlgoScreen screen #101: [10/N] Add unit tests for App root component and routes
- PR [11/N] Add unit tests for ModalSidebarSectionTab component #102: [11/N] Add test coverage workflow for CI
- PR [12/N] Add unit tests for BigOModal component #103: [12/N] Add unit tests for CustomEvents animation utility
- PR [13/N] Add unit tests for Pseudocode component #104: [13/N] Add unit tests for UndoFunctions animation utility
- PR [14/N] Add unit and integration tests for AlgoSection component #105: [14/N] Add unit tests for AnimatedCircle animation primitive
- PR [15/N] Add unit and integration tests for root App component #106: [15/N] Add unit tests for AnimatedHighlightCircle
- PR [16/N] Add unit tests for animation events and undo functions #107: [16/N] Add unit tests for SingleAnimation
- PR [17/N] Add unit tests for AnimatedObject, AnimatedCircle, and AnimatedHighlightCircle #108: [17/N] Add unit tests for AnimatedObject base class
- PR [18/N] Add unit tests for AnimatedRectangle, AnimatedLabel, and AnimatedLine #109: [18/N] Add unit tests for AnimatedRectangle, AnimatedLabel, and AnimatedLine
- PR [19/N] Add unit tests for AnimatedLinkedListNode, AnimatedDoublyLinkedListNode, and AnimatedCircularlyLinkedListNode #110: [19/N] Add unit tests for AnimatedLinkedListNode, AnimatedDoublyLinkedListNode, and AnimatedCircularlyLinkedListNode
- PR [20/N] Add unit tests for AnimatedBTreeNode and AnimatedSkipListNode #111: [20/N] Add unit tests for AnimatedBTreeNode and AnimatedSkipListNode
- PR [21/N] Add unit tests for ObjectManager #112: [21/N] Add unit tests for ObjectManager
- PR [22/N] Add unit tests for AnimationMain #113: [22/N] Add unit tests for AnimationMain
- PR [23/N] Add unit tests for algo util helpers (PriorityQueue, SkipListHeads, GraphValues) #114: [23/N] Add unit tests for algo util helpers (PriorityQueue, SkipListHeads, GraphValues)
- PR [24/N] Add unit tests for base Algorithm class and control bar helpers #115: [24/N] Add unit tests for base Algorithm class and control bar helpers
- PR [25/N] Add unit tests for ArrayList algorithm #116: [25/N] Add unit tests for ArrayList algorithm
- PR [26/N] Add unit tests for LinkedList, DoublyLinkedList, and CircularlyLinkedList algorithms #117: [26/N] Add unit tests for LinkedList, DoublyLinkedList, and CircularlyLinkedList algorithms
- PR [27/N] Add unit tests for Stack, Queue, and Deque algorithms (Array and LL variants) #118: [27/N] Add unit tests for Stack, Queue, and Deque algorithms (Array and LL variants)
- PR [28/N] Add unit tests for BST, AVL, Heap, and SplayTree algorithms #119: [28/N] Add unit tests for BST, AVL, Heap, and SplayTree algorithms
- PR [29/N] Add unit tests for BTree, TreeMap, SkipList, and DisjointSet algorithms #120: [29/N] Add unit tests for BTree, TreeMap, SkipList, and DisjointSet algorithms
- PR [30/N] Add unit tests for Hash, OpenHash, ClosedHash, and NonLinearProbing algorithms #121: [30/N] Add unit tests for Hash, OpenHash, ClosedHash, and NonLinearProbing algorithms
- PR [31/N] Add unit tests for BruteForce, BoyerMoore, KMP, RabinKarp, and LCS pattern matching algorithms #122: [31/N] Add unit tests for BruteForce, BoyerMoore, KMP, RabinKarp, and LCS pattern matching algorithms
- PR [32/N] Add unit tests for BubbleSort, CocktailSort, SelectionSort, InsertionSort, MergeSort, Quicksort, Quickselect, and HeapSort algorithms #123: [32/N] Add unit tests for BubbleSort, CocktailSort, SelectionSort, InsertionSort, MergeSort, Quicksort, Quickselect, and HeapSort algorithms
- PR [33/N] Add unit tests for LSDRadix, RadixSort, BogoSort, DropSort, FredSort, MiracleSort, and SleepSort algorithms #124: [33/N] Add unit tests for LSDRadix, RadixSort, BogoSort, DropSort, FredSort, MiracleSort, and SleepSort algorithms
- PR [34/N] Add unit tests for Graph, BFS, DFS, Dijkstras, Prims, Kruskals, Floyd, CreateGraph, and LVA algorithms #125: [34/N] Add unit tests for Graph, BFS, DFS, Dijkstras, Prims, Kruskals, Floyd, CreateGraph, and LVA algorithms
- PR [35/N] Add unit tests for AlgoList registry, algorithm index, and InfoModals #126: [35/N] Add unit tests for AlgoList registry, algorithm index, and InfoModals
Summary of Coverage
- 87 Test Suites
- 923 Unit Tests Passing
- 100% of all UI components, screens, modals, animation engine primitives, utilities, and all 52 algorithm visualizers are covered.
Metadata
Metadata
Assignees
Labels
No labels
Context
To improve testability of the visualization tool and adhere to generally good practices, we should add support for contributors to add unit tests that test the behavior of the application. We should also enforce this standard via enhancing the CI check to ensure all tests pass a pre-requisite to merging changes to the applicaiton
Proposed Solution
@testing-library/reactframework to test behavior of the application rather than low level implementation detailsNOTE: I will add these piece by piece in the form of stacked PRs to reduce cognitive load on the reviewers