mirror of
https://github.com/CompassConnections/Compass.git
synced 2026-04-07 00:04:40 -04:00
* Added Database checks to the onboarding flow * Added compatibility page setup Added more compatibility questions * Finished up the onboarding flow suite Added compatibility question tests and verifications Updated tests to cover Keywords and Headline changes recently made Updated tests to cover all of the big5 personality traits * . * Fix: Merge conflict * . * Fix: Added fix for None discriptive error issue #36 Updated signUp.spec.ts to use new fixture Updated Account information variable names Deleted "deleteUserFixture.ts" as it was incorporated into the "base.ts" file * Linting and Prettier * Minor cleaning * Organizing helper func * Added Google account to the Onboarding flow * Added account cleanup for google accounts * Started work on Sign-in tests Updated seedDatabase.ts to throw an error if the user already exists, to also add display names and usernames so they seedUser func acts like a normal basic user Some organising of the google auth code * Linting and Prettier * Added checks to the deleteUser func to check if the accout exists Added account deletion checks * Linting and Prettier * Added POM's for social and organisation page Updated settings POM * Formatting update, fixed homePage locator for signin * . * . * . * Coderabbitai fix's * Fix * Improve test utilities and stabilize onboarding flow tests * Changes requested * Seperated deletion tests from onboarding * . * Changed POM/Fixture structure to use an app class to instantiate the page objects * Apply suggestion from @MartinBraquet * Apply suggestion from @MartinBraquet * Delete .vscode/settings.json * Apply suggestion from @MartinBraquet * Apply suggestions from code review Co-authored-by: Martin Braquet <martin.braquet@gmail.com> * Apply suggestion from @MartinBraquet * Apply suggestion from @MartinBraquet * Linting and Prettier --------- Co-authored-by: MartinBraquet <martin.braquet@gmail.com>
121 lines
4.8 KiB
YAML
121 lines
4.8 KiB
YAML
# Enables IDE autocompletion for this config file
|
|
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
|
|
|
|
# Language for CodeRabbit's review comments
|
|
language: en
|
|
|
|
# Enable experimental features (currently not using any specific early_access features)
|
|
early_access: true
|
|
|
|
chat:
|
|
# CodeRabbit will automatically respond to @coderabbitai mentions in PR comments
|
|
auto_reply: true
|
|
|
|
reviews:
|
|
auto_review:
|
|
# Automatically trigger reviews when PRs are opened or updated
|
|
enabled: true
|
|
# Skip auto-review if PR title contains these keywords
|
|
ignore_title_keywords:
|
|
- 'WIP'
|
|
# Don't auto-review draft PRs
|
|
drafts: false
|
|
# Only auto-review PRs targeting these branches
|
|
base_branches:
|
|
- main
|
|
- develop
|
|
|
|
# Include a high-level summary at the start of each review
|
|
high_level_summary: true
|
|
|
|
# Generate sequence diagrams for complex code flows
|
|
sequence_diagrams: true
|
|
|
|
# Don't include poems in reviews (fun feature, but keeping it professional)
|
|
poem: false
|
|
|
|
# Show review completion status
|
|
review_status: true
|
|
|
|
# Keep the walkthrough section expanded by default
|
|
collapse_walkthrough: false
|
|
|
|
# Include summary of all changed files
|
|
changed_files_summary: true
|
|
|
|
# Don't automatically request changes on the PR (just leave comments)
|
|
request_changes_workflow: false
|
|
|
|
# Pre-merge checks to enforce before merging PRs
|
|
pre_merge_checks:
|
|
description:
|
|
# Validate that PR has a proper description
|
|
mode: warning # Options: off, warning, error
|
|
docstrings:
|
|
# Disable docstring coverage checks (let's assume we don't need them)
|
|
mode: off
|
|
|
|
# Exclude these paths from reviews (build artifacts and dependencies)
|
|
path_filters:
|
|
- '!**/node_modules/**' # npm dependencies
|
|
- '!**/android/**' # Native Android build files
|
|
- '!**/ios/**' # Native iOS build files
|
|
- '!**/.expo/**' # Expo build cache
|
|
- '!**/.expo-shared/**' # Expo shared config
|
|
- '!**/dist/**' # Build output
|
|
|
|
# Custom review instructions for specific file patterns
|
|
path_instructions:
|
|
# TypeScript/JavaScript files - main app code
|
|
- path: '**/*.{ts,tsx,js,jsx}'
|
|
instructions: |
|
|
General practices:
|
|
- Summarize the changes clearly.
|
|
- Format the summary with bullet points.
|
|
- Highlight any potential breaking changes for users.
|
|
- We use early returns to avoid deep nesting.
|
|
- Ensure all public functions have docstrings.
|
|
- Flag any hardcoded strings; they should be in the constants file.
|
|
- Check for edge cases like null values or empty arrays.
|
|
- Suggest performance optimizations where appropriate.
|
|
|
|
Mobile best practices:
|
|
- Proper use of hooks (useRouter, useFonts, useAssets)
|
|
- Accessibility: touch targets min 44x44, screen reader support
|
|
- Safe area handling and platform-specific code (iOS vs Android)
|
|
- Memory leaks in useEffect and event listeners
|
|
|
|
Performance:
|
|
- Use FlatList/SectionList for lists (never ScrollView with .map)
|
|
- React.memo, useMemo, useCallback where appropriate
|
|
|
|
TypeScript:
|
|
- Avoid 'any', use explicit types
|
|
- Prefer 'import type' for type imports
|
|
|
|
Security:
|
|
- No exposed API keys or sensitive data
|
|
- Use expo-secure-store for sensitive storage
|
|
- Validate deep linking configurations
|
|
|
|
Internationalization:
|
|
- User-visible strings should be externalized to JSON resource files in common/messages via
|
|
```
|
|
const t = useT()
|
|
const message = t('key', 'english string')
|
|
```
|
|
|
|
- path: 'tests/e2e/**/*.ts'
|
|
instructions: |
|
|
Playwright E2E test guidelines for this repo:
|
|
- Page objects live in `tests/e2e/web/pages/`. Each class wraps one page/route, holds only `private readonly` Locators, and exposes action methods.
|
|
- All tests must use the `app` fixture (type `App`) from `tests/e2e/web/fixtures/base.ts`. Never instantiate page objects directly in a test.
|
|
- Cross-page flows (actions spanning multiple pages) belong as methods on the `App` class, not as standalone helper functions.
|
|
- Action methods in page objects must assert `expect(locator).toBeVisible()` before interacting.
|
|
- Never use `page.waitForTimeout()`. Use Playwright's built-in auto-waiting or `waitForURL` / `waitForSelector`.
|
|
- No hardcoded credentials in spec files; use `SPEC_CONFIG.ts` or account fixtures.
|
|
- Test account cleanup must be done in fixture teardown (after `await use(...)`), not in `afterEach` hooks.
|
|
- File and class names must use PascalCase (e.g., `CompatibilityPage.ts` / `class CompatibilityPage`).
|
|
- No DB or Firebase calls inside page object classes; those belong in `tests/e2e/utils/`.
|
|
- Flag any new page object not yet registered in `App`.
|