From 47541afbbf056feaa4e199e569afd66a95d67f91 Mon Sep 17 00:00:00 2001 From: Ryan Kegel Date: Thu, 5 Feb 2026 16:37:10 -0500 Subject: [PATCH] Add unit tests for LoginButton component with comprehensive coverage --- .github/copilot-instructions.md | 9 +- .../feat-profile-icon-button-menu.md | 38 +- .vscode/launch.json | 10 +- backend/api/auth_api.py | 2 +- backend/api/image_api.py | 5 +- backend/api/user_api.py | 3 +- backend/db/default.py | 19 +- backend/main.py | 3 - backend/utils/email_instance.py | 3 - backend/utils/email_sender.py | 111 +++-- frontend/vue-app/public/child-mode.png | Bin 0 -> 22284 bytes frontend/vue-app/public/profile.png | Bin 0 -> 21508 bytes frontend/vue-app/public/sign-out.png | Bin 0 -> 12767 bytes .../vue-app/src/assets/actions-shared.css | 28 -- frontend/vue-app/src/assets/button-shared.css | 21 - .../vue-app/src/assets/child-list-shared.css | 205 --------- frontend/vue-app/src/assets/common.css | 29 -- frontend/vue-app/src/assets/edit-forms.css | 70 --- frontend/vue-app/src/assets/modal.css | 25 -- frontend/vue-app/src/assets/scroll.css | 25 -- frontend/vue-app/src/assets/styles.css | 35 +- frontend/vue-app/src/assets/view-shared.css | 98 ----- frontend/vue-app/src/common/imageCache.ts | 27 ++ .../src/components/auth/ForgotPassword.vue | 57 ++- .../vue-app/src/components/auth/Login.vue | 60 ++- .../src/components/auth/ParentPinSetup.vue | 1 - .../src/components/auth/ResetPassword.vue | 79 ++-- .../vue-app/src/components/auth/Signup.vue | 105 ++--- .../src/components/auth/VerifySignup.vue | 14 +- .../src/components/child/ChildEditView.vue | 13 +- .../src/components/child/ChildView.vue | 31 +- .../src/components/child/ParentView.vue | 30 +- .../src/components/profile/UserProfile.vue | 15 +- .../src/components/reward/RewardEditView.vue | 13 +- .../src/components/reward/RewardView.vue | 2 +- .../components/shared/ChildrenListView.vue | 2 +- .../src/components/shared/DeleteModal.vue | 1 - .../src/components/shared/EntityEditForm.vue | 1 - .../shared/FloatingActionButton.vue | 1 - .../src/components/shared/LoginButton.vue | 405 +++++++++++++++--- .../src/components/shared/MessageBlock.vue | 1 - .../src/components/shared/ModalDialog.vue | 2 - .../shared/__tests__/LoginButton.spec.ts | 380 ++++++++++++++++ .../src/components/task/TaskEditView.vue | 10 +- .../vue-app/src/components/task/TaskView.vue | 2 +- .../src/components/utils/ImagePicker.vue | 10 + frontend/vue-app/src/main.ts | 2 - 47 files changed, 1179 insertions(+), 824 deletions(-) delete mode 100644 backend/utils/email_instance.py create mode 100644 frontend/vue-app/public/child-mode.png create mode 100644 frontend/vue-app/public/profile.png create mode 100644 frontend/vue-app/public/sign-out.png delete mode 100644 frontend/vue-app/src/assets/actions-shared.css delete mode 100644 frontend/vue-app/src/assets/button-shared.css delete mode 100644 frontend/vue-app/src/assets/child-list-shared.css delete mode 100644 frontend/vue-app/src/assets/common.css delete mode 100644 frontend/vue-app/src/assets/edit-forms.css delete mode 100644 frontend/vue-app/src/assets/modal.css delete mode 100644 frontend/vue-app/src/assets/scroll.css delete mode 100644 frontend/vue-app/src/assets/view-shared.css create mode 100644 frontend/vue-app/src/components/shared/__tests__/LoginButton.spec.ts diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 53cbcb3..6022995 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -8,6 +8,7 @@ - **Database**: Use TinyDB with `from_dict()`/`to_dict()` for serialization. All logic should operate on model instances, not raw dicts. - **Events**: Real-time updates via Server-Sent Events (SSE). Every mutation (add/edit/delete/trigger) must call `send_event_for_current_user` (see `backend/events/`). - **Changes**: Do not use comments to replace code. All changes must be reflected in both backend and frontend files as needed. +- **Specs**: If specs have a checklist, all items must be completed and marked done. ## đź§© Key Patterns & Conventions @@ -15,7 +16,11 @@ - **Scoped Styles**: All `.vue` files must use ` diff --git a/frontend/vue-app/src/components/auth/Login.vue b/frontend/vue-app/src/components/auth/Login.vue index cc0f854..d0aaf42 100644 --- a/frontend/vue-app/src/components/auth/Login.vue +++ b/frontend/vue-app/src/components/auth/Login.vue @@ -1,6 +1,6 @@