This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Test Double Pattern Implementation Guide | |
## Overview | |
This document outlines the implementation of Google's Test Double Pattern in the Construculator codebase, providing guidance on when and how to use different testing approaches. | |
## Google's Test Double Pattern Guide | |
### Core Principles |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Construculator Architecture Naming Convention Guide | |
## Overview | |
This guide establishes naming conventions for Construculator's Flutter architecture, based on the PRD analysis and following Clean Architecture + BLoC patterns. | |
## Quick Reference Table | |
| Component | Pattern | Purpose | When to Use | Primary Consumers | Example | | |
|-----------|---------|---------|-------------|-------------------|---------| |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Digestible Pull Request | |
At Google, the review system automatically estimates the time needed to review a Pull Request (PR) by categorizing them into size buckets: Extra Small (XS), Small (S), Medium (M), Large (L), and Extra Large (XL). | |
Reviewers typically request that authors break down PRs larger than Medium into multiple smaller, interconnected PRs. While these linked PRs depend on each other, each one should be able to pass tests and merge independently without breaking the main branch. All line count measurements below apply only to production code—test code doesn't count toward these limits, and you can write extensive tests for proper coverage. | |
Size Classifications: | |
XS: Under 50 lines of production code | |
M: 50-100 lines of production code | |
L: 100-200 lines of production code | |
XL: Over 200 lines of production code | |
Beyond Line Count | |
A well-structured PR should have a single, focused purpose rather than addressing multiple unrelated changes. This focused intent should be clearly communicated in the PR descri |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sequenceDiagram | |
participant UI as UI Component | |
participant Auth as AuthService | |
participant Supa as SupabaseAuthService | |
participant Token as TokenRepository | |
participant API as Supabase API | |
UI->>Auth: signInWithEmail(email, password) | |
Auth->>Supa: signInWithEmail(email, password) | |
Supa->>API: supabaseClient.auth.signIn() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
flowchart TD | |
UI[UI Components] --> |depends on| Auth[AuthService\n Interface] | |
Auth --> |uses| Token[TokenRepository] | |
Auth --> |implemented by| SupaAuth[SupabaseAuthService\n Implementation] | |
SupaAuth --> |uses| Token | |
SupaAuth --> |uses| Supabase[Supabase Client] |