Skip to content

refactor(fitness-start): remove guest tests flow from onboarding - #66

Merged
CowboyGH merged 7 commits into
developfrom
feature/remove-onboarding-tests
May 18, 2026
Merged

CowboyGH merged 7 commits into
developfrom
feature/remove-onboarding-tests

Conversation

@CowboyGH

@CowboyGH CowboyGH commented May 14, 2026 •

Copy link
Copy Markdown
Owner

🚀 Summary

Moved onboarding tests to authenticated users only. Simplified guest fitness start flow by removing test catalog and test attempts, making testing available as a dedicated tab post-authentication.

@CowboyGH CowboyGH self-assigned this May 14, 2026
@CowboyGH CowboyGH added type: refactor Code improvements without changing behavior area: network API, requests, and data parsing area: ui/ux Widgets, layout, animations, or design area: logic State management and business logic breaking-change Changes that break current API or compatibility labels May 14, 2026
@coderabbitai

coderabbitai Bot commented May 14, 2026 •

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 7f2f82ce-31ee-475e-84ad-89feb65097eb

📥 Commits

Reviewing files that changed from the base of the PR and between 914e9a7 and b97575a.

📒 Files selected for processing (2)
  • README.md
  • lib/features/tests/attempt/data/repositories/test_attempt_repository_impl.dart
🚧 Files skipped from review as they are similar to previous changes (2)
  • README.md
  • lib/features/tests/attempt/data/repositories/test_attempt_repository_impl.dart

📝 Walkthrough

Walkthrough

This pull request removes the guest fitness-start testing flow end-to-end: tests catalog and attempt pages/builders, guest test API methods, guest test repository implementation and guest-specific domain interfaces, and guest session cookie storage. DI registrations were updated to drop cookie-jar and GuestSessionStorage wiring and to register a single TestAttemptRepositoryImpl. Router paths and fitness-start UI were simplified so the quiz collects fitness parameters and completes via AuthSessionCubit without an intermediate guest test step. Strings, README, CHANGELOG, and unit tests were adjusted accordingly.

Sequence Diagram(s)

sequenceDiagram
  participant FitnessStartQuizPage
  participant AuthSessionCubit
  participant TestAttemptRepository
  participant SignUpRoute
  FitnessStartQuizPage->>AuthSessionCubit: submit collected fitness parameters
  AuthSessionCubit->>TestAttemptRepository: (no guest attempt) -- repository registered for authenticated attempts
  AuthSessionCubit->>SignUpRoute: trigger navigation to sign-up (completeGuestFitnessStart)
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • CowboyGH/moveUP-flutter#44: Introduced the guest fitness-start test catalog and test-attempt flow (routes, pages, and repositories) that are now being removed in this PR.
  • CowboyGH/moveUP-flutter#38: Added guest test-attempt flow pages, routes, and DI wiring that are being removed and consolidated into authenticated-only repository wiring here.
  • CowboyGH/moveUP-flutter#51: Previously worked on DI and repository separation for test attempts; this PR consolidates guest/auth repository bindings and overlaps with that work.

Poem

🐇 I nibble strings and routes away,

Quiz hops quick — no tests to delay,
Cookies gone, one repo to show,
Sign-up next — off we go! 🥕

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main objective: removing guest session storage and cookie management as part of simplifying the guest fitness-start flow.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/remove-onboarding-tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
README.md (1)

101-105: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Update features/tests description to remove guest-flow wording.

The project-structure block still documents a “guest test attempt flow,” which conflicts with this PR’s stated removal of guest testing artifacts. Please update this line to authenticated-only wording to keep docs accurate.

Suggested README diff
-│   ├── tests/             # Shared tests catalog and guest test attempt flow
+│   ├── tests/             # Authenticated tests catalog and test attempt flow
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 101 - 105, Update the README entry for the tests/
directory: change the description that currently reads "Shared tests catalog and
guest test attempt flow" to reflect authenticated-only behavior (e.g., "Shared
tests catalog and authenticated-only test attempt flow" or "Shared tests catalog
and authenticated test attempt flow") so the docs match the PR's removal of
guest testing artifacts; edit the line describing tests/ in README.md
accordingly.
🧹 Nitpick comments (1)
lib/features/tests/attempt/data/repositories/test_attempt_repository_impl.dart (1)

17-23: ⚡ Quick win

Update stale repository docs after the type rename.

The comments still reference AuthenticatedTestAttemptRepository and “authenticated” payload wording, but this class is now the unified TestAttemptRepository implementation. Please align these doc/error strings to avoid stale references.

✏️ Suggested update
-/// Authenticated implementation of [AuthenticatedTestAttemptRepository].
+/// Implementation of [TestAttemptRepository].
 final class TestAttemptRepositoryImpl implements TestAttemptRepository {
-  /// Logger for tracking authenticated test attempt operations.
+  /// Logger for tracking test attempt operations.
   final AppLogger _logger;

-  /// API client for tests catalog and attempts.
+  /// API client for tests catalog and attempts.
   final TestsApiClient _apiClient;
@@
-        final exception = StateError('Malformed authenticated test result payload.');
+        final exception = StateError('Malformed test result payload.');

Also applies to: 56-57

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@lib/features/tests/attempt/data/repositories/test_attempt_repository_impl.dart`
around lines 17 - 23, Update stale documentation and error messages that still
reference AuthenticatedTestAttemptRepository and “authenticated” wording to
reflect the unified TestAttemptRepository API: change the class doc comment
above TestAttemptRepositoryImpl to describe it as the concrete implementation of
TestAttemptRepository (remove “Authenticated…”), and update any inline comments
or error/log strings in TestAttemptRepositoryImpl (and other occurrences around
the class, e.g., where “authenticated” payload or repository is mentioned) to
use the unified naming and neutral wording; ensure all references now mention
TestAttemptRepository and non-authenticated/neutral payload descriptions so docs
and logs stay accurate.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@README.md`:
- Around line 101-105: Update the README entry for the tests/ directory: change
the description that currently reads "Shared tests catalog and guest test
attempt flow" to reflect authenticated-only behavior (e.g., "Shared tests
catalog and authenticated-only test attempt flow" or "Shared tests catalog and
authenticated test attempt flow") so the docs match the PR's removal of guest
testing artifacts; edit the line describing tests/ in README.md accordingly.

---

Nitpick comments:
In
`@lib/features/tests/attempt/data/repositories/test_attempt_repository_impl.dart`:
- Around line 17-23: Update stale documentation and error messages that still
reference AuthenticatedTestAttemptRepository and “authenticated” wording to
reflect the unified TestAttemptRepository API: change the class doc comment
above TestAttemptRepositoryImpl to describe it as the concrete implementation of
TestAttemptRepository (remove “Authenticated…”), and update any inline comments
or error/log strings in TestAttemptRepositoryImpl (and other occurrences around
the class, e.g., where “authenticated” payload or repository is mentioned) to
use the unified naming and neutral wording; ensure all references now mention
TestAttemptRepository and non-authenticated/neutral payload descriptions so docs
and logs stay accurate.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 8b0a26c0-b56e-4c04-94be-111040f57ec3

📥 Commits

Reviewing files that changed from the base of the PR and between a359520 and 914e9a7.

⛔ Files ignored due to path filters (1)
  • pubspec.lock is excluded by !**/*.lock
📒 Files selected for processing (25)
  • CHANGELOG.md
  • README.md
  • lib/core/constants/app_strings.dart
  • lib/core/di/di.dart
  • lib/core/network/api_paths.dart
  • lib/core/network/dio_setup.dart
  • lib/core/router/router.dart
  • lib/core/router/router_paths.dart
  • lib/core/services/guest_session_storage/cookie_jar_guest_session_storage.dart
  • lib/core/services/guest_session_storage/guest_session_storage.dart
  • lib/features/auth/presentation/cubits/auth_session_cubit.dart
  • lib/features/fitness_start/presentation/pages/fitness_start_quiz_page.dart
  • lib/features/fitness_start/presentation/pages/fitness_start_test_attempt_page.dart
  • lib/features/fitness_start/presentation/pages/fitness_start_test_attempt_page_builder.dart
  • lib/features/fitness_start/presentation/pages/fitness_start_tests_page.dart
  • lib/features/fitness_start/presentation/pages/fitness_start_tests_page_builder.dart
  • lib/features/tests/attempt/data/repositories/guest_test_attempt_repository_impl.dart
  • lib/features/tests/attempt/data/repositories/test_attempt_repository_impl.dart
  • lib/features/tests/attempt/domain/repositories/test_attempt_repository.dart
  • lib/features/tests/attempt/presentation/pages/tests_attempt_page_builder.dart
  • lib/features/tests/data/remote/tests_api_client.dart
  • pubspec.yaml
  • test/features/auth/presentation/cubits/auth_session_cubit_test.dart
  • test/features/tests/attempt/data/repositories/guest_test_attempt_repository_impl_test.dart
  • test/features/tests/attempt/data/repositories/test_attempt_repository_impl_test.dart
💤 Files with no reviewable changes (15)
  • pubspec.yaml
  • lib/features/fitness_start/presentation/pages/fitness_start_tests_page_builder.dart
  • lib/core/services/guest_session_storage/guest_session_storage.dart
  • lib/features/tests/attempt/data/repositories/guest_test_attempt_repository_impl.dart
  • lib/features/fitness_start/presentation/pages/fitness_start_test_attempt_page_builder.dart
  • lib/core/router/router_paths.dart
  • test/features/tests/attempt/data/repositories/guest_test_attempt_repository_impl_test.dart
  • lib/features/fitness_start/presentation/pages/fitness_start_test_attempt_page.dart
  • lib/features/fitness_start/presentation/pages/fitness_start_tests_page.dart
  • lib/core/services/guest_session_storage/cookie_jar_guest_session_storage.dart
  • lib/core/router/router.dart
  • lib/features/tests/data/remote/tests_api_client.dart
  • lib/core/network/dio_setup.dart
  • lib/features/tests/attempt/domain/repositories/test_attempt_repository.dart
  • lib/core/network/api_paths.dart

@CowboyGH
CowboyGH merged commit 4a318f3 into develop May 18, 2026
3 checks passed
@CowboyGH CowboyGH changed the title refactor(fitness-start): remove guest session storage and cookie management refactor(fitness-start): remove guest tests flow from onboarding May 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: logic State management and business logic area: network API, requests, and data parsing area: ui/ux Widgets, layout, animations, or design breaking-change Changes that break current API or compatibility type: refactor Code improvements without changing behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant