mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-07-23 12:31:54 +00:00
233 lines
5.4 KiB
Markdown
233 lines
5.4 KiB
Markdown
### E2E Tests: Authentication System
|
|
|
|
**Suite ID:** `AUTH-E2E`
|
|
**Feature:** Authentication middleware, session management, and token refresh.
|
|
|
|
---
|
|
|
|
## Test Case: `AUTH-MW-E2E-001` - Allow access to public routes without session
|
|
|
|
**Priority:** `normal`
|
|
|
|
**Tags:**
|
|
- type: @e2e
|
|
- feature: @auth, @middleware
|
|
|
|
**Description/Objective:** Verify public routes are accessible without authentication.
|
|
|
|
**Preconditions:**
|
|
- Application is running.
|
|
- No active session (cookies cleared).
|
|
|
|
### Flow Steps:
|
|
1. Clear all cookies.
|
|
2. Navigate to /sign-in.
|
|
3. Verify page loads.
|
|
4. Navigate to /sign-up.
|
|
5. Verify page loads.
|
|
|
|
### Expected Result:
|
|
- Public routes are accessible without authentication.
|
|
|
|
---
|
|
|
|
## Test Case: `AUTH-MW-E2E-002` - Maintain protection after session error
|
|
|
|
**Priority:** `normal`
|
|
|
|
**Tags:**
|
|
- type: @e2e
|
|
- feature: @auth, @middleware
|
|
|
|
**Description/Objective:** Verify protected routes remain protected after session invalidation.
|
|
|
|
**Preconditions:**
|
|
- Application is running.
|
|
|
|
### Flow Steps:
|
|
1. Log in with valid credentials.
|
|
2. Navigate to a protected route.
|
|
3. Invalidate session (replace cookie with invalid token).
|
|
4. Navigate to another protected route.
|
|
5. Verify redirect to sign-in.
|
|
|
|
### Expected Result:
|
|
- Invalid session results in redirect to sign-in.
|
|
|
|
---
|
|
|
|
## Test Case: `AUTH-SESSION-E2E-001` - Show RefreshAccessTokenError message
|
|
|
|
**Priority:** `normal`
|
|
|
|
**Tags:**
|
|
- type: @e2e
|
|
- feature: @auth, @session
|
|
|
|
**Description/Objective:** Verify that RefreshAccessTokenError displays appropriate toast message.
|
|
|
|
**Preconditions:**
|
|
- Application is running.
|
|
|
|
### Flow Steps:
|
|
1. Navigate to /sign-in with error=RefreshAccessTokenError query parameter.
|
|
2. Check for toast notification.
|
|
3. Verify form elements are still visible.
|
|
|
|
### Expected Result:
|
|
- Toast shows "Session Expired" message with "Please sign in again".
|
|
- Sign-in form is displayed and functional.
|
|
|
|
---
|
|
|
|
## Test Case: `AUTH-SESSION-E2E-002` - Show MissingRefreshToken error message
|
|
|
|
**Priority:** `normal`
|
|
|
|
**Tags:**
|
|
- type: @e2e
|
|
- feature: @auth, @session
|
|
|
|
**Description/Objective:** Verify that MissingRefreshToken error displays appropriate toast message.
|
|
|
|
**Preconditions:**
|
|
- Application is running.
|
|
|
|
### Flow Steps:
|
|
1. Navigate to /sign-in with error=MissingRefreshToken query parameter.
|
|
2. Check for toast notification.
|
|
3. Verify email input is visible.
|
|
|
|
### Expected Result:
|
|
- Toast shows "Session Error" message.
|
|
- Sign-in form is displayed.
|
|
|
|
---
|
|
|
|
## Test Case: `AUTH-SESSION-E2E-003` - Show generic error for unknown error types
|
|
|
|
**Priority:** `normal`
|
|
|
|
**Tags:**
|
|
- type: @e2e
|
|
- feature: @auth, @session
|
|
|
|
**Description/Objective:** Verify that unknown error types display a generic authentication error message.
|
|
|
|
**Preconditions:**
|
|
- Application is running.
|
|
|
|
### Flow Steps:
|
|
1. Navigate to /sign-in with error=UnknownError query parameter.
|
|
2. Check for toast notification.
|
|
|
|
### Expected Result:
|
|
- Toast shows "Authentication Error" message with "Please sign in again".
|
|
|
|
---
|
|
|
|
## Test Case: `AUTH-SESSION-E2E-004` - Include callbackUrl in redirect
|
|
|
|
**Priority:** `normal`
|
|
|
|
**Tags:**
|
|
- type: @e2e
|
|
- feature: @auth, @session
|
|
|
|
**Description/Objective:** Verify that callbackUrl is preserved when redirecting to sign-in after session expiry.
|
|
|
|
**Preconditions:**
|
|
- Application is running.
|
|
- Valid test user credentials.
|
|
|
|
### Flow Steps:
|
|
1. Log in with valid credentials.
|
|
2. Navigate to a protected route (/scans).
|
|
3. Navigate to a safe public page (/sign-in).
|
|
4. Clear cookies to simulate session expiry.
|
|
5. Navigate to another protected route (/providers) using fresh navigation.
|
|
6. Verify redirect to sign-in includes callbackUrl parameter.
|
|
|
|
### Expected Result:
|
|
- URL contains callbackUrl=/providers parameter.
|
|
- User can sign in and be redirected back to the original destination.
|
|
|
|
---
|
|
|
|
## Test Case: `AUTH-TOKEN-E2E-001` - Refresh access token when expired
|
|
|
|
**Priority:** `normal`
|
|
|
|
**Tags:**
|
|
- type: @e2e
|
|
- feature: @auth, @token
|
|
|
|
**Description/Objective:** Verify that session is maintained after page reload (token refresh).
|
|
|
|
**Preconditions:**
|
|
- Application is running.
|
|
- Valid test user credentials.
|
|
|
|
### Flow Steps:
|
|
1. Log in with valid credentials.
|
|
2. Verify home page is loaded.
|
|
3. Capture initial session data.
|
|
4. Reload the page.
|
|
5. Verify session is still valid with same user data.
|
|
|
|
### Expected Result:
|
|
- Session persists after reload.
|
|
- User email, userId, and tenantId remain the same.
|
|
|
|
---
|
|
|
|
## Test Case: `AUTH-TOKEN-E2E-002` - Preserve user permissions after token refresh
|
|
|
|
**Priority:** `normal`
|
|
|
|
**Tags:**
|
|
- type: @e2e
|
|
- feature: @auth, @token
|
|
|
|
**Description/Objective:** Verify that user permissions are preserved after token refresh.
|
|
|
|
**Preconditions:**
|
|
- Application is running.
|
|
- Valid test user credentials.
|
|
|
|
### Flow Steps:
|
|
1. Log in with valid credentials.
|
|
2. Capture initial session with permissions.
|
|
3. Reload the page.
|
|
4. Verify permissions match initial session.
|
|
|
|
### Expected Result:
|
|
- User permissions are identical before and after refresh.
|
|
- User profile data (email, name, companyName) is preserved.
|
|
|
|
---
|
|
|
|
## Test Case: `AUTH-TOKEN-E2E-003` - Clear session when cookies are removed
|
|
|
|
**Priority:** `normal`
|
|
|
|
**Tags:**
|
|
- type: @e2e
|
|
- feature: @auth, @token
|
|
|
|
**Description/Objective:** Verify that session is cleared when cookies are removed.
|
|
|
|
**Preconditions:**
|
|
- Application is running.
|
|
- Valid test user credentials.
|
|
|
|
### Flow Steps:
|
|
1. Log in with valid credentials.
|
|
2. Verify session is valid.
|
|
3. Clear all cookies.
|
|
4. Check session status.
|
|
|
|
### Expected Result:
|
|
- Session returns null after cookies are cleared.
|
|
- User is effectively logged out.
|