| platform | vm |
|---|
| Duration | 0.0 sec |
|---|---|
| Tests | 158 |
| Failures | 0 |
| Test case: | tests unit/alert/alert_manager_test.dart AlertManager Overlay tests pushes overlay into the Overlay |
|---|---|
| Outcome: | Passed |
| Duration: | 0.485 sec |
(package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> [ DEBUG] | 21:36:26 797ms | Added alert app||info||title||N/A||hello! to queue, total length: 1 (package:services/alert/alert_queue.dart:67:9) [AlertQueue.peek] -> [ DEBUG] | 21:36:26 804ms | Peeking at alert app||info||title||N/A||hello!, queue length: 1 (package:services/alert/alert_queue.dart:117:11) [AlertQueue.remove] -> [ DEBUG] | 21:36:26 805ms | Removed alert app||info||title||N/A||hello! from queue, remaining length: 0 [_FakeAlertDisplayState.initState] -> [ DEBUG] | 21:36:26 814ms | Starting timer for alert app||info||title||N/A||hello! with duration 2000ms (package:core/admin/service_manager.dart:135:11) [ServiceManager.unregister] -> [ DEBUG] | 21:36:26 863ms | Unregistered GetIt of Type AlertManagerInterface
| Test case: | tests unit/alert/alert_manager_test.dart AlertManager Overlay tests completing overlay drains the queue |
|---|---|
| Outcome: | Passed |
| Duration: | 0.057 sec |
(package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> [ DEBUG] | 21:36:26 896ms | Added alert payment||info||firsttitle||N/A|| to queue, total length: 1 (package:services/alert/alert_queue.dart:67:9) [AlertQueue.peek] -> [ DEBUG] | 21:36:26 896ms | Peeking at alert payment||info||firsttitle||N/A||, queue length: 1 (package:services/alert/alert_queue.dart:117:11) [AlertQueue.remove] -> [ DEBUG] | 21:36:26 896ms | Removed alert payment||info||firsttitle||N/A|| from queue, remaining length: 0 (package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> [ DEBUG] | 21:36:26 897ms | Added alert permission||info||secondtitle||N to queue, total length: 1 [_FakeAlertDisplayState.initState] -> [ DEBUG] | 21:36:26 901ms | Starting timer for alert payment||info||first title||N/A||first with duration 1000ms [_FakeAlertDisplayState.initState.<anonymous] -> [ WARNING] | 21:36:26 906ms | Alert payment||info||first title||N/A||first timed out (package:services/alert/alert_manager.dart:341:9) [AlertManager.checkStatusDebug] -> [ INFO] | 21:36:26 908ms | ============================== ALERT MANAGER STATUS ============================== AlertManager is not persisting, CAN process alerts 1 alerts in the Queue. Waiting Alert: info - permission||info||secondtitle||N Can PROCEED = true ============================== (package:services/alert/alert_queue.dart:67:9) [AlertQueue.peek] -> [ DEBUG] | 21:36:26 908ms | Peeking at alert permission||info||secondtitle||N, queue length: 1 (package:services/alert/alert_queue.dart:117:11) [AlertQueue.remove] -> [ DEBUG] | 21:36:26 908ms | Removed alert permission||info||secondtitle||N from queue, remaining length: 0 [_FakeAlertDisplayState.initState] -> [ DEBUG] | 21:36:26 910ms | Starting timer for alert permission||info||second title||N/A||second with duration 2000ms (package:core/admin/service_manager.dart:135:11) [ServiceManager.unregister] -> [ DEBUG] | 21:36:26 920ms | Unregistered GetIt of Type AlertManagerInterface
| Test case: | tests unit/alert/alert_manager_test.dart AlertManager Overlay tests handles multiple alert types correctly |
|---|---|
| Outcome: | Passed |
| Duration: | 0.055 sec |
(package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> [ DEBUG] | 21:36:26 956ms | Added alert backend||error||errortitle||N/A| to queue, total length: 1 (package:services/alert/alert_queue.dart:67:9) [AlertQueue.peek] -> [ DEBUG] | 21:36:26 957ms | Peeking at alert backend||error||errortitle||N/A|, queue length: 1 (package:services/alert/alert_queue.dart:117:11) [AlertQueue.remove] -> [ DEBUG] | 21:36:26 957ms | Removed alert backend||error||errortitle||N/A| from queue, remaining length: 0 [_FakeAlertDisplayState.initState] -> [ DEBUG] | 21:36:26 959ms | Starting timer for alert backend||error||error title||N/A||error message with duration 2000ms (package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> [ DEBUG] | 21:36:26 964ms | Added alert app||info||infotitle||N/A||infom to queue, total length: 1 (package:services/alert/alert_queue.dart:67:9) [AlertQueue.peek] -> [ DEBUG] | 21:36:26 964ms | Peeking at alert app||info||infotitle||N/A||infom, queue length: 1 (package:services/alert/alert_manager.dart:341:9) [AlertManager.checkStatusDebug] -> [ INFO] | 21:36:26 965ms | ============================== ALERT MANAGER STATUS ============================== AlertManager is not persisting, CAN process alerts 1 alerts in the Queue. Waiting Alert: info - app||info||infotitle||N/A||infom Can PROCEED = true ============================== (package:services/alert/alert_queue.dart:67:9) [AlertQueue.peek] -> [ DEBUG] | 21:36:26 966ms | Peeking at alert app||info||infotitle||N/A||infom, queue length: 1 (package:services/alert/alert_queue.dart:117:11) [AlertQueue.remove] -> [ DEBUG] | 21:36:26 966ms | Removed alert app||info||infotitle||N/A||infom from queue, remaining length: 0 [_FakeAlertDisplayState.initState] -> [ DEBUG] | 21:36:26 969ms | Starting timer for alert app||info||info title||N/A||info message with duration 2000ms (package:core/admin/service_manager.dart:135:11) [ServiceManager.unregister] -> [ DEBUG] | 21:36:26 976ms | Unregistered GetIt of Type AlertManagerInterface
| Test case: | tests unit/alert/alert_manager_test.dart AlertManager Overlay tests alerts are dismissed when navigating away |
|---|---|
| Outcome: | Passed |
| Duration: | 0.19 sec |
(package:services/route/app_route_observer.dart:49:9) [AppRouteObserver.didPush] -> [ DEBUG] | 21:36:26 999ms | Push Navigation Event:to / with args: null (package:core/analytics/analytics_interface.dart:52:9) [AnalyticsInterface.logRoute] -> [ DEBUG] | 21:36:27 1ms | Logging route: / with extra: null (package:core/analytics/analytics_interface.dart:55:11) [AnalyticsInterface.logRoute] -> [ WARNING] | 21:36:27 2ms | No analytics required for route: / (package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> [ DEBUG] | 21:36:27 36ms | Added alert network||info||title||N/A||persi to queue, total length: 1 (package:services/alert/alert_queue.dart:67:9) [AlertQueue.peek] -> [ DEBUG] | 21:36:27 36ms | Peeking at alert network||info||title||N/A||persi, queue length: 1 (package:services/alert/alert_queue.dart:117:11) [AlertQueue.remove] -> [ DEBUG] | 21:36:27 37ms | Removed alert network||info||title||N/A||persi from queue, remaining length: 0 [_FakeAlertDisplayState.initState] -> [ DEBUG] | 21:36:27 40ms | Starting timer for alert network||info||title||N/A||persistent with duration 2000ms (package:services/route/app_route_observer.dart:49:9) [AppRouteObserver.didPush] -> [ DEBUG] | 21:36:27 93ms | Push Navigation Event:to null with args: null (package:core/analytics/analytics_interface.dart:47:11) [AnalyticsInterface.logRoute] -> [ WARNING] | 21:36:27 94ms | Route name is null, skipping route logging (package:core/analytics/analytics_interface.dart:48:11) [AnalyticsInterface.logRoute] -> [ DEBUG] | 21:36:27 94ms | Route details: MaterialPageRoute<dynamic>(RouteSettings(none, null), animation: AnimationController#1adcc( 0.000; for MaterialPageRoute<dynamic>(null))) (package:core/admin/service_manager.dart:135:11) [ServiceManager.unregister] -> [ DEBUG] | 21:36:27 161ms | Unregistered GetIt of Type AlertManagerInterface
| Test case: | tests unit/alert/alert_queue_test.dart AlertQueue: add: adds alert to queue |
|---|---|
| Outcome: | Passed |
| Duration: | 0.004 sec |
(package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> [ DEBUG] | 21:36:27 189ms | Added alert app||error||TestAlert||N/A||This to queue, total length: 1
| Test case: | tests unit/alert/alert_queue_test.dart AlertQueue: add: does not add duplicate alert |
|---|---|
| Outcome: | Passed |
| Duration: | 0.006 sec |
(package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> [ DEBUG] | 21:36:27 193ms | Added alert app||error||TestAlert2||N/A||Thi to queue, total length: 1 (package:services/alert/alert_queue.dart:52:11) [AlertQueue.add] -> [ WARNING] | 21:36:27 194ms | Alert app||error||TestAlert2||N/A||Thi is already active, ignoring
| Test case: | tests unit/alert/alert_queue_test.dart AlertQueue: remove: removes alert from queue |
|---|---|
| Outcome: | Passed |
| Duration: | 0.007 sec |
(package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> [ DEBUG] | 21:36:27 201ms | Added alert app||error||TestAlert3||N/A||Thi to queue, total length: 1 (package:services/alert/alert_queue.dart:117:11) [AlertQueue.remove] -> [ DEBUG] | 21:36:27 201ms | Removed alert app||error||TestAlert3||N/A||Thi from queue, remaining length: 0
| Test case: | tests unit/alert/alert_queue_test.dart AlertQueue: remove: does not remove non-existent alert |
|---|---|
| Outcome: | Passed |
| Duration: | 0.005 sec |
(package:services/alert/alert_queue.dart:120:9) [AlertQueue.remove] -> [ WARNING] | 21:36:27 208ms | Alert app||error||Non-existentAlert||N not found in queue, cannot remove
| Test case: | tests unit/alert/alert_queue_test.dart AlertQueue: peek: returns first alert without removing it |
|---|---|
| Outcome: | Passed |
| Duration: | 0.01 sec |
(package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> [ DEBUG] | 21:36:27 215ms | Added alert app||error||PeekTestAlert||N/A|| to queue, total length: 1 (package:services/alert/alert_queue.dart:67:9) [AlertQueue.peek] -> [ DEBUG] | 21:36:27 216ms | Peeking at alert app||error||PeekTestAlert||N/A||, queue length: 1
| Test case: | tests unit/alert/alert_queue_test.dart AlertQueue: peek: returns null if queue is empty |
|---|---|
| Outcome: | Passed |
| Duration: | 0.003 sec |
| Test case: | tests unit/alert/alert_queue_test.dart AlertQueue: Comparable: alerts are comparable based on type |
|---|---|
| Outcome: | Passed |
| Duration: | 0.006 sec |
(package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> [ DEBUG] | 21:36:27 229ms | Added alert app||error||Alert1||N/A||Thisisa to queue, total length: 1 (package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> [ DEBUG] | 21:36:27 229ms | Added alert app||info||Alert2||N/A||Thisisal to queue, total length: 2 (package:services/alert/alert_queue.dart:67:9) [AlertQueue.peek] -> [ DEBUG] | 21:36:27 229ms | Peeking at alert app||error||Alert1||N/A||Thisisa, queue length: 2
| Test case: | tests unit/alert/alert_queue_test.dart AlertQueue: clear: clears all alerts from the queue |
|---|---|
| Outcome: | Passed |
| Duration: | 0.01 sec |
(package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> [ DEBUG] | 21:36:27 236ms | Added alert app||error||ClearTestAlert1||N/A to queue, total length: 1 (package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> [ DEBUG] | 21:36:27 237ms | Added alert app||info||ClearTestAlert2||N/A| to queue, total length: 2
| Test case: | tests unit/auth/auth_client_test.dart AuthClient Tests isSignedIn Tests isSignedIn returns null when no user is signed in |
|---|---|
| Outcome: | Passed |
| Duration: | 0.024 sec |
(package:services/auth/auth_client.dart:33:11) [AuthClient.isSignedIn] -> [ INFO] | 21:36:27 266ms | No user is currently signed in.
| Test case: | tests unit/auth/auth_client_test.dart AuthClient Tests isSignedIn Tests isSignedIn returns AuthResult when user is signed in with supported provider |
|---|---|
| Outcome: | Passed |
| Duration: | 0.009 sec |
(package:services/auth/auth_client.dart:37:9) [AuthClient.isSignedIn] -> [ INFO] | 21:36:27 275ms | User is currently signed in: test@gmail.com (package:services/auth/auth_client.dart:42:11) [AuthClient.isSignedIn] -> [ DEBUG] | 21:36:27 275ms | Checking if providerId password is supported
| Test case: | tests unit/auth/auth_client_test.dart AuthClient Tests signInToFirebaseWithCred Tests signInToFirebaseWithCred returns valid AuthResult when credentials are valid |
|---|---|
| Outcome: | Passed |
| Duration: | 0.012 sec |
(package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 283ms | checkCred: checking credentials for attempt: AuthAttempt(authType: AuthType.google, operation: AuthOperation.signIn, email: null): Instance of 'MockUserCredential' (package:services/auth/auth_client.dart:198:11) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 283ms | Checking if providerId password is supported (package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 284ms | Successfully checked credentials for user test@gmail.com: providerId = password uid = ac06e0d8-1d61-41e8-91ae-f3e31efbda64 emailVerified = true Attempt = AuthAttempt(authType: AuthType.google, operation: AuthOperation.signIn, email: null)
| Test case: | tests unit/auth/auth_client_test.dart AuthClient Tests signInWithCustomToken Tests signInWithCustomToken returns valid AuthResult when credentials are valid |
|---|---|
| Outcome: | Passed |
| Duration: | 0.009 sec |
(package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 295ms | checkCred: checking credentials for attempt: AuthAttempt(authType: AuthType.google, operation: AuthOperation.signIn, email: null): Instance of 'MockUserCredential' (package:services/auth/auth_client.dart:198:11) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 295ms | Checking if providerId password is supported (package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 295ms | Successfully checked credentials for user test@gmail.com: providerId = password uid = 21557cd8-ff3e-4965-9134-5e07a3a5344e emailVerified = true Attempt = AuthAttempt(authType: AuthType.google, operation: AuthOperation.signIn, email: null)
| Test case: | tests unit/auth/auth_client_test.dart AuthClient Tests checkCred Tests checkCred throws exception when no Credential |
|---|---|
| Outcome: | Passed |
| Duration: | 0.007 sec |
(package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 304ms | checkCred: checking credentials for attempt: AuthAttempt(authType: AuthType.google, operation: AuthOperation.signIn, email: null): null (package:services/auth/auth_client.dart:152:11) [AuthClient.checkCred] -> [ ERROR] | 21:36:27 304ms | No credentials for user with attempt: AuthAttempt(authType: AuthType.google, operation: AuthOperation.signIn, email: null)
| Test case: | tests unit/auth/auth_client_test.dart AuthClient Tests checkCred Tests checkCred throws AuthException when user is null |
|---|---|
| Outcome: | Passed |
| Duration: | 0.011 sec |
(package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 314ms | checkCred: checking credentials for attempt: AuthAttempt(authType: AuthType.google, operation: AuthOperation.signIn, email: null): MockUserCredential (package:services/auth/auth_client.dart:163:11) [AuthClient.checkCred] -> [ ERROR] | 21:36:27 317ms | No user for credentials with attempt: AuthAttempt(authType: AuthType.google, operation: AuthOperation.signIn, email: null) cred=MockUserCredential
| Test case: | tests unit/auth/auth_client_test.dart AuthClient Tests checkCred Tests checkCred throws AuthException when email is null (and email is required) |
|---|---|
| Outcome: | Passed |
| Duration: | 0.005 sec |
(package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 323ms | checkCred: checking credentials for attempt: PasswordAuthAttempt(authType: AuthType.password, operation: AuthOperation.signIn, email: test@gmail.com, password: password): MockUserCredential (package:services/auth/auth_client.dart:173:11) [AuthClient.checkCred] -> [ ERROR] | 21:36:27 324ms | User has no email for credentials with attempt: PasswordAuthAttempt(authType: AuthType.password, operation: AuthOperation.signIn, email: test@gmail.com, password: password) cred=MockUserCredential
| Test case: | tests unit/auth/auth_client_test.dart AuthClient Tests checkCred Tests checkCred returns AuthResult when credentials are valid |
|---|---|
| Outcome: | Passed |
| Duration: | 0.007 sec |
(package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 329ms | checkCred: checking credentials for attempt: PasswordAuthAttempt(authType: AuthType.password, operation: AuthOperation.signIn, email: test@gmail.com, password: password): MockUserCredential (package:services/auth/auth_client.dart:198:11) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 329ms | Checking if providerId google.com is supported (package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 329ms | Successfully checked credentials for user test@gmail.com: providerId = google.com uid = 6b36bb1a-1cfe-40e0-ac27-ba9232e1548b emailVerified = true Attempt = PasswordAuthAttempt(authType: AuthType.password, operation: AuthOperation.signIn, email: test@gmail.com, password: password)
| Test case: | tests unit/auth/google_auth_client_test.dart GoogleAuthClient Tests signIn signIn with valid credentials |
|---|---|
| Outcome: | Passed |
| Duration: | 0.019 sec |
(package:services/auth/google_auth_client.dart:106:11) [GoogleAuthClient._authenticate] -> [ INFO] | 21:36:27 345ms | Authenticating to firebase with id=idToken (package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 346ms | checkCred: checking credentials for attempt: AuthAttempt(authType: AuthType.google, operation: AuthOperation.signIn, email: null): Instance of 'MockUserCredential' (package:services/auth/auth_client.dart:198:11) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 346ms | Checking if providerId google.com is supported (package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 346ms | Successfully checked credentials for user good.email@gmail.com: providerId = google.com uid = a84efb42-83d4-48e2-9322-6a2b3bf8ff60 emailVerified = true Attempt = AuthAttempt(authType: AuthType.google, operation: AuthOperation.signIn, email: null) (package:services/auth/google_auth_client.dart:117:11) [GoogleAuthClient._authenticate] -> [ DEBUG] | 21:36:27 346ms | Successfully signed in with Google: AuthResult(authType: AuthType.google, operation: AuthOperation.signIn, email: good.email@gmail.com, uid: a84efb42-83d4-48e2-9322-6a2b3bf8ff60, isEmailVerified: true, displayName: Test User)
| Test case: | tests unit/auth/google_auth_client_test.dart GoogleAuthClient Tests signIn signIn error, email mismatch |
|---|---|
| Outcome: | Passed |
| Duration: | 0.017 sec |
(package:services/auth/google_auth_client.dart:106:11) [GoogleAuthClient._authenticate] -> [ INFO] | 21:36:27 360ms | Authenticating to firebase with id=idToken (package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 361ms | checkCred: checking credentials for attempt: AuthAttempt(authType: AuthType.google, operation: AuthOperation.signIn, email: null): Instance of 'MockUserCredential' (package:services/auth/auth_client.dart:198:11) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 361ms | Checking if providerId google.com is supported (package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 361ms | Successfully checked credentials for user bad.email@gmail.com: providerId = google.com uid = 100757a0-8607-409f-8291-c7e03cbe7f0c emailVerified = true Attempt = AuthAttempt(authType: AuthType.google, operation: AuthOperation.signIn, email: null) (package:services/auth/auth_error_handler.dart:127:11) [AuthErrorHandler.validateEmailMatch] -> [ WARNING] | 21:36:27 361ms | Email mismatch between Google/firebase: good.email@gmail.com != bad.email@gmail.com
| Test case: | tests unit/auth/google_auth_client_test.dart GoogleAuthClient Tests signIn signIn error, returns no idToken |
|---|---|
| Outcome: | Passed |
| Duration: | 0.006 sec |
(package:services/auth/auth_error_handler.dart:60:9) [AuthErrorHandler.handleTokenError] -> [ ERROR] | 21:36:27 376ms | Failed to retrieve token from Google
| Test case: | tests unit/auth/google_auth_client_test.dart GoogleAuthClient Tests signUp signUp with valid credentials |
|---|---|
| Outcome: | Passed |
| Duration: | 0.01 sec |
(package:services/auth/google_auth_client.dart:106:11) [GoogleAuthClient._authenticate] -> [ INFO] | 21:36:27 381ms | Authenticating to firebase with id=idToken (package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 382ms | checkCred: checking credentials for attempt: AuthAttempt(authType: AuthType.google, operation: AuthOperation.signIn, email: null): Instance of 'MockUserCredential' (package:services/auth/auth_client.dart:198:11) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 382ms | Checking if providerId google.com is supported (package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 382ms | Successfully checked credentials for user good.email@gmail.com: providerId = google.com uid = d0114746-85d0-4de4-bef1-bc1551bc16eb emailVerified = true Attempt = AuthAttempt(authType: AuthType.google, operation: AuthOperation.signIn, email: null) (package:services/auth/google_auth_client.dart:117:11) [GoogleAuthClient._authenticate] -> [ DEBUG] | 21:36:27 382ms | Successfully signed in with Google: AuthResult(authType: AuthType.google, operation: AuthOperation.signIn, email: good.email@gmail.com, uid: d0114746-85d0-4de4-bef1-bc1551bc16eb, isEmailVerified: true, displayName: Test User)
| Test case: | tests unit/auth/google_auth_client_test.dart GoogleAuthClient Tests signUp signUp error, email mismatch |
|---|---|
| Outcome: | Passed |
| Duration: | 0.01 sec |
(package:services/auth/google_auth_client.dart:106:11) [GoogleAuthClient._authenticate] -> [ INFO] | 21:36:27 393ms | Authenticating to firebase with id=idToken (package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 393ms | checkCred: checking credentials for attempt: AuthAttempt(authType: AuthType.google, operation: AuthOperation.signUp, email: null): Instance of 'MockUserCredential' (package:services/auth/auth_client.dart:198:11) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 393ms | Checking if providerId google.com is supported (package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 393ms | Successfully checked credentials for user bad.email@gmail.com: providerId = google.com uid = e964045b-b8d7-4862-bb48-e4c0c9ec2501 emailVerified = true Attempt = AuthAttempt(authType: AuthType.google, operation: AuthOperation.signUp, email: null) (package:services/auth/auth_error_handler.dart:127:11) [AuthErrorHandler.validateEmailMatch] -> [ WARNING] | 21:36:27 393ms | Email mismatch between Google/firebase: good.email@gmail.com != bad.email@gmail.com
| Test case: | tests unit/auth/google_auth_client_test.dart GoogleAuthClient Tests signUp signUp error, returns no idToken |
|---|---|
| Outcome: | Passed |
| Duration: | 0.005 sec |
(package:services/auth/auth_error_handler.dart:60:9) [AuthErrorHandler.handleTokenError] -> [ ERROR] | 21:36:27 402ms | Failed to retrieve token from Google
| Test case: | tests unit/auth/password_auth_client_test.dart PasswordAuthClient: signIn signIn with valid credentials |
|---|---|
| Outcome: | Passed |
| Duration: | 0.009 sec |
(package:services/auth/password_auth_client.dart:42:11) [PasswordAuthClient.signIn] -> [ DEBUG] | 21:36:27 407ms | Sign-In attempt with email:good.email@gmail.com password:password (package:services/auth/password_auth_client.dart:49:13) [PasswordAuthClient.signIn] -> [ DEBUG] | 21:36:27 408ms | Signing in with email credential for good.email@gmail.com: AuthCredential(providerId: password, signInMethod: password, token: null, accessToken: null) (package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 408ms | checkCred: checking credentials for attempt: PasswordAuthAttempt(authType: AuthType.password, operation: AuthOperation.signIn, email: good.email@gmail.com, password: password): Instance of 'MockUserCredential' (package:services/auth/auth_client.dart:198:11) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 408ms | Checking if providerId password is supported (package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 408ms | Successfully checked credentials for user good.email@gmail.com: providerId = password uid = 8674e44c-de05-4c7e-98af-b79e56cfce4b emailVerified = true Attempt = PasswordAuthAttempt(authType: AuthType.password, operation: AuthOperation.signIn, email: good.email@gmail.com, password: password) (package:services/auth/password_auth_client.dart:63:13) [PasswordAuthClient.signIn] -> [ DEBUG] | 21:36:27 408ms | Successfully signed in for email good.email@gmail.com: AuthResult(authType: AuthType.password, operation: AuthOperation.signIn, email: good.email@gmail.com, uid: 8674e44c-de05-4c7e-98af-b79e56cfce4b, isEmailVerified: true, displayName: Test User)
| Test case: | tests unit/auth/password_auth_client_test.dart PasswordAuthClient: signUp signUp with valid credentials |
|---|---|
| Outcome: | Passed |
| Duration: | 0.012 sec |
(package:services/auth/password_auth_client.dart:83:11) [PasswordAuthClient.signUp] -> [ DEBUG] | 21:36:27 417ms | Sign-up attempt with email: good.email@gmail.com (package:services/auth/password_auth_client.dart:93:13) [PasswordAuthClient.signUp] -> [ DEBUG] | 21:36:27 418ms | Created user with email good.email@gmail.com: Instance of 'MockUserCredential' (package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 418ms | checkCred: checking credentials for attempt: PasswordAuthAttempt(authType: AuthType.password, operation: AuthOperation.signUp, email: good.email@gmail.com, password: password): Instance of 'MockUserCredential' (package:services/auth/auth_client.dart:198:11) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 418ms | Checking if providerId password is supported (package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 418ms | Successfully checked credentials for user good.email@gmail.com: providerId = password uid = 6f8e64d3-68a4-4c3c-9f7c-280ecb45c366 emailVerified = true Attempt = PasswordAuthAttempt(authType: AuthType.password, operation: AuthOperation.signUp, email: good.email@gmail.com, password: password) (package:services/auth/password_auth_client.dart:108:11) [PasswordAuthClient.signUp] -> [ DEBUG] | 21:36:27 419ms | Successfully signed up for email good.email@gmail.com: AuthResult(authType: AuthType.password, operation: AuthOperation.signUp, email: good.email@gmail.com, uid: 6f8e64d3-68a4-4c3c-9f7c-280ecb45c366, isEmailVerified: true, displayName: Mock User)
| Test case: | tests unit/auth/password_auth_client_test.dart PasswordAuthClient: signUp signUp error, email already in use |
|---|---|
| Outcome: | Passed |
| Duration: | 0.01 sec |
(package:services/auth/password_auth_client.dart:83:11) [PasswordAuthClient.signUp] -> [ DEBUG] | 21:36:27 429ms | Sign-up attempt with email: good.email@gmail.com (package:services/auth/password_auth_client.dart:97:11) [PasswordAuthClient.signUp] -> [ ERROR] | 21:36:27 430ms | Failed to sign up with email good.email@gmail.com: [firebase_auth/email-already-in-use] null [firebase_auth/email-already-in-use] null StackTrace: #0 maybeThrowException (package:mock_exceptions/src/mock_exceptions.dart:20:7) #1 MockFirebaseAuth.createUserWithEmailAndPassword (package:firebase_auth_mocks/src/firebase_auth_mocks_base.dart:124:5) #2 PasswordAuthClient.signUp (package:services/auth/password_auth_client.dart:87:43) #3 _runSignUpTests.<anonymous closure>.<anonymous closure>.<anonymous closure> (file:///D:/working/flipdare/code/packages/services/test/unit/auth/password_auth_client_test.dart:91:22) #4 Throws.matchAsync (package:matcher/src/expect/throws_matcher.dart:85:37) #5 _expect (package:matcher/src/expect/expect.dart:137:26) #6 expectLater (package:matcher/src/expect/expect.dart:91:7) #7 expectLater (package:flutter_test/src/widget_tester.dart:507:8) #8 _runSignUpTests.<anonymous closure>.<anonymous closure> (file:///D:/working/flipdare/code/packages/services/test/unit/auth/password_auth_client_test.dart:90:13) #9 Declarer.test.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/declarer.dart:253:25) <asynchronous suspension> #10 Declarer.test.<anonymous closure> (package:test_api/src/backend/declarer.dart:250:11) <asynchronous suspension> #11 Invoker._waitForOutstandingCallbacks.<anonymous closure> (package:test_api/src/backend/invoker.dart:318:9) <asynchronous suspension>
| Test case: | tests unit/auth/password_auth_client_test.dart PasswordAuthClient: signUp signUp error, returns no refreshToken |
|---|---|
| Outcome: | Passed |
| Duration: | 0.01 sec |
(package:services/auth/password_auth_client.dart:83:11) [PasswordAuthClient.signUp] -> [ DEBUG] | 21:36:27 439ms | Sign-up attempt with email: bad.email@gmail.com (package:services/auth/password_auth_client.dart:93:13) [PasswordAuthClient.signUp] -> [ DEBUG] | 21:36:27 439ms | Created user with email bad.email@gmail.com: Instance of 'MockUserCredential' (package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 439ms | checkCred: checking credentials for attempt: PasswordAuthAttempt(authType: AuthType.password, operation: AuthOperation.signUp, email: bad.email@gmail.com, password: password): Instance of 'MockUserCredential' (package:services/auth/auth_client.dart:198:11) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 439ms | Checking if providerId password is supported (package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] -> [ DEBUG] | 21:36:27 439ms | Successfully checked credentials for user bad.email@gmail.com: providerId = password uid = c2edf1f0-bfeb-454f-a17e-46e723389865 emailVerified = false Attempt = PasswordAuthAttempt(authType: AuthType.password, operation: AuthOperation.signUp, email: bad.email@gmail.com, password: password) (package:services/auth/password_auth_client.dart:108:11) [PasswordAuthClient.signUp] -> [ DEBUG] | 21:36:27 440ms | Successfully signed up for email bad.email@gmail.com: AuthResult(authType: AuthType.password, operation: AuthOperation.signUp, email: bad.email@gmail.com, uid: c2edf1f0-bfeb-454f-a17e-46e723389865, isEmailVerified: false, displayName: Mock User)
| Test case: | tests unit/currency/currency_converter_test.dart CurrencyConverter: getRate returns correct exchange rate |
|---|---|
| Outcome: | Passed |
| Duration: | 0.003 sec |
| Test case: | tests unit/currency/currency_converter_test.dart CurrencyConverter: basic conversion |
|---|---|
| Outcome: | Passed |
| Duration: | 0.003 sec |
| Test case: | tests unit/currency/currency_converter_test.dart CurrencyConverter: basic conversion (eur) |
|---|---|
| Outcome: | Passed |
| Duration: | 0.002 sec |
| Test case: | tests unit/currency/currency_converter_test.dart CurrencyConverter: zero decimal conversion |
|---|---|
| Outcome: | Passed |
| Duration: | 0.002 sec |
| Test case: | tests unit/data/pledge_create_data_test.dart pledge_create_data_tests UserPledgeData UserPledgeData creation |
|---|---|
| Outcome: | Passed |
| Duration: | 0.012 sec |
| Test case: | tests unit/data/pledge_create_data_test.dart pledge_create_data_tests UserPledgeData UserPledgeData when |
|---|---|
| Outcome: | Passed |
| Duration: | 0.002 sec |
| Test case: | tests unit/data/pledge_create_data_test.dart pledge_create_data_tests GroupPledgeData GroupPledgeData creation |
|---|---|
| Outcome: | Passed |
| Duration: | 0.005 sec |
| Test case: | tests unit/data/pledge_create_data_test.dart pledge_create_data_tests GroupPledgeData GroupPledgeData when |
|---|---|
| Outcome: | Passed |
| Duration: | 0.004 sec |
| Test case: | tests unit/data/pledge_payment_data_test.dart pledge_payment_data_test PledgePaymentData PledgePaymentData creation |
|---|---|
| Outcome: | Passed |
| Duration: | 0.003 sec |
| Test case: | tests unit/data/pledge_payment_data_test.dart pledge_payment_data_test PledgePaymentData PledgePaymentData when |
|---|---|
| Outcome: | Passed |
| Duration: | 0.002 sec |
| Test case: | tests unit/function/app_callable_error_test.dart CallableFunctionError: exception constructor |
|---|---|
| Outcome: | Passed |
| Duration: | 0.005 sec |
| Test case: | tests unit/function/app_callable_error_test.dart CallableFunctionError: unknownError constructor |
|---|---|
| Outcome: | Passed |
| Duration: | 0.003 sec |
| Test case: | tests unit/function/app_callable_error_test.dart CallableFunctionError: parseError |
|---|---|
| Outcome: | Passed |
| Duration: | 0.004 sec |
| Test case: | tests unit/function/app_callable_error_test.dart CallableFunctionError: generates correct error schema from FirebaseFunctionsException |
|---|---|
| Outcome: | Passed |
| Duration: | 0.002 sec |
| Test case: | tests unit/function/app_function_service_test.dart AppFunctionService: singleton instance |
|---|---|
| Outcome: | Passed |
| Duration: | 0.003 sec |
| Test case: | tests unit/function/app_function_service_test.dart AppFunctionService: custom timeout |
|---|---|
| Outcome: | Passed |
| Duration: | 0.003 sec |
| Test case: | tests unit/function/app_function_service_test.dart AppFunctionService: custom FirebaseFunctions instance |
|---|---|
| Outcome: | Passed |
| Duration: | 0.002 sec |
| Test case: | tests unit/function/app_function_service_test.dart AppFunctionService: executeCallable returns ErrorSchema on exception |
|---|---|
| Outcome: | Passed |
| Duration: | 0.01 sec |
(package:services/function/app_function_service.dart:47:11) [AppFunctionService.executeCallable] -> [ WARNING] | 21:36:27 523ms | Calling Firebase function: testFunction with args: null and timeout: 0:00:50.000000 (package:services/function/app_function_service.dart:63:11) [AppFunctionService.executeCallable] -> [ ERROR] | 21:36:27 525ms | FirebaseFunctionsException in testFunction: test-error - Test error
| Test case: | tests unit/function/app_function_service_test.dart AppFunctionService: executeCallable returns Right on success |
|---|---|
| Outcome: | Passed |
| Duration: | 0.011 sec |
(package:services/function/app_function_service.dart:47:11) [AppFunctionService.executeCallable] ->
[ WARNING] | 21:36:27 531ms | Calling Firebase function: testFunction with args: null and timeout: 0:00:50.000000
(package:services/function/app_function_service.dart:58:13) [AppFunctionService.executeCallable] ->
[ DEBUG] | 21:36:27 532ms | Successfully called Firebase function: testFunction
(package:services/function/app_function_service.dart:162:11) [AppFunctionService._parseEitherResponse] ->
[ DEBUG] | 21:36:27 534ms | Parsing response with isError=false
{result1: value1}| Test case: | tests unit/function/pin/pin_confirm_fn_test.dart PinConfirmFn: returns valid success response |
|---|---|
| Outcome: | Passed |
| Duration: | 0.013 sec |
(package:services/function/app_function_service.dart:47:11) [AppFunctionService.executeCallable] ->
[ WARNING] | 21:36:27 545ms | Calling Firebase function: c_confirm_pin with args: {email: test@gmail.com, uid: test-uid, pin_code: 1234} and timeout: 0:00:50.000000
(package:services/function/app_function_service.dart:58:13) [AppFunctionService.executeCallable] ->
[ DEBUG] | 21:36:27 546ms | Successfully called Firebase function: c_confirm_pin
(package:services/function/app_function_service.dart:162:11) [AppFunctionService._parseEitherResponse] ->
[ DEBUG] | 21:36:27 546ms | Parsing response with isError=false
{email: test@gmail.com, uid: test-uid, error_message: null, matched: true}| Test case: | tests unit/function/pin/pin_confirm_fn_test.dart PinConfirmFn: returns valid error response |
|---|---|
| Outcome: | Passed |
| Duration: | 0.009 sec |
(package:services/function/app_function_service.dart:47:11) [AppFunctionService.executeCallable] ->
[ WARNING] | 21:36:27 555ms | Calling Firebase function: c_confirm_pin with args: {email: test@gmail.com, uid: test-uid, pin_code: 1234} and timeout: 0:00:50.000000
(package:services/function/app_function_service.dart:58:13) [AppFunctionService.executeCallable] ->
[ DEBUG] | 21:36:27 556ms | Successfully called Firebase function: c_confirm_pin
(package:services/function/app_function_service.dart:162:11) [AppFunctionService._parseEitherResponse] ->
[ DEBUG] | 21:36:27 556ms | Parsing response with isError=true
{endpoint: pinConfirm, error_type: app, code: invalid_data, category: auth, title: Invalid PIN, message: The PIN code you entered is incorrect. Please try again., action: null, cause: null}| Test case: | tests unit/function/pin/pin_generate_fn_test.dart PinGenerateFn: returns valid success response |
|---|---|
| Outcome: | Passed |
| Duration: | 0.01 sec |
(package:services/function/app_function_service.dart:47:11) [AppFunctionService.executeCallable] ->
[ WARNING] | 21:36:27 566ms | Calling Firebase function: c_generate_pin with args: {email: test@gmail.com, uid: test-uid} and timeout: 0:00:50.000000
(package:services/function/app_function_service.dart:58:13) [AppFunctionService.executeCallable] ->
[ DEBUG] | 21:36:27 566ms | Successfully called Firebase function: c_generate_pin
(package:services/function/app_function_service.dart:162:11) [AppFunctionService._parseEitherResponse] ->
[ DEBUG] | 21:36:27 566ms | Parsing response with isError=false
{pin_code: 1234, uid: test-uid}| Test case: | tests unit/function/pin/pin_generate_fn_test.dart PinGenerateFn: returns valid error response |
|---|---|
| Outcome: | Passed |
| Duration: | 0.008 sec |
(package:services/function/app_function_service.dart:47:11) [AppFunctionService.executeCallable] ->
[ WARNING] | 21:36:27 575ms | Calling Firebase function: c_generate_pin with args: {email: test@gmail.com, uid: test-uid} and timeout: 0:00:50.000000
(package:services/function/app_function_service.dart:58:13) [AppFunctionService.executeCallable] ->
[ DEBUG] | 21:36:27 576ms | Successfully called Firebase function: c_generate_pin
(package:services/function/app_function_service.dart:162:11) [AppFunctionService._parseEitherResponse] ->
[ DEBUG] | 21:36:27 577ms | Parsing response with isError=true
{endpoint: pinGenerate, error_type: app, code: invalid_data, category: auth, title: Invalid PIN, message: The PIN code you entered is incorrect. Please try again., action: null, cause: null}| Test case: | tests unit/function/search/search_results_test.dart SearchResults/SearchResult: SearchResults: fromJson |
|---|---|
| Outcome: | Passed |
| Duration: | 0.019 sec |
| Test case: | tests unit/function/search/search_results_test.dart SearchResults/SearchResult: SearchResult: fromJson for user |
|---|---|
| Outcome: | Passed |
| Duration: | 0.003 sec |
| Test case: | tests unit/function/search/search_results_test.dart SearchResults/SearchResult: SearchResult: fromUser for group |
|---|---|
| Outcome: | Passed |
| Duration: | 0.004 sec |
| Test case: | tests unit/function/search/search_results_test.dart SearchResults/SearchResult: SearchResult: fromJson for dare |
|---|---|
| Outcome: | Passed |
| Duration: | 0.003 sec |
| Test case: | tests unit/function/search/search_results_test.dart SearchResults/SearchResult: SearchResult: fromJson for group dare |
|---|---|
| Outcome: | Passed |
| Duration: | 0.004 sec |
| Test case: | tests unit/function/search/search_results_test.dart SearchResults/SearchResult: SearchResult: fromJson for friend |
|---|---|
| Outcome: | Passed |
| Duration: | 0.005 sec |
| Test case: | tests unit/geo/data/geo_location_model_test.dart GeoLocationModel creation |
|---|---|
| Outcome: | Passed |
| Duration: | 0.006 sec |
| Test case: | tests unit/geo/data/geo_location_model_test.dart GeoLocationModel fromJson should parse JSON correctly |
|---|---|
| Outcome: | Passed |
| Duration: | 0.008 sec |
| Test case: | tests unit/geo/data/ip_lookup_model_test.dart IpLookupModel creation |
|---|---|
| Outcome: | Passed |
| Duration: | 0.007 sec |
| Test case: | tests unit/geo/data/ip_lookup_model_test.dart IpLookupModel fromJson should parse JSON correctly |
|---|---|
| Outcome: | Passed |
| Duration: | 0.009 sec |
| Test case: | tests unit/geo/geoapify_client_test.dart GeoApifyClient: getLocationFromIp returns data |
|---|---|
| Outcome: | Passed |
| Duration: | 0.027 sec |
(package:services/geo/geoapify_client.dart:84:13) [GeoApifyClient.getLocationFromIp] ->
[ DEBUG] | 21:36:27 678ms | Requesting GeoApify IP geocode with URL: https://api.geoapify.com/v1/ipinfo?
(package:services/geo/geoapify_client.dart:328:9) [MockGeoApifyClient._execute] ->
[ DEBUG] | 21:36:27 680ms | MockGeoApifyClient returning mock result for URI: https://api.geoapify.com/v1/ipinfo?apiKey=e8488c88fb54474296de5e98965410cb
(package:services/geo/geoapify_client.dart:330:11) [MockGeoApifyClient._execute] ->
[ DEBUG] | 21:36:27 680ms | Returning mock IP lookup result
(package:services/geo/geoapify_client.dart:95:13) [GeoApifyClient.getLocationFromIp] ->
[ DEBUG] | 21:36:27 681ms | GeoApify IP geocode result: GeoApiFyRawResult
{"city":{"name":"New York","names":{"en":"New York","de":"New York City","es":"Nueva York","fa":"","fr":"New York","ja":"","ko":"","pt-BR":"Nova Iorque","ru":"-","zh-CN":""}},"country":{"name":"United States","iso_code":"US","names":{"en":"United States","de":"Vereinigte Staaten von Amerika","es":"Estados Unidos de Amrica (los)","fa":" ","fr":"tats-Unis","ja":"","ko":"","pt-BR":"Estados Unidos","ru":"","zh-CN":""},"geoname_id":6252001,"name_native":"United States","phone_code":"1","capital":"Washington D.C.","currency":"USD,USN,USS","flag":"","languages":[{"iso_code":"en","name":"English","name_native":"English"}]},"state":{"name":"New York"},"location":{"latitude":40.7121,"longitude":-74.0134},"continent":{"code":"NA","name":"North America","names":{"de":"Nordamerika","en":"North America","es":"Norteamrica","fa":" ","fr":"Amrique du Nord","ja":"","ko":"","pt-BR":"Amrica do Norte","ru":" ","zh-CN":""},"geoname_id":6255149},"subdivisions":[{"names":{"en":"New York","de":"New York","es":"Nueva York","fa":"","fr":"New York","ja":"","ko":"","pt-BR":"Nova Iorque","ru":"-","zh-CN":""}},{"names":{"en":"New York","fr":"Comt de New York","zh-CN":""}}],"postal":{"code":"10123"},"ip":"159.102.105.250"}
(package:services/geo/geoapify_client.dart:106:13) [GeoApifyClient.getLocationFromIp] ->
[ DEBUG] | 21:36:27 683ms | Decoded GeoApify IP geocode JSON: {city: {name: New York, names: {en: New York, de: New York City, es: Nueva York, fa: , fr: New York, ja: , ko: , pt-BR: Nova Iorque, ru: -, zh-CN: }}, country: {name: United States, iso_code: US, names: {en: United States, de: Vereinigte Staaten von Amerika, es: Estados Unidos de Amrica (los), fa: , fr: tats-Unis, ja: , ko: , pt-BR: Estados Unidos, ru: , zh-CN: }, geoname_id: 6252001, name_native: United States, phone_code: 1, capital: Washington D.C., currency: USD,USN,USS, flag: , languages: [{iso_code: en, name: English, name_native: English}]}, state: {name: New York}, location: {latitude: 40.7121, longitude: -74.0134}, continent: {code: NA, name: North America, names: {de: Nordamerika, en: North America, es: Norteamrica, fa: , fr: Amrique du Nord, ja: , ko: , pt-BR: Amrica do Norte, ru: , zh-CN: }, geoname_id: 6255149}, subdivisions: [{names: {en: New York, de: New York, es: Nueva York, fa: , fr: New York, ja: , ko: , pt-BR: Nova Iorque, ru: -, zh-CN: }}, {names: {en: New York, fr: Comt de New York, zh-CN: }}], postal: {code: 10123}, ip: 159.102.105.250}| Test case: | tests unit/geo/geoapify_client_test.dart GeoApifyClient: getLocation returns data |
|---|---|
| Outcome: | Passed |
| Duration: | 0.026 sec |
(package:services/geo/geoapify_client.dart:84:13) [GeoApifyClient.getLocationFromIp] ->
[ DEBUG] | 21:36:27 697ms | Requesting GeoApify IP geocode with URL: https://api.geoapify.com/v1/ipinfo?
(package:services/geo/geoapify_client.dart:328:9) [MockGeoApifyClient._execute] ->
[ DEBUG] | 21:36:27 697ms | MockGeoApifyClient returning mock result for URI: https://api.geoapify.com/v1/ipinfo?apiKey=e8488c88fb54474296de5e98965410cb
(package:services/geo/geoapify_client.dart:330:11) [MockGeoApifyClient._execute] ->
[ DEBUG] | 21:36:27 698ms | Returning mock IP lookup result
(package:services/geo/geoapify_client.dart:95:13) [GeoApifyClient.getLocationFromIp] ->
[ DEBUG] | 21:36:27 698ms | GeoApify IP geocode result: GeoApiFyRawResult
{"city":{"name":"New York","names":{"en":"New York","de":"New York City","es":"Nueva York","fa":"","fr":"New York","ja":"","ko":"","pt-BR":"Nova Iorque","ru":"-","zh-CN":""}},"country":{"name":"United States","iso_code":"US","names":{"en":"United States","de":"Vereinigte Staaten von Amerika","es":"Estados Unidos de Amrica (los)","fa":" ","fr":"tats-Unis","ja":"","ko":"","pt-BR":"Estados Unidos","ru":"","zh-CN":""},"geoname_id":6252001,"name_native":"United States","phone_code":"1","capital":"Washington D.C.","currency":"USD,USN,USS","flag":"","languages":[{"iso_code":"en","name":"English","name_native":"English"}]},"state":{"name":"New York"},"location":{"latitude":40.7121,"longitude":-74.0134},"continent":{"code":"NA","name":"North America","names":{"de":"Nordamerika","en":"North America","es":"Norteamrica","fa":" ","fr":"Amrique du Nord","ja":"","ko":"","pt-BR":"Amrica do Norte","ru":" ","zh-CN":""},"geoname_id":6255149},"subdivisions":[{"names":{"en":"New York","de":"New York","es":"Nueva York","fa":"","fr":"New York","ja":"","ko":"","pt-BR":"Nova Iorque","ru":"-","zh-CN":""}},{"names":{"en":"New York","fr":"Comt de New York","zh-CN":""}}],"postal":{"code":"10123"},"ip":"159.102.105.250"}
(package:services/geo/geoapify_client.dart:106:13) [GeoApifyClient.getLocationFromIp] ->
[ DEBUG] | 21:36:27 698ms | Decoded GeoApify IP geocode JSON: {city: {name: New York, names: {en: New York, de: New York City, es: Nueva York, fa: , fr: New York, ja: , ko: , pt-BR: Nova Iorque, ru: -, zh-CN: }}, country: {name: United States, iso_code: US, names: {en: United States, de: Vereinigte Staaten von Amerika, es: Estados Unidos de Amrica (los), fa: , fr: tats-Unis, ja: , ko: , pt-BR: Estados Unidos, ru: , zh-CN: }, geoname_id: 6252001, name_native: United States, phone_code: 1, capital: Washington D.C., currency: USD,USN,USS, flag: , languages: [{iso_code: en, name: English, name_native: English}]}, state: {name: New York}, location: {latitude: 40.7121, longitude: -74.0134}, continent: {code: NA, name: North America, names: {de: Nordamerika, en: North America, es: Norteamrica, fa: , fr: Amrique du Nord, ja: , ko: , pt-BR: Amrica do Norte, ru: , zh-CN: }, geoname_id: 6255149}, subdivisions: [{names: {en: New York, de: New York, es: Nueva York, fa: , fr: New York, ja: , ko: , pt-BR: Nova Iorque, ru: -, zh-CN: }}, {names: {en: New York, fr: Comt de New York, zh-CN: }}], postal: {code: 10123}, ip: 159.102.105.250}
(package:services/geo/geoapify_client.dart:228:13) [GeoApifyClient.reverseGeoCode] ->
[ DEBUG] | 21:36:27 699ms | Requesting GeoApify reverse geocode with URL: https://api.geoapify.com/v1/geocode/reverse?lat=40.7121&lon=-74.0134&format=json&limit=1
(package:services/geo/geoapify_client.dart:328:9) [MockGeoApifyClient._execute] ->
[ DEBUG] | 21:36:27 700ms | MockGeoApifyClient returning mock result for URI: https://api.geoapify.com/v1/geocode/reverse?apiKey=e8488c88fb54474296de5e98965410cb&lat=40.7121&lon=-74.0134&format=json&limit=1
(package:services/geo/geoapify_client.dart:338:11) [MockGeoApifyClient._execute] ->
[ DEBUG] | 21:36:27 700ms | Returning mock location result
(package:services/geo/geoapify_client.dart:239:13) [GeoApifyClient.reverseGeoCode] ->
[ DEBUG] | 21:36:27 700ms | GeoApify reverse geocode result: GeoApiFyRawResult
{"results":[{"datasource":{"sourcename":"openstreetmap","attribution":" OpenStreetMap contributors","license":"Open Database License","url":"https://www.openstreetmap.org/copyright"},"country":"United States","country_code":"us","state":"New York","county":"New York County","city":"New York","postcode":"10024","district":"Manhattan Community Board 7","suburb":"Manhattan","quarter":"Upper West Side","street":"West 81st Street","housenumber":"129","iso3166_2":"US-NY","lon":-73.9753662,"lat":40.7838273,"state_code":"NY","result_type":"building","formatted":"129 West 81st Street, New York, NY 10024, United States of America","address_line1":"129 West 81st Street","address_line2":"New York, NY 10024, United States of America","category":"building","timezone":{"name":"America/New_York","offset_STD":"-05:00","offset_STD_seconds":-18000,"offset_DST":"-04:00","offset_DST_seconds":-14400,"abbreviation_STD":"EST","abbreviation_DST":"EDT"},"plus_code":"87G8Q2MF+GV","plus_code_short":"Q2MF+GV New York, New York County, United States","rank":{"importance":0.00009175936522464359,"popularity":7.840925798000228,"confidence":1,"confidence_city_level":1,"confidence_street_level":1,"confidence_building_level":1,"match_type":"full_match"},"place_id":"51eca75a666c7e52c059229bf57354644440f00102f90132550d1000000000c00203","bbox":{"lon1":-73.9754437,"lat1":40.7837463,"lon2":-73.9752733,"lat2":40.7839195}}]}
(package:services/geo/geoapify_client.dart:244:13) [GeoApifyClient.reverseGeoCode] ->
[ DEBUG] | 21:36:27 700ms | Decoded GeoApify reverse geocode JSON: {results: [{datasource: {sourcename: openstreetmap, attribution: OpenStreetMap contributors, license: Open Database License, url: https://www.openstreetmap.org/copyright}, country: United States, country_code: us, state: New York, county: New York County, city: New York, postcode: 10024, district: Manhattan Community Board 7, suburb: Manhattan, quarter: Upper West Side, street: West 81st Street, housenumber: 129, iso3166_2: US-NY, lon: -73.9753662, lat: 40.7838273, state_code: NY, result_type: building, formatted: 129 West 81st Street, New York, NY 10024, United States of America, address_line1: 129 West 81st Street, address_line2: New York, NY 10024, United States of America, category: building, timezone: {name: America/New_York, offset_STD: -05:00, offset_STD_seconds: -18000, offset_DST: -04:00, offset_DST_seconds: -14400, abbreviation_STD: EST, abbreviation_DST: EDT}, plus_code: 87G8Q2MF+GV, plus_code_short: Q2MF+GV New York, New York County, United States, rank: {importance: 0.00009175936522464359, popularity: 7.840925798000228, confidence: 1, confidence_city_level: 1, confidence_street_level: 1, confidence_building_level: 1, match_type: full_match}, place_id: 51eca75a666c7e52c059229bf57354644440f00102f90132550d1000000000c00203, bbox: {lon1: -73.9754437, lat1: 40.7837463, lon2: -73.9752733, lat2: 40.7839195}}]}
(package:services/geo/geoapify_client.dart:254:17) [GeoApifyClient.reverseGeoCode] ->
[ DEBUG] | 21:36:27 701ms | Parsed GeoLocationModel: {datasource: {sourcename: openstreetmap, attribution: OpenStreetMap contributors, license: Open Database License, url: https://www.openstreetmap.org/copyright}, country: United States, country_code: us, state: New York, county: New York County, city: New York, postcode: 10024, district: Manhattan Community Board 7, suburb: Manhattan, quarter: Upper West Side, street: West 81st Street, housenumber: 129, iso3166_2: US-NY, lon: -73.9753662, lat: 40.7838273, state_code: NY, result_type: building, formatted: 129 West 81st Street, New York, NY 10024, United States of America, address_line1: 129 West 81st Street, address_line2: New York, NY 10024, United States of America, category: building, timezone: {name: America/New_York, offset_STD: -05:00, offset_STD_seconds: -18000, offset_DST: -04:00, offset_DST_seconds: -14400, abbreviation_STD: EST, abbreviation_DST: EDT}, plus_code: 87G8Q2MF+GV, plus_code_short: Q2MF+GV New York, New York County, United States, rank: {importance: 0.00009175936522464359, popularity: 7.840925798000228, confidence: 1, confidence_city_level: 1, confidence_street_level: 1, confidence_building_level: 1, match_type: full_match}, place_id: 51eca75a666c7e52c059229bf57354644440f00102f90132550d1000000000c00203, bbox: {lon1: -73.9754437, lat1: 40.7837463, lon2: -73.9752733, lat2: 40.7839195}}| Test case: | tests unit/geo/geoapify_client_test.dart GeoApifyClient: geocode returns data |
|---|---|
| Outcome: | Passed |
| Duration: | 0.021 sec |
(package:services/geo/geoapify_client.dart:170:13) [GeoApifyClient._search] ->
[ DEBUG] | 21:36:27 727ms | Requesting GeoApify geocode with URL: https://api.geoapify.com/v1/geocode/search?text=Sydney+Opera+House%2C+Australia&limit=1&format=json
(package:services/geo/geoapify_client.dart:328:9) [MockGeoApifyClient._execute] ->
[ DEBUG] | 21:36:27 728ms | MockGeoApifyClient returning mock result for URI: https://api.geoapify.com/v1/geocode/search?apiKey=e8488c88fb54474296de5e98965410cb&text=Sydney+Opera+House%2C+Australia&limit=1&format=json
(package:services/geo/geoapify_client.dart:338:11) [MockGeoApifyClient._execute] ->
[ DEBUG] | 21:36:27 728ms | Returning mock location result
(package:services/geo/geoapify_client.dart:181:13) [GeoApifyClient._search] ->
[ DEBUG] | 21:36:27 728ms | GeoApify geocode result: GeoApiFyRawResult
{"results":[{"datasource":{"sourcename":"openstreetmap","attribution":" OpenStreetMap contributors","license":"Open Database License","url":"https://www.openstreetmap.org/copyright"},"name":"Sydney General Post Office","other_names":{"alt_name":"GPO"},"country":"Australia","country_code":"au","state":"New South Wales","county":"Council of the City of Sydney","city":"Sydney","postcode":"2000","district":"Sydney CBD","suburb":"Sydney","street":"Martin Place","housenumber":"1","iso3166_2":"AU-NSW","lon":151.2076807,"lat":-33.8678042,"state_code":"NSW","distance":0,"result_type":"amenity","formatted":"Sydney General Post Office, 1 Martin Place, Sydney NSW 2000, Australia","address_line1":"Sydney General Post Office","address_line2":"1 Martin Place, Sydney NSW 2000, Australia","category":"building.office","timezone":{"name":"Australia/Sydney","offset_STD":"+10:00","offset_STD_seconds":36000,"offset_DST":"+11:00","offset_DST_seconds":39600,"abbreviation_STD":"AEST","abbreviation_DST":"AEDT"},"plus_code":"4RRH46J5+V3","plus_code_short":"+V3 Sydney, Council of the City of Sydney, Australia","rank":{"importance":0.00008246051728079679,"popularity":7.332617625087506},"place_id":"5155d0fe51a5e66240596d2a413514ef40c0f00102f9013d9ed21000000000c0020192031a5379646e65792047656e6572616c20506f7374204f6666696365","bbox":{"lon1":151.2071574,"lat1":-33.8680086,"lon2":151.2082035,"lat2":-33.8676015}}]}
(package:services/geo/geoapify_client.dart:186:13) [GeoApifyClient._search] ->
[ DEBUG] | 21:36:27 729ms | Decoded GeoApify geocode JSON: {results: [{datasource: {sourcename: openstreetmap, attribution: OpenStreetMap contributors, license: Open Database License, url: https://www.openstreetmap.org/copyright}, name: Sydney General Post Office, other_names: {alt_name: GPO}, country: Australia, country_code: au, state: New South Wales, county: Council of the City of Sydney, city: Sydney, postcode: 2000, district: Sydney CBD, suburb: Sydney, street: Martin Place, housenumber: 1, iso3166_2: AU-NSW, lon: 151.2076807, lat: -33.8678042, state_code: NSW, distance: 0, result_type: amenity, formatted: Sydney General Post Office, 1 Martin Place, Sydney NSW 2000, Australia, address_line1: Sydney General Post Office, address_line2: 1 Martin Place, Sydney NSW 2000, Australia, category: building.office, timezone: {name: Australia/Sydney, offset_STD: +10:00, offset_STD_seconds: 36000, offset_DST: +11:00, offset_DST_seconds: 39600, abbreviation_STD: AEST, abbreviation_DST: AEDT}, plus_code: 4RRH46J5+V3, plus_code_short: +V3 Sydney, Council of the City of Sydney, Australia, rank: {importance: 0.00008246051728079679, popularity: 7.332617625087506}, place_id: 5155d0fe51a5e66240596d2a413514ef40c0f00102f9013d9ed21000000000c0020192031a5379646e65792047656e6572616c20506f7374204f6666696365, bbox: {lon1: 151.2071574, lat1: -33.8680086, lon2: 151.2082035, lat2: -33.8676015}}]}
(package:services/geo/geoapify_client.dart:203:17) [GeoApifyClient._search.<anonymous] ->
[ DEBUG] | 21:36:27 730ms | Parsed GeoLocationModel: GeoLocationModel(country: Australia, countryCode: au, city: Sydney, postalCode: 2000, district: Sydney CBD, suburb: Sydney, street: Martin Place, houseNumber: 1, longitude: 151.2076807, latitude: -33.8678042, formattedAddress: Sydney General Post Office, 1 Martin Place, Sydney NSW 2000, Australia, timezone: GeoLocationTimezoneModel(name: Australia/Sydney, offsetSTDSeconds: 36000, offsetDSTSeconds: 39600))| Test case: | tests unit/geo/geoapify_client_test.dart GeoApifyClient: reverse geocode coordinates returns data |
|---|---|
| Outcome: | Passed |
| Duration: | 0.014 sec |
(package:services/geo/geoapify_client.dart:228:13) [GeoApifyClient.reverseGeoCode] ->
[ DEBUG] | 21:36:27 745ms | Requesting GeoApify reverse geocode with URL: https://api.geoapify.com/v1/geocode/reverse?lat=-33.8567844&lon=151.2152967&format=json&limit=1
(package:services/geo/geoapify_client.dart:328:9) [MockGeoApifyClient._execute] ->
[ DEBUG] | 21:36:27 745ms | MockGeoApifyClient returning mock result for URI: https://api.geoapify.com/v1/geocode/reverse?apiKey=e8488c88fb54474296de5e98965410cb&lat=-33.8567844&lon=151.2152967&format=json&limit=1
(package:services/geo/geoapify_client.dart:338:11) [MockGeoApifyClient._execute] ->
[ DEBUG] | 21:36:27 746ms | Returning mock location result
(package:services/geo/geoapify_client.dart:239:13) [GeoApifyClient.reverseGeoCode] ->
[ DEBUG] | 21:36:27 746ms | GeoApify reverse geocode result: GeoApiFyRawResult
{"results":[{"datasource":{"sourcename":"openstreetmap","attribution":" OpenStreetMap contributors","license":"Open Database License","url":"https://www.openstreetmap.org/copyright"},"name":"Sydney General Post Office","other_names":{"alt_name":"GPO"},"country":"Australia","country_code":"au","state":"New South Wales","county":"Council of the City of Sydney","city":"Sydney","postcode":"2000","district":"Sydney CBD","suburb":"Sydney","street":"Martin Place","housenumber":"1","iso3166_2":"AU-NSW","lon":151.2076807,"lat":-33.8678042,"state_code":"NSW","distance":0,"result_type":"amenity","formatted":"Sydney General Post Office, 1 Martin Place, Sydney NSW 2000, Australia","address_line1":"Sydney General Post Office","address_line2":"1 Martin Place, Sydney NSW 2000, Australia","category":"building.office","timezone":{"name":"Australia/Sydney","offset_STD":"+10:00","offset_STD_seconds":36000,"offset_DST":"+11:00","offset_DST_seconds":39600,"abbreviation_STD":"AEST","abbreviation_DST":"AEDT"},"plus_code":"4RRH46J5+V3","plus_code_short":"+V3 Sydney, Council of the City of Sydney, Australia","rank":{"importance":0.00008246051728079679,"popularity":7.332617625087506},"place_id":"5155d0fe51a5e66240596d2a413514ef40c0f00102f9013d9ed21000000000c0020192031a5379646e65792047656e6572616c20506f7374204f6666696365","bbox":{"lon1":151.2071574,"lat1":-33.8680086,"lon2":151.2082035,"lat2":-33.8676015}}]}
(package:services/geo/geoapify_client.dart:244:13) [GeoApifyClient.reverseGeoCode] ->
[ DEBUG] | 21:36:27 746ms | Decoded GeoApify reverse geocode JSON: {results: [{datasource: {sourcename: openstreetmap, attribution: OpenStreetMap contributors, license: Open Database License, url: https://www.openstreetmap.org/copyright}, name: Sydney General Post Office, other_names: {alt_name: GPO}, country: Australia, country_code: au, state: New South Wales, county: Council of the City of Sydney, city: Sydney, postcode: 2000, district: Sydney CBD, suburb: Sydney, street: Martin Place, housenumber: 1, iso3166_2: AU-NSW, lon: 151.2076807, lat: -33.8678042, state_code: NSW, distance: 0, result_type: amenity, formatted: Sydney General Post Office, 1 Martin Place, Sydney NSW 2000, Australia, address_line1: Sydney General Post Office, address_line2: 1 Martin Place, Sydney NSW 2000, Australia, category: building.office, timezone: {name: Australia/Sydney, offset_STD: +10:00, offset_STD_seconds: 36000, offset_DST: +11:00, offset_DST_seconds: 39600, abbreviation_STD: AEST, abbreviation_DST: AEDT}, plus_code: 4RRH46J5+V3, plus_code_short: +V3 Sydney, Council of the City of Sydney, Australia, rank: {importance: 0.00008246051728079679, popularity: 7.332617625087506}, place_id: 5155d0fe51a5e66240596d2a413514ef40c0f00102f9013d9ed21000000000c0020192031a5379646e65792047656e6572616c20506f7374204f6666696365, bbox: {lon1: 151.2071574, lat1: -33.8680086, lon2: 151.2082035, lat2: -33.8676015}}]}
(package:services/geo/geoapify_client.dart:254:17) [GeoApifyClient.reverseGeoCode] ->
[ DEBUG] | 21:36:27 747ms | Parsed GeoLocationModel: {datasource: {sourcename: openstreetmap, attribution: OpenStreetMap contributors, license: Open Database License, url: https://www.openstreetmap.org/copyright}, name: Sydney General Post Office, other_names: {alt_name: GPO}, country: Australia, country_code: au, state: New South Wales, county: Council of the City of Sydney, city: Sydney, postcode: 2000, district: Sydney CBD, suburb: Sydney, street: Martin Place, housenumber: 1, iso3166_2: AU-NSW, lon: 151.2076807, lat: -33.8678042, state_code: NSW, distance: 0, result_type: amenity, formatted: Sydney General Post Office, 1 Martin Place, Sydney NSW 2000, Australia, address_line1: Sydney General Post Office, address_line2: 1 Martin Place, Sydney NSW 2000, Australia, category: building.office, timezone: {name: Australia/Sydney, offset_STD: +10:00, offset_STD_seconds: 36000, offset_DST: +11:00, offset_DST_seconds: 39600, abbreviation_STD: AEST, abbreviation_DST: AEDT}, plus_code: 4RRH46J5+V3, plus_code_short: +V3 Sydney, Council of the City of Sydney, Australia, rank: {importance: 0.00008246051728079679, popularity: 7.332617625087506}, place_id: 5155d0fe51a5e66240596d2a413514ef40c0f00102f9013d9ed21000000000c0020192031a5379646e65792047656e6572616c20506f7374204f6666696365, bbox: {lon1: 151.2071574, lat1: -33.8680086, lon2: 151.2082035, lat2: -33.8676015}}| Test case: | tests unit/link/deep_link_factory_test.dart DeepLinkFactory: Profile Link |
|---|---|
| Outcome: | Passed |
| Duration: | 0.008 sec |
(package:services/link/deep_link_factory.dart:67:11) [DeepLinkFactory._create] ->
[ DEBUG] | 21:36:27 765ms | link=AppDeepLink.profile
params={docId: 12345}
paramPath=12345
deepLinkPath=https://flipdare.com/l/profile/12345
appUrl=https://chottu.link?deep_link=https://flipdare.com/l/profile/12345| Test case: | tests unit/link/deep_link_factory_test.dart DeepLinkFactory: Dare Link |
|---|---|
| Outcome: | Passed |
| Duration: | 0.006 sec |
(package:services/link/deep_link_factory.dart:67:11) [DeepLinkFactory._create] ->
[ DEBUG] | 21:36:27 772ms | link=AppDeepLink.dare
params={docId: 12345}
paramPath=12345
deepLinkPath=https://flipdare.com/l/dare/12345
appUrl=https://chottu.link?deep_link=https://flipdare.com/l/dare/12345| Test case: | tests unit/permission/permission_checker_test.dart PermissionChecker: hasStoragePermission: Storage ok |
|---|---|
| Outcome: | Passed |
| Duration: | 0.009 sec |
(package:services/permission/permission_checker.dart:88:13) [PermissionChecker.hasStoragePermission] -> [ DEBUG] | 21:36:27 781ms | Storage permission already granted, skipping request
| Test case: | tests unit/permission/permission_checker_test.dart PermissionChecker: hasStoragePermission: Storage NOT ok |
|---|---|
| Outcome: | Passed |
| Duration: | 0.011 sec |
(package:services/permission/permission_checker.dart:101:11) [PermissionChecker.hasStoragePermission] -> [ DEBUG] | 21:36:27 791ms | Storage permission obtained status: PermissionStatus.limited (package:services/permission/permission_checker.dart:108:11) [PermissionChecker.hasStoragePermission] -> [ WARNING] | 21:36:27 792ms | Storage permission denied
| Test case: | tests unit/permission/permission_checker_test.dart PermissionChecker: hasCameraPermission: Camera ok |
|---|---|
| Outcome: | Passed |
| Duration: | 0.007 sec |
(package:services/permission/permission_checker.dart:117:13) [PermissionChecker.hasCameraPermission] -> [ DEBUG] | 21:36:27 802ms | Camera permission already granted, skipping request
| Test case: | tests unit/permission/permission_checker_test.dart PermissionChecker: hasCameraPermission: Camera NOT ok |
|---|---|
| Outcome: | Passed |
| Duration: | 0.007 sec |
(package:services/permission/permission_checker.dart:126:11) [PermissionChecker.hasCameraPermission] -> [ DEBUG] | 21:36:27 810ms | Camera permission obtained status: PermissionStatus.denied, Microphone permission obtained status: PermissionStatus.restricted (package:services/permission/permission_checker.dart:136:11) [PermissionChecker.hasCameraPermission] -> [ WARNING] | 21:36:27 811ms | Camera/microphone permission denied
| Test case: | tests unit/provider/auth/auth_service_state_test.dart AuthServiceState should initialize with default values |
|---|---|
| Outcome: | Passed |
| Duration: | 0.009 sec |
| Test case: | tests unit/provider/auth/auth_service_state_test.dart AuthServiceState should initialize with user model |
|---|---|
| Outcome: | Passed |
| Duration: | 0.006 sec |
| Test case: | tests unit/provider/auth/auth_service_state_test.dart AuthServiceState should copy with new values |
|---|---|
| Outcome: | Passed |
| Duration: | 0.004 sec |
| Test case: | tests unit/provider/auth/auth_service_state_test.dart AuthServiceState should handle error state |
|---|---|
| Outcome: | Passed |
| Duration: | 0.005 sec |
| Test case: | tests unit/provider/auth/auth_service_state_test.dart AuthServiceState should return isUserVerified correctly |
|---|---|
| Outcome: | Passed |
| Duration: | 0.012 sec |
(package:services/provider/auth/auth_service_state.dart:68:9) [AuthServiceState.isUserVerified] -> [ DEBUG] | 21:36:27 848ms | VERIFIED: User grant-vicenta@gmail.com is verified (package:services/provider/auth/auth_service_state.dart:68:9) [AuthServiceState.isUserVerified] -> [ DEBUG] | 21:36:27 848ms | VERIFIED: User grant-vicenta@gmail.com is verified
| Test case: | tests unit/provider/auth/auth_service_state_test.dart AuthServiceState should return isUserNotVerified false when no user (anonymous) |
|---|---|
| Outcome: | Passed |
| Duration: | 0.008 sec |
(package:services/provider/auth/auth_service_state.dart:53:11) [AuthServiceState.isUserVerified] -> [ WARNING] | 21:36:27 859ms | NOT VERIFIED: No user, cannot be verified
| Test case: | tests unit/provider/auth/auth_service_state_test.dart AuthServiceState should return isUserNotVerified true when pinCode exists |
|---|---|
| Outcome: | Passed |
| Duration: | 0.008 sec |
(package:services/provider/auth/auth_service_state.dart:61:11) [AuthServiceState.isUserVerified] -> [ DEBUG] | 21:36:27 869ms | NOT VERIFIED: Pin code exists for farrell.raymundo@yahoo.com, requires validation
| Test case: | tests unit/provider/auth/auth_service_state_test.dart AuthServiceState resetPinCode on a verified user should return isUserVerified true |
|---|---|
| Outcome: | Passed |
| Duration: | 0.011 sec |
(package:services/provider/auth/auth_service_state.dart:61:11) [AuthServiceState.isUserVerified] -> [ DEBUG] | 21:36:27 877ms | NOT VERIFIED: Pin code exists for eichmann_alek@hotmail.com, requires validation (package:services/provider/auth/auth_service_state.dart:61:11) [AuthServiceState.isUserVerified] -> [ DEBUG] | 21:36:27 878ms | NOT VERIFIED: Pin code exists for eichmann_alek@hotmail.com, requires validation (package:services/provider/auth/auth_service_state.dart:68:9) [AuthServiceState.isUserVerified] -> [ DEBUG] | 21:36:27 878ms | VERIFIED: User eichmann_alek@hotmail.com is verified (package:services/provider/auth/auth_service_state.dart:68:9) [AuthServiceState.isUserVerified] -> [ DEBUG] | 21:36:27 878ms | VERIFIED: User eichmann_alek@hotmail.com is verified
| Test case: | tests unit/provider/auth/auth_service_state_test.dart AuthServiceState should reset pinCode when resetPinCode is true |
|---|---|
| Outcome: | Passed |
| Duration: | 0.005 sec |
| Test case: | tests unit/provider/auth/auth_service_test.dart AuthService AuthService Tests Initialization Tests should initialize with anonymous state |
|---|---|
| Outcome: | Passed |
| Duration: | 0.059 sec |
(package:services/provider/auth/auth_service.dart:30:9) [AuthService.build] -> [ WARNING] | 21:36:27 958ms | AuthService initialized
| Test case: | tests unit/provider/auth/auth_service_test.dart AuthService AuthService Tests Initialization Tests should support ProviderScope |
|---|---|
| Outcome: | Passed |
| Duration: | 0.007 sec |
| Test case: | tests unit/provider/auth/auth_service_test.dart AuthService AuthService Tests Initialization Tests should support UncontrolledProviderScope |
|---|---|
| Outcome: | Passed |
| Duration: | 0.007 sec |
| Test case: | tests unit/provider/auth/auth_service_test.dart AuthService AuthService Tests Authentication Tests should set anonymous state successfully |
|---|---|
| Outcome: | Passed |
| Duration: | 0.019 sec |
(package:services/provider/auth/auth_service.dart:30:9) [AuthService.build] -> [ WARNING] | 21:36:28 3ms | AuthService initialized (package:services/provider/auth/auth_service.dart:563:9) [AuthService._setAnonymous] -> [ INFO] | 21:36:28 8ms | User set to anonymous
| Test case: | tests unit/provider/auth/auth_service_test.dart AuthService AuthService Tests Authentication Tests should handle authentication state properly |
|---|---|
| Outcome: | Passed |
| Duration: | 0.013 sec |
(package:services/provider/auth/auth_service.dart:30:9) [AuthService.build] -> [ WARNING] | 21:36:28 22ms | AuthService initialized
| Test case: | tests unit/provider/auth/auth_service_test.dart AuthService AuthService Tests Authentication Tests should handle sign out properly |
|---|---|
| Outcome: | Passed |
| Duration: | 0.034 sec |
(package:services/provider/auth/auth_service.dart:30:9) [AuthService.build] ->
[ WARNING] | 21:36:28 37ms | AuthService initialized
(package:services/user/app_user_store.dart:81:11) [AppUserStore.deleteAuth] ->
[ DEBUG] | 21:36:28 42ms | Deleted auth data from user store, new state: AppUserStoreState(email: null, password: null, authType: null, lastRestart: null, lastActive: null)
(package:services/user/app_user_store.dart:203:9) [AppUserStore._trySave] ->
[ INFO] | 21:36:28 43ms | Saving user info to storage: AppUserStoreState(email: null, password: null, authType: null, lastRestart: null, lastActive: null)
{"email":null,"password":null,"authType":null,"lastRestart":null,"lastActive":null}
(package:core/store/app_store.dart:122:11) [AppStore.write] ->
[ DEBUG] | 21:36:28 44ms | Writing key user with value {"email":null,"password":null,"authType":null,"lastRestart":null,"lastActive":null} to store
(package:core/store/base_storage.dart:79:11) [SecureStorage.read] ->
[ WARNING] | 21:36:28 48ms | Error checking existence of key user: MissingPluginException(No implementation found for method containsKey on channel plugins.it_nomads.com/flutter_secure_storage)
(package:core/store/base_storage.dart:106:11) [SecureStorage.add] ->
[ WARNING] | 21:36:28 49ms | Error writing value for key user: MissingPluginException(No implementation found for method write on channel plugins.it_nomads.com/flutter_secure_storage)
(package:core/store/app_store.dart:127:11) [AppStore.write] ->
[ WARNING] | 21:36:28 50ms | Failed to add preference user with value {"email":null,"password":null,"authType":null,"lastRestart":null,"lastActive":null}
(package:services/provider/auth/auth_service.dart:563:9) [AuthService._setAnonymous] ->
[ INFO] | 21:36:28 53ms | User set to anonymous| Test case: | tests unit/provider/auth/auth_service_test.dart AuthService AuthService Tests User Management Tests should update user successfully when authenticated |
|---|---|
| Outcome: | Passed |
| Duration: | 0.041 sec |
(package:services/provider/auth/auth_service.dart:30:9) [AuthService.build] ->
[ WARNING] | 21:36:28 70ms | AuthService initialized
(package:store/db/app_database.dart:239:11) [AppDatabase.write] ->
[ DEBUG] | 21:36:28 81ms | Executing write operation: StoredOpType.update for StoredOpType.update in FirestoreCollections.user
(package:store/db/app_database.dart:601:11) [AppDatabase._update] ->
[ DEBUG] | 21:36:28 83ms | Updating document in collection: FirestoreCollections.user/test-user-id with data: {display_name: Updated Name, rating_stats: {bookmarks: 0, views: 0, flags: 0, likes: 0, dislikes: 0}, dare_stats: {requested: 0, accepted: 0, completed: 0, processed: 0, total_earnings: 0, missed_earnings: 0, potential_earnings: 0, backers: 0, flags: 0, disputes: 0}}| Test case: | tests unit/provider/auth/auth_service_test.dart AuthService AuthService Tests User Management Tests should not update user when not authenticated |
|---|---|
| Outcome: | Passed |
| Duration: | 0.013 sec |
(package:services/provider/auth/auth_service.dart:30:9) [AuthService.build] -> [ WARNING] | 21:36:28 112ms | AuthService initialized (package:services/provider/auth/auth_service.dart:389:11) [AuthService.updateUser] -> [ WARNING] | 21:36:28 114ms | Cannot update user - no user currently authenticated
| Test case: | tests unit/provider/auth/auth_service_test.dart AuthService AuthService Tests User Management Tests should refresh user data successfully |
|---|---|
| Outcome: | Passed |
| Duration: | 0.017 sec |
(package:services/provider/auth/auth_service.dart:30:9) [AuthService.build] -> [ WARNING] | 21:36:28 127ms | AuthService initialized (package:services/provider/auth/auth_service.dart:422:11) [AuthService.refreshUser] -> [ INFO] | 21:36:28 130ms | Refreshing user data for: test@example.com (package:services/provider/auth/auth_service.dart:424:11) [AuthService.refreshUser] -> [ INFO] | 21:36:28 132ms | User refreshed successfully: test@example.com
| Test case: | tests unit/provider/auth/auth_service_test.dart AuthService AuthService Tests User Management Tests should not refresh user without ID |
|---|---|
| Outcome: | Passed |
| Duration: | 0.014 sec |
(package:services/provider/auth/auth_service.dart:30:9) [AuthService.build] -> [ WARNING] | 21:36:28 145ms | AuthService initialized (package:services/provider/auth/auth_service.dart:422:11) [AuthService.refreshUser] -> [ INFO] | 21:36:28 146ms | Refreshing user data for: test@example.com (package:services/provider/auth/auth_service.dart:424:11) [AuthService.refreshUser] -> [ INFO] | 21:36:28 147ms | User refreshed successfully: test@example.com
| Test case: | tests unit/provider/auth/auth_service_test.dart AuthService AuthService Tests State Management Tests should clear errors when requested |
|---|---|
| Outcome: | Passed |
| Duration: | 0.01 sec |
(package:services/provider/auth/auth_service.dart:30:9) [AuthService.build] -> [ WARNING] | 21:36:28 160ms | AuthService initialized
| Test case: | tests unit/provider/auth/auth_service_test.dart AuthService AuthService Tests State Management Tests should handle loading states correctly during user updates |
|---|---|
| Outcome: | Passed |
| Duration: | 0.014 sec |
(package:services/provider/auth/auth_service.dart:30:9) [AuthService.build] ->
[ WARNING] | 21:36:28 170ms | AuthService initialized
(package:store/db/app_database.dart:239:11) [AppDatabase.write] ->
[ DEBUG] | 21:36:28 171ms | Executing write operation: StoredOpType.update for StoredOpType.update in FirestoreCollections.user
(package:store/db/app_database.dart:601:11) [AppDatabase._update] ->
[ DEBUG] | 21:36:28 172ms | Updating document in collection: FirestoreCollections.user/test-user-id with data: {display_name: Updated, rating_stats: {bookmarks: 0, views: 0, flags: 0, likes: 0, dislikes: 0}, dare_stats: {requested: 0, accepted: 0, completed: 0, processed: 0, total_earnings: 0, missed_earnings: 0, potential_earnings: 0, backers: 0, flags: 0, disputes: 0}}| Test case: | tests unit/provider/auth/auth_service_test.dart AuthService AuthService Tests State Management Tests should maintain user data through state transitions |
|---|---|
| Outcome: | Passed |
| Duration: | 0.008 sec |
(package:services/provider/auth/auth_service.dart:30:9) [AuthService.build] -> [ WARNING] | 21:36:28 184ms | AuthService initialized
| Test case: | tests unit/provider/auth/auth_service_test.dart AuthService AuthService Tests Convenience Providers Tests auth convenience providers should return correct state |
|---|---|
| Outcome: | Passed |
| Duration: | 0.029 sec |
(package:services/provider/auth/auth_service.dart:30:9) [AuthService.build] -> [ WARNING] | 21:36:28 195ms | AuthService initialized (package:services/provider/auth/auth_service_state.dart:68:9) [AuthServiceState.isUserVerified] -> [ DEBUG] | 21:36:28 214ms | VERIFIED: User test@example.com is verified
| Test case: | tests unit/provider/auth/auth_service_test.dart AuthService AuthService Tests Convenience Providers Tests current user convenience providers should work correctly |
|---|---|
| Outcome: | Passed |
| Duration: | 0.018 sec |
(package:services/provider/auth/auth_service.dart:30:9) [AuthService.build] -> [ WARNING] | 21:36:28 224ms | AuthService initialized
| Test case: | tests unit/provider/auth/auth_service_test.dart AuthService AuthService Tests Integration Tests should work with other auth-related providers |
|---|---|
| Outcome: | Passed |
| Duration: | 0.009 sec |
(package:services/provider/auth/auth_service.dart:30:9) [AuthService.build] -> [ WARNING] | 21:36:28 244ms | AuthService initialized
| Test case: | tests unit/provider/auth/auth_service_test.dart AuthService AuthService Tests Integration Tests should maintain consistency across all providers |
|---|---|
| Outcome: | Passed |
| Duration: | 0.009 sec |
(package:services/provider/auth/auth_service.dart:30:9) [AuthService.build] -> [ WARNING] | 21:36:28 252ms | AuthService initialized
| Test case: | tests unit/provider/auth/auth_service_test.dart AuthService AuthService Tests SignUp Flows should sign up. |
|---|---|
| Outcome: | Passed |
| Duration: | 0.033 sec |
(package:services/provider/auth/auth_service.dart:30:9) [AuthService.build] ->
[ WARNING] | 21:36:28 263ms | AuthService initialized
(package:services/auth/auth_client_factory.dart:42:11) [AuthClientFactory.create] ->
[ DEBUG] | 21:36:28 265ms | Creating AuthClient for PasswordAuthAttempt(authType: AuthType.password, operation: AuthOperation.signUp, email: test@example.com, password: password)
(package:services/auth/auth_client.dart:33:11) [AuthClient.isSignedIn] ->
[ INFO] | 21:36:28 266ms | No user is currently signed in.
(package:services/auth/password_auth_client.dart:83:11) [PasswordAuthClient.signUp] ->
[ DEBUG] | 21:36:28 267ms | Sign-up attempt with email: test@example.com
(package:services/auth/password_auth_client.dart:93:13) [PasswordAuthClient.signUp] ->
[ DEBUG] | 21:36:28 267ms | Created user with email test@example.com: Instance of 'MockUserCredential'
(package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] ->
[ DEBUG] | 21:36:28 267ms | checkCred: checking credentials for attempt: PasswordAuthAttempt(authType: AuthType.password, operation: AuthOperation.signUp, email: test@example.com, password: password): Instance of 'MockUserCredential'
(package:services/auth/auth_client.dart:198:11) [AuthClient.checkCred] ->
[ DEBUG] | 21:36:28 267ms | Checking if providerId password is supported
(package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] ->
[ DEBUG] | 21:36:28 267ms | Successfully checked credentials for user test@example.com:
providerId = password
uid = d89812d1-1809-4e16-b41b-0d0014165019
emailVerified = true
Attempt = PasswordAuthAttempt(authType: AuthType.password, operation: AuthOperation.signUp, email: test@example.com, password: password)
(package:services/auth/password_auth_client.dart:108:11) [PasswordAuthClient.signUp] ->
[ DEBUG] | 21:36:28 268ms | Successfully signed up for email test@example.com: AuthResult(authType: AuthType.password, operation: AuthOperation.signUp, email: test@example.com, uid: d89812d1-1809-4e16-b41b-0d0014165019, isEmailVerified: true, displayName: Mock User)
(package:services/provider/auth/auth_service.dart:605:13) [AuthService._convertAuthResultToUserAndUpdateDb] ->
[ INFO] | 21:36:28 268ms | New user signed up: test@example.com
(package:store/db/app_database.dart:239:11) [AppDatabase.write] ->
[ DEBUG] | 21:36:28 269ms | Executing write operation: StoredOpType.create for StoredOpType.create in FirestoreCollections.user
(package:store/db/app_database.dart:542:11) [AppDatabase._create] ->
[ DEBUG] | 21:36:28 271ms | Creating document in collection: FirestoreCollections.user with data: {id: d89812d1-1809-4e16-b41b-0d0014165019, created_at: FieldValue(Instance of 'MockFieldValuePlatform'), updated_at: FieldValue(Instance of 'MockFieldValuePlatform'), auth_type: password, email: test@example.com, display_name: Mock User, name: null, slug_code: user-1789040188269, reputation: 50, fee_type: standard, level: rookie, visibility: public, restriction_id: null, compliance_id: null, invite_id: null, password: null, pin_code: null, delete_code: null, reset_code: null, description: null, avatar: null, banner: null, website_uri: null, email_verified: true, must_reset_password: false, force_relogin: false, email_notifs_enabled: true, enable_haptic: true, unread_activity_count: 0, notification_count: 0, auto_play_on_scroll: true, continue_type: stop, auto_mute: true, swipe_left_to_archive: true, prompt_for_confirmation: true, prompt_visit_external_link: true, show_system_notifications: true, cache_size: ten_mb, archive_time: one_week, user_time_format: ddmmyyyy, rating_stats: {bookmarks: 0, views: 0, flags: 0, likes: 0, dislikes: 0}, dare_stats: {requested: 0, accepted: 0, completed: 0, processed: 0, total_earnings: 0, missed_earnings: 0, potential_earnings: 0, backers: 0, flags: 0, disputes: 0}, stripe_settings: null, location: null, tz_str: null, flagged: null}
(package:services/provider/auth/auth_service.dart:532:9) [AuthService._setAuthenticated] ->
[ INFO] | 21:36:28 272ms | Setting state user to: test@example.com
(package:services/provider/auth/auth_service.dart:545:11) [AuthService._setAuthenticated] ->
[ INFO] | 21:36:28 272ms | User email verified, no pin required for test@example.com
(package:core/admin/service_manager.dart:135:11) [ServiceManager.unregister] ->
[ DEBUG] | 21:36:28 274ms | Unregistered GetIt of Type AuthClientFactory| Test case: | tests unit/provider/auth/auth_service_test.dart AuthService AuthService Tests Edge Cases and Error Handling should handle anonymous user |
|---|---|
| Outcome: | Passed |
| Duration: | 0.009 sec |
(package:services/provider/auth/auth_service.dart:30:9) [AuthService.build] -> [ WARNING] | 21:36:28 297ms | AuthService initialized
| Test case: | tests unit/provider/network/network_service_state_test.dart NetworkServiceState should create with default unknown status |
|---|---|
| Outcome: | Passed |
| Duration: | 0.005 sec |
| Test case: | tests unit/provider/network/network_service_state_test.dart NetworkServiceState should create with specific status |
|---|---|
| Outcome: | Passed |
| Duration: | 0.004 sec |
| Test case: | tests unit/provider/network/network_service_state_test.dart NetworkServiceState should correctly identify online status |
|---|---|
| Outcome: | Passed |
| Duration: | 0.005 sec |
| Test case: | tests unit/provider/network/network_service_test.dart NetworkService Initialization Tests should initialize with default state |
|---|---|
| Outcome: | Passed |
| Duration: | 0.025 sec |
(package:services/network/network_monitor.dart:100:9) [InternetNetworkMonitor._startMonitoring] -> [ INFO] | 21:36:28 348ms | NetworkMonitor: Started monitoring with 0:01:00.000000 interval (package:services/network/network_monitor.dart:122:13) [InternetNetworkMonitor._checkNetworkStatus] -> [ INFO] | 21:36:28 352ms | NetworkMonitor: Status changed from NetworkStatus.online to NetworkStatus.offline
| Test case: | tests unit/provider/network/network_service_test.dart NetworkService Initialization Tests should support ProviderScope |
|---|---|
| Outcome: | Passed |
| Duration: | 0.005 sec |
| Test case: | tests unit/provider/network/network_service_test.dart NetworkService Initialization Tests should support UncontrolledProviderScope |
|---|---|
| Outcome: | Passed |
| Duration: | 0.005 sec |
| Test case: | tests unit/provider/network/network_service_test.dart NetworkService Core Functionality Tests should handle offline gracefully |
|---|---|
| Outcome: | Passed |
| Duration: | 0.014 sec |
| Test case: | tests unit/provider/network/network_service_test.dart NetworkService Core Functionality Tests should notify on online change |
|---|---|
| Outcome: | Passed |
| Duration: | 0.009 sec |
| Test case: | tests unit/provider/pledge/pledge_service_state_test.dart PledgeServiceState should create with default values |
|---|---|
| Outcome: | Passed |
| Duration: | 0.005 sec |
| Test case: | tests unit/provider/pledge/pledge_service_state_test.dart PledgeServiceState should create with specific values |
|---|---|
| Outcome: | Passed |
| Duration: | 0.005 sec |
| Test case: | tests unit/provider/pledge/pledge_service_state_test.dart PledgeServiceState should copy with new values |
|---|---|
| Outcome: | Passed |
| Duration: | 0.004 sec |
| Test case: | tests unit/provider/pledge/pledge_service_test.dart PledgeService Initialization Tests should initialize with default state |
|---|---|
| Outcome: | Passed |
| Duration: | 0.013 sec |
(package:services/provider/auth/auth_service.dart:30:9) [AuthService.build] -> [ WARNING] | 21:36:28 418ms | AuthService initialized
| Test case: | tests unit/provider/pledge/pledge_service_test.dart PledgeService Initialization Tests should support ProviderScope |
|---|---|
| Outcome: | Passed |
| Duration: | 0.004 sec |
| Test case: | tests unit/provider/pledge/pledge_service_test.dart PledgeService Initialization Tests should support UncontrolledProviderScope |
|---|---|
| Outcome: | Passed |
| Duration: | 0.005 sec |
| Test case: | tests unit/provider/pledge/pledge_service_test.dart PledgeService Core Functionality Tests should get pledges |
|---|---|
| Outcome: | Passed |
| Duration: | 0.007 sec |
| Test case: | tests unit/provider/pledge/pledge_service_test.dart PledgeService Core Functionality Tests should handle errors gracefully |
|---|---|
| Outcome: | Passed |
| Duration: | 0.006 sec |
(package:services/provider/auth/auth_service.dart:30:9) [AuthService.build] -> [ WARNING] | 21:36:28 448ms | AuthService initialized
| Test case: | tests unit/provider/pledge/pledge_service_test.dart PledgeService Core Functionality Tests should notify on pledge update |
|---|---|
| Outcome: | Passed |
| Duration: | 0.005 sec |
| Test case: | tests unit/restart/crash_restarter_test.dart CrashRestarter: initial, not within restart |
|---|---|
| Outcome: | Passed |
| Duration: | 0.005 sec |
(package:services/user/crash_restarter.dart:65:11) [CrashRestarter.shouldRestart] -> [ DEBUG] | 21:36:28 462ms | App is NOT eligible for restart (last restart at 2026-09-10 21:36:28.461142, cutoff at 2026-09-11 21:36:28.461142, now 2026-09-10 21:36:28.461142)
| Test case: | tests unit/restart/crash_restarter_test.dart CrashRestarter: initial, no context |
|---|---|
| Outcome: | Passed |
| Duration: | 0.004 sec |
(package:services/user/crash_restarter.dart:73:11) [CrashRestarter.tryRestart] -> [ WARNING] | 21:36:28 466ms | Unable to restart app, context is null
| Test case: | tests unit/restart/crash_restarter_test.dart CrashRestarter: within restart |
|---|---|
| Outcome: | Passed |
| Duration: | 0.004 sec |
(package:services/user/crash_restarter.dart:65:11) [CrashRestarter.shouldRestart] -> [ DEBUG] | 21:36:28 472ms | App is NOT eligible for restart (last restart at 2026-09-10 09:36:28.472140, cutoff at 2026-09-11 09:36:28.472140, now 2026-09-10 21:36:28.472140)
| Test case: | tests unit/restart/crash_restarter_test.dart CrashRestarter: not within restart |
|---|---|
| Outcome: | Passed |
| Duration: | 0.004 sec |
(package:services/user/crash_restarter.dart:65:11) [CrashRestarter.shouldRestart] -> [ DEBUG] | 21:36:28 477ms | App is eligible for restart (last restart at 2026-09-08 21:36:28.477141, cutoff at 2026-09-09 21:36:28.477141, now 2026-09-10 21:36:28.477141)
| Test case: | tests unit/restart/crash_restarter_test.dart CrashRestarter: within restart, context |
|---|---|
| Outcome: | Passed |
| Duration: | 0.007 sec |
(package:services/user/crash_restarter.dart:65:11) [CrashRestarter.shouldRestart] -> [ DEBUG] | 21:36:28 483ms | App is eligible for restart (last restart at 2026-09-09 20:36:28.482141, cutoff at 2026-09-10 20:36:28.482141, now 2026-09-10 21:36:28.483148) (package:services/user/crash_restarter.dart:92:9) [CrashRestarter.tryRestart] -> [ WARNING] | 21:36:28 483ms | Restarting app with last restart time 2026-09-10 21:36:28.483148
| Test case: | tests unit/retry/retry_future_test.dart RetryFuture Tests should complete successfully on first attempt when online |
|---|---|
| Outcome: | Passed |
| Duration: | 0.006 sec |
(package:services/retry/retry_future.dart:108:9) [new] -> [ INFO] | 21:36:28 490ms | RetryFuture initialized with options: Instance of 'RetryOptions' (package:services/retry/retry_future.dart:235:11) [RetryFuture.tryRetry] -> [ DEBUG] | 21:36:28 490ms | Attempt 1/3 for operation.
| Test case: | tests unit/retry/retry_future_test.dart RetryFuture Tests should fail after max attempts exceeded |
|---|---|
| Outcome: | Passed |
| Duration: | 1.214 sec |
(package:services/retry/retry_future.dart:108:9) [new] -> [ INFO] | 21:36:28 495ms | RetryFuture initialized with options: Instance of 'RetryOptions' (package:services/retry/retry_future.dart:235:11) [RetryFuture.tryRetry] -> [ DEBUG] | 21:36:28 496ms | Attempt 1/3 for operation. (package:services/retry/retry_future.dart:285:9) [RetryFuture._delayNextCheck] -> [ DEBUG] | 21:36:28 497ms | Waiting for 0:00:00.430479 before next attempt (current attempt: 1). (package:services/retry/retry_future.dart:235:11) [RetryFuture.tryRetry] -> [ DEBUG] | 21:36:28 929ms | Attempt 2/3 for operation. (package:services/retry/retry_future.dart:285:9) [RetryFuture._delayNextCheck] -> [ DEBUG] | 21:36:28 930ms | Waiting for 0:00:00.772278 before next attempt (current attempt: 2). (package:services/retry/retry_future.dart:235:11) [RetryFuture.tryRetry] -> [ DEBUG] | 21:36:29 703ms | Attempt 3/3 for operation. (package:services/retry/retry_future.dart:295:9) [RetryFuture._throw] -> [ ERROR] | 21:36:29 703ms | Throwing exception for Failed after 3 attempts or retryIf condition returned false. Rethrowing. SocketException: Always fails
| Test case: | tests unit/retry/retry_future_test.dart RetryFuture Tests should wait for network when offline initially |
|---|---|
| Outcome: | Passed |
| Duration: | 0.109 sec |
(package:services/retry/retry_future.dart:108:9) [new] -> [ INFO] | 21:36:29 709ms | RetryFuture initialized with options: Instance of 'RetryOptions' (package:services/retry/retry_future.dart:157:9) [RetryFuture._networkListener] -> [ INFO] | 21:36:29 811ms | Network status changed to: NetworkStatus.online (was online: false) (package:services/retry/retry_future.dart:164:11) [RetryFuture._networkListener] -> [ INFO] | 21:36:29 812ms | Network back online. (package:services/retry/retry_future.dart:168:13) [RetryFuture._networkListener] -> [ DEBUG] | 21:36:29 812ms | Network back online, completing pending network ready completer. (package:services/retry/retry_future.dart:235:11) [RetryFuture.tryRetry] -> [ DEBUG] | 21:36:29 812ms | Attempt 1/3 for operation.
| Test case: | tests unit/retry/retry_future_test.dart RetryFuture Tests should respect retryIf condition |
|---|---|
| Outcome: | Passed |
| Duration: | 0.006 sec |
(package:services/retry/retry_future.dart:108:9) [new] -> [ INFO] | 21:36:29 818ms | RetryFuture initialized with options: Instance of 'RetryOptions' (package:services/retry/retry_future.dart:235:11) [RetryFuture.tryRetry] -> [ DEBUG] | 21:36:29 818ms | Attempt 1/3 for operation. (package:services/retry/retry_future.dart:295:9) [RetryFuture._throw] -> [ ERROR] | 21:36:29 819ms | Throwing exception for Failed after 1 attempts or retryIf condition returned false. Rethrowing. Invalid argument(s): Should not retry
| Test case: | tests unit/retry/retry_future_test.dart RetryFuture Tests should call onNotify callback on retry |
|---|---|
| Outcome: | Passed |
| Duration: | 1.125 sec |
(package:services/retry/retry_future.dart:108:9) [new] -> [ INFO] | 21:36:29 824ms | RetryFuture initialized with options: Instance of 'RetryOptions' (package:services/retry/retry_future.dart:235:11) [RetryFuture.tryRetry] -> [ DEBUG] | 21:36:29 824ms | Attempt 1/5 for operation. (package:services/retry/retry_future.dart:285:9) [RetryFuture._delayNextCheck] -> [ DEBUG] | 21:36:29 825ms | Waiting for 0:00:00.302951 before next attempt (current attempt: 1). (package:services/retry/retry_future.dart:235:11) [RetryFuture.tryRetry] -> [ DEBUG] | 21:36:30 130ms | Attempt 2/5 for operation. (package:services/retry/retry_future.dart:285:9) [RetryFuture._delayNextCheck] -> [ DEBUG] | 21:36:30 131ms | Waiting for 0:00:00.812911 before next attempt (current attempt: 2). (package:services/retry/retry_future.dart:235:11) [RetryFuture.tryRetry] -> [ DEBUG] | 21:36:30 945ms | Attempt 3/5 for operation.
| Test case: | tests unit/retry/retry_future_test.dart RetryFuture Tests should throw RetryException when trying to retry after disposal |
|---|---|
| Outcome: | Passed |
| Duration: | 0.004 sec |
(package:services/retry/retry_future.dart:108:9) [new] -> [ INFO] | 21:36:30 950ms | RetryFuture initialized with options: Instance of 'RetryOptions' (package:services/retry/retry_future.dart:295:9) [RetryFuture._throw] -> [ ERROR] | 21:36:30 950ms | Throwing exception for RetryFuture is disposed, cannot perform operations.
| Test case: | tests unit/retry/retry_future_test.dart RetryFuture Tests should handle network listener errors gracefully |
|---|---|
| Outcome: | Passed |
| Duration: | 0.005 sec |
(package:services/retry/retry_future.dart:108:9) [new] -> [ INFO] | 21:36:30 954ms | RetryFuture initialized with options: Instance of 'RetryOptions' (package:services/retry/retry_future.dart:235:11) [RetryFuture.tryRetry] -> [ DEBUG] | 21:36:30 954ms | Attempt 1/3 for operation.
| Test case: | tests unit/shared/chat_stream_test.dart ChatStream Tests Should invoke the stream builder multiple times on network failure |
|---|---|
| Outcome: | Passed |
| Duration: | 0.015 sec |
(package:services/shared/chat_stream.dart:45:17) [ChatStream.getChatStream.<anonymous] -> [ WARNING] | 21:36:30 965ms | Chat stream disconnected ([firestore/unavailable] null). Retrying (attempt=1) in 0s... (package:services/shared/chat_stream.dart:45:17) [ChatStream.getChatStream.<anonymous] -> [ WARNING] | 21:36:30 968ms | Chat stream disconnected ([firestore/unavailable] null). Retrying (attempt=2) in 0s...
| Test case: | tests unit/shared/chat_stream_test.dart ChatStream Tests Should fallback to last successful snapshot when max retries are reached |
|---|---|
| Outcome: | Passed |
| Duration: | 0.006 sec |
(package:services/shared/chat_stream.dart:45:17) [ChatStream.getChatStream.<anonymous] -> [ WARNING] | 21:36:30 975ms | Chat stream disconnected ([firestore/unavailable] null). Retrying (attempt=1) in 0s...
| Test case: | tests unit/shared/chat_stream_test.dart ChatStream Tests Should immediately fail permanently on permission-denied |
|---|---|
| Outcome: | Passed |
| Duration: | 0.005 sec |
(package:services/shared/chat_stream.dart:58:15) [ChatStream.getChatStream.<anonymous] -> [ ERROR] | 21:36:30 981ms | Chat stream failed permanently: [firestore/permission-denied] null
| Test case: | tests unit/upload/upload_state_test.dart UploadState tests addTask adds a task to the waiting queue |
|---|---|
| Outcome: | Passed |
| Duration: | 0.005 sec |
(package:services/upload/upload_state.dart:119:9) [UploadState.add] -> [ DEBUG] | 21:36:30 986ms | Added task task1 as waiting ... (package:services/upload/upload_state.dart:227:9) [UploadState._setWaiting] -> [ DEBUG] | 21:36:30 986ms | waiting task task1
| Test case: | tests unit/upload/upload_state_test.dart UploadState tests addTask does not add duplicate tasks |
|---|---|
| Outcome: | Passed |
| Duration: | 0.006 sec |
(package:services/upload/upload_state.dart:119:9) [UploadState.add] -> [ DEBUG] | 21:36:30 991ms | Added task task1 as waiting ... (package:services/upload/upload_state.dart:227:9) [UploadState._setWaiting] -> [ DEBUG] | 21:36:30 991ms | waiting task task1 (package:services/upload/upload_state.dart:106:11) [UploadState.add] -> [ DEBUG] | 21:36:30 992ms | Re-adding task task1 which is in state: waiting (package:services/upload/upload_state.dart:119:9) [UploadState.add] -> [ DEBUG] | 21:36:30 992ms | Added task task1 as waiting ... (package:services/upload/upload_state.dart:227:9) [UploadState._setWaiting] -> [ DEBUG] | 21:36:30 992ms | waiting task task1
| Test case: | tests unit/upload/upload_state_test.dart UploadState tests addTask respects queue size limit |
|---|---|
| Outcome: | Passed |
| Duration: | 0.006 sec |
(package:services/upload/upload_state.dart:119:9) [UploadState.add] -> [ DEBUG] | 21:36:30 999ms | Added task task1 as waiting ... (package:services/upload/upload_state.dart:227:9) [UploadState._setWaiting] -> [ DEBUG] | 21:36:30 999ms | waiting task task1 (package:services/upload/upload_state.dart:119:9) [UploadState.add] -> [ DEBUG] | 21:36:30 999ms | Added task task2 as waiting ... (package:services/upload/upload_state.dart:227:9) [UploadState._setWaiting] -> [ DEBUG] | 21:36:30 999ms | waiting task task2 (package:services/upload/upload_state.dart:119:9) [UploadState.add] -> [ DEBUG] | 21:36:30 999ms | Added task task3 as waiting ... (package:services/upload/upload_state.dart:227:9) [UploadState._setWaiting] -> [ DEBUG] | 21:36:30 999ms | waiting task task3
| Test case: | tests unit/upload/upload_state_test.dart UploadState tests nextReady retrieves and moves task to in-progress |
|---|---|
| Outcome: | Passed |
| Duration: | 0.008 sec |
(package:services/upload/upload_state.dart:119:9) [UploadState.add] -> [ DEBUG] | 21:36:31 5ms | Added task task1 as waiting ... (package:services/upload/upload_state.dart:227:9) [UploadState._setWaiting] -> [ DEBUG] | 21:36:31 6ms | waiting task task1 (package:services/upload/upload_state.dart:119:9) [UploadState.add] -> [ DEBUG] | 21:36:31 6ms | Added task task2 as waiting ... (package:services/upload/upload_state.dart:227:9) [UploadState._setWaiting] -> [ DEBUG] | 21:36:31 6ms | waiting task task2 (package:services/upload/upload_state.dart:139:11) [UploadState.nextReady] -> [ DEBUG] | 21:36:31 6ms | Task task1 is in state: waiting (package:services/upload/upload_state.dart:168:11) [UploadState.nextReady] -> [ DEBUG] | 21:36:31 7ms | Starting task task1 which is in state: waiting (package:services/upload/upload_state.dart:235:9) [UploadState._setStarted] -> [ DEBUG] | 21:36:31 7ms | starting task task1
| Test case: | tests unit/upload/upload_state_test.dart UploadState tests nextReady returns null if no tasks are waiting |
|---|---|
| Outcome: | Passed |
| Duration: | 0.004 sec |
(package:services/upload/upload_state.dart:129:11) [UploadState.nextReady] -> [ DEBUG] | 21:36:31 14ms | No tasks in the queue.. (package:services/upload/upload_state.dart:62:11) [UploadState.hasErrors] -> [ DEBUG] | 21:36:31 14ms | No errors, nothing in queue.. (package:services/upload/upload_state.dart:71:11) [UploadState.errorCount] -> [ DEBUG] | 21:36:31 14ms | No errors, nothing in queue..
| Test case: | tests unit/upload/upload_state_test.dart UploadState tests setCompleted marks task as completed |
|---|---|
| Outcome: | Passed |
| Duration: | 0.007 sec |
(package:services/upload/upload_state.dart:119:9) [UploadState.add] -> [ DEBUG] | 21:36:31 18ms | Added task task1 as waiting ... (package:services/upload/upload_state.dart:227:9) [UploadState._setWaiting] -> [ DEBUG] | 21:36:31 18ms | waiting task task1 (package:services/upload/upload_state.dart:139:11) [UploadState.nextReady] -> [ DEBUG] | 21:36:31 18ms | Task task1 is in state: waiting (package:services/upload/upload_state.dart:168:11) [UploadState.nextReady] -> [ DEBUG] | 21:36:31 18ms | Starting task task1 which is in state: waiting (package:services/upload/upload_state.dart:235:9) [UploadState._setStarted] -> [ DEBUG] | 21:36:31 19ms | starting task task1 (package:services/upload/upload_state.dart:201:9) [UploadState.setCompleted] -> [ DEBUG] | 21:36:31 19ms | completed task task1 (package:services/upload/upload_state.dart:248:9) [UploadState._cleanupTask] -> [ DEBUG] | 21:36:31 19ms | cleaning up task task1 in state inProgress (package:services/upload/upload_state.dart:258:11) [UploadState._cleanupTask] -> [ DEBUG] | 21:36:31 19ms | marking task task1 as completed
| Test case: | tests unit/upload/upload_state_test.dart UploadState tests setCompleted returns null if task ID does not exist |
|---|---|
| Outcome: | Passed |
| Duration: | 0.004 sec |
(package:services/upload/upload_state.dart:179:11) [UploadState.setCompleted] -> [ WARNING] | 21:36:31 27ms | corrupted state, cannot complete task nonexistent (package:services/upload/upload_state.dart:62:11) [UploadState.hasErrors] -> [ DEBUG] | 21:36:31 27ms | No errors, nothing in queue.. (package:services/upload/upload_state.dart:71:11) [UploadState.errorCount] -> [ DEBUG] | 21:36:31 27ms | No errors, nothing in queue..
| Test case: | tests unit/upload/upload_state_test.dart UploadState tests setErrored marks task as failed |
|---|---|
| Outcome: | Passed |
| Duration: | 0.008 sec |
(package:services/upload/upload_state.dart:119:9) [UploadState.add] -> [ DEBUG] | 21:36:31 31ms | Added task task1 as waiting ... (package:services/upload/upload_state.dart:227:9) [UploadState._setWaiting] -> [ DEBUG] | 21:36:31 31ms | waiting task task1 (package:services/upload/upload_state.dart:139:11) [UploadState.nextReady] -> [ DEBUG] | 21:36:31 31ms | Task task1 is in state: waiting (package:services/upload/upload_state.dart:168:11) [UploadState.nextReady] -> [ DEBUG] | 21:36:31 32ms | Starting task task1 which is in state: waiting (package:services/upload/upload_state.dart:235:9) [UploadState._setStarted] -> [ DEBUG] | 21:36:31 32ms | starting task task1 (package:services/upload/upload_state.dart:213:9) [UploadState.setErrored] -> [ DEBUG] | 21:36:31 32ms | Setting errored state for task task1 in state inProgress (package:services/upload/upload_state.dart:248:9) [UploadState._cleanupTask] -> [ DEBUG] | 21:36:31 32ms | cleaning up task task1 in state inProgress (package:services/upload/upload_state.dart:262:11) [UploadState._cleanupTask] -> [ DEBUG] | 21:36:31 32ms | marking task task1 as failed
| Test case: | tests unit/upload/upload_state_test.dart UploadState tests setErrored does nothing if task ID does not exist |
|---|---|
| Outcome: | Passed |
| Duration: | 0.004 sec |
(package:services/upload/upload_state.dart:209:11) [UploadState.setErrored] -> [ WARNING] | 21:36:31 40ms | corrupted state, cannot error task nonexistent (package:services/upload/upload_state.dart:62:11) [UploadState.hasErrors] -> [ DEBUG] | 21:36:31 40ms | No errors, nothing in queue.. (package:services/upload/upload_state.dart:71:11) [UploadState.errorCount] -> [ DEBUG] | 21:36:31 40ms | No errors, nothing in queue..
| Test case: | tests unit/upload/upload_state_test.dart UploadState tests clearErrors clears all failed tasks |
|---|---|
| Outcome: | Passed |
| Duration: | 0.01 sec |
(package:services/upload/upload_state.dart:119:9) [UploadState.add] -> [ DEBUG] | 21:36:31 45ms | Added task task1 as waiting ... (package:services/upload/upload_state.dart:227:9) [UploadState._setWaiting] -> [ DEBUG] | 21:36:31 45ms | waiting task task1 (package:services/upload/upload_state.dart:139:11) [UploadState.nextReady] -> [ DEBUG] | 21:36:31 45ms | Task task1 is in state: waiting (package:services/upload/upload_state.dart:168:11) [UploadState.nextReady] -> [ DEBUG] | 21:36:31 45ms | Starting task task1 which is in state: waiting (package:services/upload/upload_state.dart:235:9) [UploadState._setStarted] -> [ DEBUG] | 21:36:31 45ms | starting task task1 (package:services/upload/upload_state.dart:213:9) [UploadState.setErrored] -> [ DEBUG] | 21:36:31 45ms | Setting errored state for task task1 in state inProgress (package:services/upload/upload_state.dart:248:9) [UploadState._cleanupTask] -> [ DEBUG] | 21:36:31 45ms | cleaning up task task1 in state inProgress (package:services/upload/upload_state.dart:262:11) [UploadState._cleanupTask] -> [ DEBUG] | 21:36:31 45ms | marking task task1 as failed (package:services/upload/upload_state.dart:294:15) [UploadState.clearErrors.<anonymous] -> [ DEBUG] | 21:36:31 46ms | Clearing error state for task task1 (package:services/upload/upload_state.dart:299:9) [UploadState.clearErrors] -> [ DEBUG] | 21:36:31 46ms | Cleared all failed entries (package:services/upload/upload_state.dart:62:11) [UploadState.hasErrors] -> [ DEBUG] | 21:36:31 46ms | No errors, nothing in queue.. (package:services/upload/upload_state.dart:71:11) [UploadState.errorCount] -> [ DEBUG] | 21:36:31 46ms | No errors, nothing in queue..
| Test case: | tests unit/upload/upload_state_test.dart UploadState tests clearErrors does nothing if there are no errors |
|---|---|
| Outcome: | Passed |
| Duration: | 0.005 sec |
(package:services/upload/upload_state.dart:62:11) [UploadState.hasErrors] -> [ DEBUG] | 21:36:31 55ms | No errors, nothing in queue.. (package:services/upload/upload_state.dart:280:11) [UploadState.clearErrors] -> [ DEBUG] | 21:36:31 56ms | All good, no need to clear errors.. (package:services/upload/upload_state.dart:62:11) [UploadState.hasErrors] -> [ DEBUG] | 21:36:31 56ms | No errors, nothing in queue.. (package:services/upload/upload_state.dart:71:11) [UploadState.errorCount] -> [ DEBUG] | 21:36:31 56ms | No errors, nothing in queue..
| Test case: | tests unit/upload/upload_stats_test.dart UploadStats initialization |
|---|---|
| Outcome: | Passed |
| Duration: | 0.002 sec |
| Test case: | tests unit/upload/upload_stats_test.dart UploadStats equality |
|---|---|
| Outcome: | Passed |
| Duration: | 0.002 sec |
| Test case: | tests unit/upload/upload_stats_test.dart UploadStats equality with values |
|---|---|
| Outcome: | Passed |
| Duration: | 0.001 sec |
| Test case: | tests unit/upload/upload_stats_test.dart UploadStats inequality |
|---|---|
| Outcome: | Passed |
| Duration: | 0.001 sec |
| Test case: | tests unit/upload/upload_stats_test.dart UploadStats hasErrors |
|---|---|
| Outcome: | Passed |
| Duration: | 0.002 sec |
| Test case: | tests unit/user/auth_attempt_test.dart AuthAttempt PasswordAuthAttempt signInWithCredentials |
|---|---|
| Outcome: | Passed |
| Duration: | 0.002 sec |
| Test case: | tests unit/user/auth_attempt_test.dart AuthAttempt GoogleAuthAttempt interactive Sign In |
|---|---|
| Outcome: | Passed |
| Duration: | 0.002 sec |
| Test case: | tests unit/user/auth_attempt_test.dart AuthAttempt AppleAuthAttempt interactive |
|---|---|
| Outcome: | Passed |
| Duration: | 0.002 sec |
| Test case: | tests unit/user/auth_result_test.dart AuthResult EmailResult signInWithCredentials |
|---|---|
| Outcome: | Passed |
| Duration: | 0.001 sec |
| Test case: | tests unit/user/auth_result_test.dart AuthResult GoogleResult googleSignIn |
|---|---|
| Outcome: | Passed |
| Duration: | 0.001 sec |
| Test case: | tests unit/user/crash_restarter_test.dart CrashRestarter: - Widget Tests Phoenix.rebirth restarts the app |
|---|---|
| Outcome: | Passed |
| Duration: | 0.06 sec |
(package:services/user/crash_restarter.dart:65:11) [CrashRestarter.shouldRestart] -> [ DEBUG] | 21:36:31 130ms | App is eligible for restart (last restart at 2026-09-08 21:36:31.130132, cutoff at 2026-09-09 21:36:31.130132, now 2026-09-10 21:36:31.130132) [runCrashRestarterWidgetTests.<anonymous] -> [ DEBUG] | 21:36:31 130ms | App restarted (package:services/user/crash_restarter.dart:92:9) [CrashRestarter.tryRestart] -> [ WARNING] | 21:36:31 130ms | Restarting app with last restart time 2026-09-10 21:36:31.130132
| Test case: | tests unit/user/invitation_info_test.dart InvitationInfo name with first and last name |
|---|---|
| Outcome: | Passed |
| Duration: | 0.002 sec |
(package:core/admin/service_manager.dart:135:11) [ServiceManager.unregister] -> [ DEBUG] | 21:36:28 306ms | Unregistered GetIt of Type AppServiceSetup (package:core/admin/service_manager.dart:135:11) [ServiceManager.unregister] -> [ DEBUG] | 21:36:28 307ms | Unregistered GetIt of Type AppFirebaseSetup
None