ProjectGuard
Overview
This document outlines the test cases for the ProjectGuard
component. The ProjectGuard
component is responsible for ensuring that the project session is properly managed, displaying a loading spinner while the project is being fetched from a remote source. These test cases ensure that the component behaves correctly during the loading and loaded states.
Test Case 1: Loading Project from Remote
- Description: Tests the behavior of the
ProjectGuard
component when the project data is being loaded from a remote source. - Expected Outcome: A spinner container should be displayed while the project data is being fetched. The component should render an element with the test ID
spinner-container
.
Test Case 2: Finished Loading Project from Remote
- Description: Tests the behavior of the
ProjectGuard
component once the project data has finished loading from a remote source. - Expected Outcome: The spinner container should no longer be displayed once the project data has finished loading. The element with the test ID
spinner-container
should not be present in the DOM.
Steps:
- Mock Hook Return Value:
- For the loading state, mock
useProjectSession
to return{ isPending: true }
. - For the loaded state, mock
useProjectSession
to return{ isPending: false }
.
- For the loading state, mock
- Render Component:
- Render the
ProjectGuard
component in both loading and loaded states.
- Render the
- Verify Rendered Elements:
- In the loading state, verify that an element with the test ID
spinner-container
is present. - In the loaded state, verify that the element with the test ID
spinner-container
is not present.
- In the loading state, verify that an element with the test ID