Test Report : test-results.xml

📊 Test Execution Summary Report Generated On: 2026-11-07 10:49:12

230
Total
230
Passed
0
Failed
0
Skipped
4.207s
Duration

    Test Suite: D:.working.flipdare.code.packages.services.test.test_bundle.bundle

    Suite Properties

    platformvm

    Results

    Duration0.0 sec
    Tests230
    Failures0

    Tests

    D:.working.flipdare.code.packages.services.test.test_bundle.bundle

    Test case:tests unit/alert/alert_manager_test.dart AlertManager Overlay tests pushes overlay into the Overlay
    Outcome:Passed
    Duration:0.464 sec
    Stdout
     (package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> 
     
     [ DEBUG] | 21:01:29 391ms | 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:01:29 397ms | Peeking at alert app||info||title||N/A||hello!, queue length: 1
    
    
     (package:services/alert/alert_queue.dart:114:11) [AlertQueue.remove] -> 
     
     [ DEBUG] | 21:01:29 398ms | Removed alert app||info||title||N/A||hello! from queue, remaining length: 0
    
    
      [_FakeAlertDisplayState.initState] -> 
     
     [ DEBUG] | 21:01:29 408ms | Starting timer for alert app||info||title||N/A||hello! with duration 2000ms
    
    
     (package:core/admin/service_manager.dart:131:11) [ServiceManager.unregister] -> 
     
     [ DEBUG] | 21:01:29 455ms | 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.041 sec
    Stdout
     (package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> 
     
     [ DEBUG] | 21:01:29 480ms | Added alert payment||info||firsttitle||N/A|| to queue, total length: 1
    
    
     (package:services/alert/alert_queue.dart:67:9) [AlertQueue.peek] -> 
     
     [ DEBUG] | 21:01:29 481ms | Peeking at alert payment||info||firsttitle||N/A||, queue length: 1
    
    
     (package:services/alert/alert_queue.dart:114:11) [AlertQueue.remove] -> 
     
     [ DEBUG] | 21:01:29 481ms | Removed alert payment||info||firsttitle||N/A|| from queue, remaining length: 0
    
    
     (package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> 
     
     [ DEBUG] | 21:01:29 481ms | Added alert permission||info||secondtitle||N to queue, total length: 1
    
    
      [_FakeAlertDisplayState.initState] -> 
     
     [ DEBUG] | 21:01:29 483ms | Starting timer for alert payment||info||first title||N/A||first with duration 1000ms
    
    
      [_FakeAlertDisplayState.initState.<anonymous] -> 
     
     [ WARNING] | 21:01:29 486ms | Alert payment||info||first title||N/A||first timed out
    
    
     (package:services/alert/alert_manager.dart:339:9) [AlertManager.checkStatusDebug] -> 
     
     [ INFO] | 21:01:29 488ms | ============================== 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:01:29 488ms | Peeking at alert permission||info||secondtitle||N, queue length: 1
    
    
     (package:services/alert/alert_queue.dart:114:11) [AlertQueue.remove] -> 
     
     [ DEBUG] | 21:01:29 488ms | Removed alert permission||info||secondtitle||N from queue, remaining length: 0
    
    
      [_FakeAlertDisplayState.initState] -> 
     
     [ DEBUG] | 21:01:29 489ms | Starting timer for alert permission||info||second title||N/A||second with duration 2000ms
    
    
     (package:core/admin/service_manager.dart:131:11) [ServiceManager.unregister] -> 
     
     [ DEBUG] | 21:01:29 495ms | 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.038 sec
    Stdout
     (package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> 
     
     [ DEBUG] | 21:01:29 521ms | Added alert backend||error||errortitle||N/A| to queue, total length: 1
    
    
     (package:services/alert/alert_queue.dart:67:9) [AlertQueue.peek] -> 
     
     [ DEBUG] | 21:01:29 521ms | Peeking at alert backend||error||errortitle||N/A|, queue length: 1
    
    
     (package:services/alert/alert_queue.dart:114:11) [AlertQueue.remove] -> 
     
     [ DEBUG] | 21:01:29 521ms | Removed alert backend||error||errortitle||N/A| from queue, remaining length: 0
    
    
      [_FakeAlertDisplayState.initState] -> 
     
     [ DEBUG] | 21:01:29 523ms | 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:01:29 525ms | 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:01:29 525ms | Peeking at alert app||info||infotitle||N/A||infom, queue length: 1
    
    
     (package:services/alert/alert_manager.dart:339:9) [AlertManager.checkStatusDebug] -> 
     
     [ INFO] | 21:01:29 527ms | ============================== 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:01:29 527ms | Peeking at alert app||info||infotitle||N/A||infom, queue length: 1
    
    
     (package:services/alert/alert_queue.dart:114:11) [AlertQueue.remove] -> 
     
     [ DEBUG] | 21:01:29 527ms | Removed alert app||info||infotitle||N/A||infom from queue, remaining length: 0
    
    
      [_FakeAlertDisplayState.initState] -> 
     
     [ DEBUG] | 21:01:29 529ms | Starting timer for alert app||info||info title||N/A||info message with duration 2000ms
    
    
     (package:core/admin/service_manager.dart:131:11) [ServiceManager.unregister] -> 
     
     [ DEBUG] | 21:01:29 534ms | 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.147 sec
    Stdout
     (package:services/route/app_route_observer.dart:49:9) [AppRouteObserver.didPush] -> 
     
     [ DEBUG] | 21:01:29 554ms | Push Navigation Event:to / with args: null
    
    
     (package:core/analytics/analytics_interface.dart:51:9) [AnalyticsInterface.logRoute] -> 
     
     [ DEBUG] | 21:01:29 556ms | Logging route: / with extra: null
    
    
     (package:core/analytics/analytics_interface.dart:54:11) [AnalyticsInterface.logRoute] -> 
     
     [ WARNING] | 21:01:29 557ms | No analytics required for route: /
    
    
     (package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> 
     
     [ DEBUG] | 21:01:29 586ms | 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:01:29 587ms | Peeking at alert network||info||title||N/A||persi, queue length: 1
    
    
     (package:services/alert/alert_queue.dart:114:11) [AlertQueue.remove] -> 
     
     [ DEBUG] | 21:01:29 587ms | Removed alert network||info||title||N/A||persi from queue, remaining length: 0
    
    
      [_FakeAlertDisplayState.initState] -> 
     
     [ DEBUG] | 21:01:29 589ms | 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:01:29 639ms | Push Navigation Event:to null with args: null
    
    
     (package:core/analytics/analytics_interface.dart:47:11) [AnalyticsInterface.logRoute] -> 
     
     [ WARNING] | 21:01:29 639ms | Route name is null, skipping route logging
    
    
     (package:core/admin/service_manager.dart:131:11) [ServiceManager.unregister] -> 
     
     [ DEBUG] | 21:01:29 683ms | Unregistered GetIt of Type AlertManagerInterface
    Test case:tests unit/alert/alert_queue_test.dart AlertQueue: add: adds alert to queue
    Outcome:Passed
    Duration:0.003 sec
    Stdout
     (package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> 
     
     [ DEBUG] | 21:01:29 699ms | 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.004 sec
    Stdout
     (package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> 
     
     [ DEBUG] | 21:01:29 702ms | 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:01:29 702ms | 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.004 sec
    Stdout
     (package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> 
     
     [ DEBUG] | 21:01:29 706ms | Added alert app||error||TestAlert3||N/A||Thi to queue, total length: 1
    
    
     (package:services/alert/alert_queue.dart:114:11) [AlertQueue.remove] -> 
     
     [ DEBUG] | 21:01:29 706ms | 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.002 sec
    Stdout
     (package:services/alert/alert_queue.dart:117:9) [AlertQueue.remove] -> 
     
     [ WARNING] | 21:01:29 710ms | 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.004 sec
    Stdout
     (package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> 
     
     [ DEBUG] | 21:01:29 714ms | Added alert app||error||PeekTestAlert||N/A|| to queue, total length: 1
    
    
     (package:services/alert/alert_queue.dart:67:9) [AlertQueue.peek] -> 
     
     [ DEBUG] | 21:01:29 714ms | 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.001 sec
    Test case:tests unit/alert/alert_queue_test.dart AlertQueue: Comparable: alerts are comparable based on type
    Outcome:Passed
    Duration:0.004 sec
    Stdout
     (package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> 
     
     [ DEBUG] | 21:01:29 720ms | 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:01:29 720ms | 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:01:29 721ms | 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.004 sec
    Stdout
     (package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> 
     
     [ DEBUG] | 21:01:29 725ms | Added alert app||error||ClearTestAlert1||N/A to queue, total length: 1
    
    
     (package:services/alert/alert_queue.dart:58:9) [AlertQueue.add] -> 
     
     [ DEBUG] | 21:01:29 726ms | 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.007 sec
    Stdout
     (package:services/auth/auth_client.dart:33:11) [AuthClient.isSignedIn] -> 
     
     [ INFO] | 21:01:29 735ms | 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.008 sec
    Stdout
     (package:services/auth/auth_client.dart:37:9) [AuthClient.isSignedIn] -> 
     
     [ INFO] | 21:01:29 741ms | User is currently signed in: test@gmail.com
    
    
     (package:services/auth/auth_client.dart:42:11) [AuthClient.isSignedIn] -> 
     
     [ DEBUG] | 21:01:29 741ms | 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.01 sec
    Stdout
     (package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 747ms | 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:01:29 747ms | Checking if providerId password is supported
    
    
     (package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 747ms | Successfully checked credentials for user test@gmail.com:
     	providerId     = password
     	uid            = 0626afe5-5944-40d2-9f91-7202a2d690f9
     	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.007 sec
    Stdout
     (package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 757ms | 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:01:29 757ms | Checking if providerId password is supported
    
    
     (package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 757ms | Successfully checked credentials for user test@gmail.com:
     	providerId     = password
     	uid            = 2282acc3-74ba-42e1-9276-cacd6894f403
     	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.006 sec
    Stdout
     (package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 764ms | 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:01:29 764ms | 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.017 sec
    Stdout
     (package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 780ms | 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:01:29 783ms | 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.004 sec
    Stdout
     (package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 788ms | 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:01:29 788ms | 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.006 sec
    Stdout
     (package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 792ms | 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:01:29 792ms | Checking if providerId google.com is supported
    
    
     (package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 792ms | Successfully checked credentials for user test@gmail.com:
     	providerId     = google.com
     	uid            = 907f5ed0-8fbc-4285-ad9c-4fff60ad900b
     	emailVerified  = true
     	Attempt        = PasswordAuthAttempt(authType: AuthType.password, operation: AuthOperation.signIn, email: test@gmail.com, password: password)
    Test case:tests unit/auth/auth_service_state_test.dart AuthServiceStateUnitTests creation
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/auth/auth_service_state_test.dart AuthServiceStateUnitTests not authenticated
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/auth/auth_service_state_test.dart AuthServiceStateUnitTests not authenticated due to error
    Outcome:Passed
    Duration:0.01 sec
    Test case:tests unit/auth/auth_service_state_test.dart AuthServiceStateUnitTests authenticated
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/auth/auth_service_state_test.dart AuthServiceStateUnitTests is anonymous
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/auth/auth_service_state_test.dart AuthServiceStateUnitTests not verified because user is null
    Outcome:Passed
    Duration:0.003 sec
    Stdout
     (package:services/service/auth/auth_service_state.dart:53:11) [AuthServiceState.isEmailVerified] -> 
     
     [ WARNING] | 21:01:29 816ms | NOT VERIFIED: No user, cannot be verified
    Test case:tests unit/auth/auth_service_state_test.dart AuthServiceStateUnitTests not verified because pin exists
    Outcome:Passed
    Duration:0.003 sec
    Stdout
     (package:services/service/auth/auth_service_state.dart:71:9) [AuthServiceState.isEmailVerified] -> 
     
     [ INFO] | 21:01:29 819ms | NOT VERIFIED zmullins@yahoo.com: reason=Pin code exists.
    Test case:tests unit/auth/auth_service_state_test.dart AuthServiceStateUnitTests not verified because stored emailVerified
    Outcome:Passed
    Duration:0.003 sec
    Stdout
     (package:services/service/auth/auth_service_state.dart:71:9) [AuthServiceState.isEmailVerified] -> 
     
     [ INFO] | 21:01:29 822ms | NOT VERIFIED zmullins@yahoo.com: reason=User is not verified.
    Test case:tests unit/auth/auth_service_state_test.dart AuthServiceStateUnitTests is verified
    Outcome:Passed
    Duration:0.002 sec
    Stdout
     (package:services/service/auth/auth_service_state.dart:66:13) [AuthServiceState.isEmailVerified] -> 
     
     [ DEBUG] | 21:01:29 825ms | VERIFIED zmullins@yahoo.com: no issues found
    Test case:tests unit/auth/google_auth_client_test.dart GoogleAuthClient Tests signIn signIn with valid credentials
    Outcome:Passed
    Duration:0.013 sec
    Stdout
     (package:services/auth/google_auth_client.dart:114:11) [GoogleAuthClient._authenticate] -> 
     
     [ INFO] | 21:01:29 834ms | Authenticating to firebase with id=idToken
    
    
     (package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 834ms | 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:01:29 835ms | Checking if providerId google.com is supported
    
    
     (package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 835ms | Successfully checked credentials for user good.email@gmail.com:
     	providerId     = google.com
     	uid            = 18287792-2279-4700-b35b-a0006149e0b5
     	emailVerified  = true
     	Attempt        = AuthAttempt(authType: AuthType.google, operation: AuthOperation.signIn, email: null)
    
    
     (package:services/auth/google_auth_client.dart:125:11) [GoogleAuthClient._authenticate] -> 
     
     [ DEBUG] | 21:01:29 835ms | Successfully signed in with Google: AuthResult(authType: AuthType.google, operation: AuthOperation.signIn, email: good.email@gmail.com, uid: 18287792-2279-4700-b35b-a0006149e0b5, 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.01 sec
    Stdout
     (package:services/auth/google_auth_client.dart:114:11) [GoogleAuthClient._authenticate] -> 
     
     [ INFO] | 21:01:29 843ms | Authenticating to firebase with id=idToken
    
    
     (package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 844ms | 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:01:29 844ms | Checking if providerId google.com is supported
    
    
     (package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 844ms | Successfully checked credentials for user bad.email@gmail.com:
     	providerId     = google.com
     	uid            = 394d80f6-092e-4fad-b643-6e1220452209
     	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:01:29 844ms | 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.004 sec
    Stdout
     (package:services/auth/auth_error_handler.dart:60:9) [AuthErrorHandler.handleTokenError] -> 
     
     [ ERROR] | 21:01:29 853ms | 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.007 sec
    Stdout
     (package:services/auth/google_auth_client.dart:114:11) [GoogleAuthClient._authenticate] -> 
     
     [ INFO] | 21:01:29 856ms | Authenticating to firebase with id=idToken
    
    
     (package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 856ms | 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:01:29 857ms | Checking if providerId google.com is supported
    
    
     (package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 857ms | Successfully checked credentials for user good.email@gmail.com:
     	providerId     = google.com
     	uid            = 5ea3d445-013a-4023-81e9-d4a0ab2c38fd
     	emailVerified  = true
     	Attempt        = AuthAttempt(authType: AuthType.google, operation: AuthOperation.signIn, email: null)
    
    
     (package:services/auth/google_auth_client.dart:125:11) [GoogleAuthClient._authenticate] -> 
     
     [ DEBUG] | 21:01:29 857ms | Successfully signed in with Google: AuthResult(authType: AuthType.google, operation: AuthOperation.signIn, email: good.email@gmail.com, uid: 5ea3d445-013a-4023-81e9-d4a0ab2c38fd, 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.008 sec
    Stdout
     (package:services/auth/google_auth_client.dart:114:11) [GoogleAuthClient._authenticate] -> 
     
     [ INFO] | 21:01:29 864ms | Authenticating to firebase with id=idToken
    
    
     (package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 864ms | 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:01:29 864ms | Checking if providerId google.com is supported
    
    
     (package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 864ms | Successfully checked credentials for user bad.email@gmail.com:
     	providerId     = google.com
     	uid            = 248ecb5c-2f31-48bc-bffc-8c5710e215b9
     	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:01:29 864ms | 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.003 sec
    Stdout
     (package:services/auth/auth_error_handler.dart:60:9) [AuthErrorHandler.handleTokenError] -> 
     
     [ ERROR] | 21:01:29 871ms | 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.007 sec
    Stdout
     (package:services/auth/password_auth_client.dart:42:11) [PasswordAuthClient.signIn] -> 
     
     [ DEBUG] | 21:01:29 874ms | Sign-In attempt with email:good.email@gmail.com password:password
    
    
     (package:services/auth/password_auth_client.dart:49:13) [PasswordAuthClient.signIn] -> 
     
     [ DEBUG] | 21:01:29 875ms | 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:01:29 875ms | 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:01:29 875ms | Checking if providerId password is supported
    
    
     (package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 875ms | Successfully checked credentials for user good.email@gmail.com:
     	providerId     = password
     	uid            = 16d6d55c-6d60-473a-8d7c-654f20e6afb3
     	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:01:29 875ms | Successfully signed in for email good.email@gmail.com: AuthResult(authType: AuthType.password, operation: AuthOperation.signIn, email: good.email@gmail.com, uid: 16d6d55c-6d60-473a-8d7c-654f20e6afb3, 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.008 sec
    Stdout
     (package:services/auth/password_auth_client.dart:83:11) [PasswordAuthClient.signUp] -> 
     
     [ DEBUG] | 21:01:29 883ms | Sign-up attempt with email: good.email@gmail.com
    
    
     (package:services/auth/password_auth_client.dart:93:13) [PasswordAuthClient.signUp] -> 
     
     [ DEBUG] | 21:01:29 884ms | Created user with email good.email@gmail.com: Instance of 'MockUserCredential'
    
    
     (package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 884ms | 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:01:29 884ms | Checking if providerId password is supported
    
    
     (package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 884ms | Successfully checked credentials for user good.email@gmail.com:
     	providerId     = password
     	uid            = 2bcaf81b-f5c3-4cce-9f74-99ccce6833b8
     	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:01:29 884ms | Successfully signed up for email good.email@gmail.com: AuthResult(authType: AuthType.password, operation: AuthOperation.signUp, email: good.email@gmail.com, uid: 2bcaf81b-f5c3-4cce-9f74-99ccce6833b8, 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.008 sec
    Stdout
     (package:services/auth/password_auth_client.dart:83:11) [PasswordAuthClient.signUp] -> 
     
     [ DEBUG] | 21:01:29 892ms | Sign-up attempt with email: good.email@gmail.com
    
    
     (package:services/auth/password_auth_client.dart:97:11) [PasswordAuthClient.signUp] -> 
     
     [ ERROR] | 21:01:29 893ms | 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.007 sec
    Stdout
     (package:services/auth/password_auth_client.dart:83:11) [PasswordAuthClient.signUp] -> 
     
     [ DEBUG] | 21:01:29 900ms | Sign-up attempt with email: bad.email@gmail.com
    
    
     (package:services/auth/password_auth_client.dart:93:13) [PasswordAuthClient.signUp] -> 
     
     [ DEBUG] | 21:01:29 900ms | Created user with email bad.email@gmail.com: Instance of 'MockUserCredential'
    
    
     (package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 900ms | 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:01:29 900ms | Checking if providerId password is supported
    
    
     (package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:29 900ms | Successfully checked credentials for user bad.email@gmail.com:
     	providerId     = password
     	uid            = 1b8fe2e1-4b03-4083-a25a-9e27596cd59e
     	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:01:29 900ms | Successfully signed up for email bad.email@gmail.com: AuthResult(authType: AuthType.password, operation: AuthOperation.signUp, email: bad.email@gmail.com, uid: 1b8fe2e1-4b03-4083-a25a-9e27596cd59e, isEmailVerified: false, displayName: Mock User)
    Test case:tests unit/core/base_cursor_test.dart BaseCursor DatabaseCursor creation
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/core/base_cursor_test.dart BaseCursor DatabaseCursor with cursor
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/core/base_cursor_test.dart BaseCursor DatabaseCursor with params
    Outcome:Passed
    Duration:0.014 sec
    Test case:tests unit/core/base_cursor_test.dart BaseCursor PageCursor creation
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/core/base_cursor_test.dart BaseCursor PageCursor with outof/pageNum
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/core/base_cursor_test.dart BaseCursor FunctionCursor initial
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/core/base_cursor_test.dart BaseCursor FunctionCursor with lastDocId and lastSortValue
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/core/list/managed_list_state_test.dart ManagedDatabaseIdListState addItem keeps concrete runtime type and does not throw
    Outcome:Passed
    Duration:0.003 sec
    Test case:tests unit/core/list/managed_list_state_test.dart ManagedDatabaseIdListState updateItem, addOrUpdateItem and deleteById keep concrete type
    Outcome:Passed
    Duration:0.003 sec
    Test case:tests unit/core/list/managed_list_state_test.dart ManagedFunctionIdListState addItem and updateItem keep concrete runtime type
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/core/list/managed_list_state_test.dart RegularServiceState.getRecentItems returns items sorted by most recently updated, limited to N
    Outcome:Passed
    Duration:0.003 sec
    Test case:tests unit/core/list/managed_search_list_state_test.dart ManagedSearchListState creation
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/core/list/managed_search_list_state_test.dart ManagedSearchListState params
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/core/list/managed_search_list_state_test.dart ManagedSearchListState addItem
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/core/list/managed_search_list_state_test.dart ManagedSearchListState setSearchItems
    Outcome:Passed
    Duration:0.003 sec
    Test case:tests unit/core/list/managed_search_list_state_test.dart ManagedSearchListState addItem and addItems keep concrete runtime type
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/core/state/base_service_state_test.dart BaseServiceState defaults are unset
    Outcome:Passed
    Duration:0.003 sec
    Test case:tests unit/core/state/base_service_state_test.dart BaseServiceState hasError is true only when error is non-null
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/core/state/base_service_state_test.dart BaseServiceState copyWith kUnset sentinel keeps existing error when omitted
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/core/state/base_service_state_test.dart BaseServiceState copyWith explicit null clears error
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/core/state/base_service_state_test.dart BaseServiceState clearItems resets isLoading and error but keeps pageSize
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/core/state/regular_service_state_test.dart RegularServiceState RegularServiceState defaults starts empty with no error and not loading
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/core/state/regular_service_state_test.dart RegularServiceState filtered items list setFilteredItems populates filteredItems independently of items
    Outcome:Passed
    Duration:0.003 sec
    Test case:tests unit/core/state/regular_service_state_test.dart RegularServiceState filtered items list addMoreFilteredItems appends to filteredItems
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/core/state/regular_service_state_test.dart RegularServiceState filtered items list clearFilteredItems empties filteredItems but keeps items
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/core/state/regular_service_state_test.dart RegularServiceState filtered items list getFilteredItemsAfter skips the given count
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/core/state/regular_service_state_test.dart RegularServiceState clearItems resets items, filteredItems, isLoading and error but keeps pageSize
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/core/state/regular_service_state_test.dart RegularServiceState copyWith error sentinel omitting error keeps the previous value
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/core/state/regular_service_state_test.dart RegularServiceState copyWith error sentinel explicit null clears the error
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/core/state/regular_service_state_test.dart RegularServiceState items list setItems replaces items and derives cursor from docs
    Outcome:Passed
    Duration:0.003 sec
    Test case:tests unit/core/state/regular_service_state_test.dart RegularServiceState items list addMoreItems appends to the existing items
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/core/state/regular_service_state_test.dart RegularServiceState items list getItemById finds an item only in the items list
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/core/state/regular_service_state_test.dart RegularServiceState items list addItem, replaceItem and removeItem mutate the items list
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/core/state/regular_service_state_test.dart RegularServiceState items list getItemsAfter skips the given count
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/core/state/regular_service_state_test.dart RegularServiceState items list getRecentItems sorts by updatedAtDt descending and respects limit
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/currency/currency_converter_test.dart CurrencyConverter: getRate returns correct exchange rate
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/currency/currency_converter_test.dart CurrencyConverter: basic conversion
    Outcome:Passed
    Duration:0.002 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.001 sec
    Test case:tests unit/data/pledge_create_data_test.dart pledge_create_data_tests UserPledgeData UserPledgeData creation
    Outcome:Passed
    Duration:0.004 sec
    Test case:tests unit/data/pledge_create_data_test.dart pledge_create_data_tests UserPledgeData UserPledgeData when
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/data/pledge_create_data_test.dart pledge_create_data_tests GroupPledgeData GroupPledgeData creation
    Outcome:Passed
    Duration:0.003 sec
    Test case:tests unit/data/pledge_create_data_test.dart pledge_create_data_tests GroupPledgeData GroupPledgeData when
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/data/pledge_payment_data_test.dart pledge_payment_data_test PledgePaymentData PledgePaymentData creation
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/data/pledge_payment_data_test.dart pledge_payment_data_test PledgePaymentData PledgePaymentData when
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/function/app_callable_error_test.dart CallableFunctionError: exception constructor
    Outcome:Passed
    Duration:0.003 sec
    Test case:tests unit/function/app_callable_error_test.dart CallableFunctionError: unknownError constructor
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/function/app_callable_error_test.dart CallableFunctionError: parseError
    Outcome:Passed
    Duration:0.001 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.002 sec
    Test case:tests unit/function/app_function_service_test.dart AppFunctionService: custom timeout
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/function/app_function_service_test.dart AppFunctionService: custom FirebaseFunctions instance
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/function/app_function_service_test.dart AppFunctionService: executeCallable returns ErrorSchema on exception
    Outcome:Passed
    Duration:0.005 sec
    Stdout
     (package:services/function/app_function_service.dart:49:11) [AppFunctionService.executeCallable] -> 
     
     [ WARNING] | 21:01:30 33ms | Calling Firebase function: testFunction with args: null and timeout: 0:00:50.000000
    
    
     (package:services/function/app_function_service.dart:65:11) [AppFunctionService.executeCallable] -> 
     
     [ ERROR] | 21:01:30 33ms | 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.006 sec
    Stdout
     (package:services/function/app_function_service.dart:49:11) [AppFunctionService.executeCallable] -> 
     
     [ WARNING] | 21:01:30 37ms | Calling Firebase function: testFunction with args: null and timeout: 0:00:50.000000
    
    
     (package:services/function/app_function_service.dart:60:13) [AppFunctionService.executeCallable] -> 
     
     [ DEBUG] | 21:01:30 38ms | Successfully called Firebase function: testFunction
    
    
     (package:services/function/app_function_service.dart:164:11) [AppFunctionService._parseEitherResponse] -> 
     
     [ DEBUG] | 21:01:30 39ms | 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.008 sec
    Stdout
     (package:services/function/app_function_service.dart:49:11) [AppFunctionService.executeCallable] -> 
     
     [ WARNING] | 21:01:30 45ms | 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:60:13) [AppFunctionService.executeCallable] -> 
     
     [ DEBUG] | 21:01:30 45ms | Successfully called Firebase function: c_confirm_pin
    
    
     (package:services/function/app_function_service.dart:164:11) [AppFunctionService._parseEitherResponse] -> 
     
     [ DEBUG] | 21:01:30 46ms | 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.006 sec
    Stdout
     (package:services/function/app_function_service.dart:49:11) [AppFunctionService.executeCallable] -> 
     
     [ WARNING] | 21:01:30 52ms | 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:60:13) [AppFunctionService.executeCallable] -> 
     
     [ DEBUG] | 21:01:30 53ms | Successfully called Firebase function: c_confirm_pin
    
    
     (package:services/function/app_function_service.dart:164:11) [AppFunctionService._parseEitherResponse] -> 
     
     [ DEBUG] | 21:01:30 53ms | 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.006 sec
    Stdout
     (package:services/function/app_function_service.dart:49:11) [AppFunctionService.executeCallable] -> 
     
     [ WARNING] | 21:01:30 59ms | 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:60:13) [AppFunctionService.executeCallable] -> 
     
     [ DEBUG] | 21:01:30 59ms | Successfully called Firebase function: c_generate_pin
    
    
     (package:services/function/app_function_service.dart:164:11) [AppFunctionService._parseEitherResponse] -> 
     
     [ DEBUG] | 21:01:30 59ms | 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.005 sec
    Stdout
     (package:services/function/app_function_service.dart:49:11) [AppFunctionService.executeCallable] -> 
     
     [ WARNING] | 21:01:30 64ms | 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:60:13) [AppFunctionService.executeCallable] -> 
     
     [ DEBUG] | 21:01:30 64ms | Successfully called Firebase function: c_generate_pin
    
    
     (package:services/function/app_function_service.dart:164:11) [AppFunctionService._parseEitherResponse] -> 
     
     [ DEBUG] | 21:01:30 64ms | 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.014 sec
    Test case:tests unit/function/search/search_results_test.dart SearchResults/SearchResult: SearchResult: fromJson for user
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/function/search/search_results_test.dart SearchResults/SearchResult: SearchResult: fromUser for group
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/function/search/search_results_test.dart SearchResults/SearchResult: SearchResult: fromJson for dare
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/function/search/search_results_test.dart SearchResults/SearchResult: SearchResult: fromJson for group dare
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/function/search/search_results_test.dart SearchResults/SearchResult: SearchResult: fromJson for friend
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/geo/data/geo_location_model_test.dart GeoLocationModel creation
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/geo/data/geo_location_model_test.dart GeoLocationModel fromJson should parse JSON correctly
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/geo/data/ip_lookup_model_test.dart IpLookupModel creation
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/geo/data/ip_lookup_model_test.dart IpLookupModel fromJson should parse JSON correctly
    Outcome:Passed
    Duration:0.003 sec
    Test case:tests unit/geo/geoapify_client_test.dart GeoApifyClient: getLocationFromIp returns data
    Outcome:Passed
    Duration:0.024 sec
    Stdout
     (package:services/geo/geoapify_client.dart:78:67) [GeoApifyClient.getLocationFromIp] -> 
     
     [ BUG] | 21:01:30 107ms | GuiConfig should be registered during setup, falling back to defaults.
    
    
     (package:services/config/gui_config.dart:261:9) [GuiConfig._refreshIfRequired] -> 
     
     [ CONFIG] | 21:01:30 111ms | Refreshing GUI config
    
    
     (package:services/config/gui_config.dart:267:11) [GuiConfig._refreshIfRequired] -> 
     
     [ DEBUG] | 21:01:30 111ms | Refreshing GUI config from http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config
    
    
     (package:services/geo/geoapify_client.dart:83:13) [GeoApifyClient.getLocationFromIp] -> 
     
     [ DEBUG] | 21:01:30 117ms | Requesting GeoApify IP geocode with URL: https://api.geoapify.com/v1/ipinfo?
    
    
     (package:services/geo/geoapify_client.dart:327:9) [MockGeoApifyClient._execute] -> 
     
     [ DEBUG] | 21:01:30 117ms | MockGeoApifyClient returning mock result for URI: https://api.geoapify.com/v1/ipinfo?apiKey=e8488c88fb54474296de5e98965410cb
    
    
     (package:services/geo/geoapify_client.dart:329:11) [MockGeoApifyClient._execute] -> 
     
     [ DEBUG] | 21:01:30 118ms | Returning mock IP lookup result
    
    
     (package:services/config/gui_config.dart:283:11) [GuiConfig._refreshIfRequired] -> 
     
     [ ERROR] | 21:01:30 119ms | Failed to pre-load config from: http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config: NoSuchMethodError: Class '_FakeHttpClient' has no instance method 'close' with matching arguments.
     Receiver: Instance of '_FakeHttpClient'
     Tried calling: close(force: true)
     Found: close({bool force}) => void
    
    
     (package:services/geo/geoapify_client.dart:94:13) [GeoApifyClient.getLocationFromIp] -> 
     
     [ DEBUG] | 21:01:30 119ms | 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:105:13) [GeoApifyClient.getLocationFromIp] -> 
     
     [ DEBUG] | 21:01:30 120ms | 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.022 sec
    Stdout
     (package:services/config/gui_config.dart:261:9) [GuiConfig._refreshIfRequired] -> 
     
     [ CONFIG] | 21:01:30 132ms | Refreshing GUI config
    
    
     (package:services/config/gui_config.dart:267:11) [GuiConfig._refreshIfRequired] -> 
     
     [ DEBUG] | 21:01:30 133ms | Refreshing GUI config from http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config
    
    
     (package:services/geo/geoapify_client.dart:83:13) [GeoApifyClient.getLocationFromIp] -> 
     
     [ DEBUG] | 21:01:30 133ms | Requesting GeoApify IP geocode with URL: https://api.geoapify.com/v1/ipinfo?
    
    
     (package:services/geo/geoapify_client.dart:327:9) [MockGeoApifyClient._execute] -> 
     
     [ DEBUG] | 21:01:30 133ms | MockGeoApifyClient returning mock result for URI: https://api.geoapify.com/v1/ipinfo?apiKey=e8488c88fb54474296de5e98965410cb
    
    
     (package:services/geo/geoapify_client.dart:329:11) [MockGeoApifyClient._execute] -> 
     
     [ DEBUG] | 21:01:30 133ms | Returning mock IP lookup result
    
    
     (package:services/config/gui_config.dart:283:11) [GuiConfig._refreshIfRequired] -> 
     
     [ ERROR] | 21:01:30 133ms | Failed to pre-load config from: http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config: NoSuchMethodError: Class '_FakeHttpClient' has no instance method 'close' with matching arguments.
     Receiver: Instance of '_FakeHttpClient'
     Tried calling: close(force: true)
     Found: close({bool force}) => void
    
    
     (package:services/geo/geoapify_client.dart:94:13) [GeoApifyClient.getLocationFromIp] -> 
     
     [ DEBUG] | 21:01:30 134ms | 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:105:13) [GeoApifyClient.getLocationFromIp] -> 
     
     [ DEBUG] | 21:01:30 134ms | 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/config/gui_config.dart:261:9) [GuiConfig._refreshIfRequired] -> 
     
     [ CONFIG] | 21:01:30 134ms | Refreshing GUI config
    
    
     (package:services/config/gui_config.dart:267:11) [GuiConfig._refreshIfRequired] -> 
     
     [ DEBUG] | 21:01:30 135ms | Refreshing GUI config from http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config
    
    
     (package:services/geo/geoapify_client.dart:227:13) [GeoApifyClient.reverseGeoCode] -> 
     
     [ DEBUG] | 21:01:30 135ms | 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:327:9) [MockGeoApifyClient._execute] -> 
     
     [ DEBUG] | 21:01:30 135ms | 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:337:11) [MockGeoApifyClient._execute] -> 
     
     [ DEBUG] | 21:01:30 135ms | Returning mock location result
    
    
     (package:services/config/gui_config.dart:283:11) [GuiConfig._refreshIfRequired] -> 
     
     [ ERROR] | 21:01:30 136ms | Failed to pre-load config from: http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config: NoSuchMethodError: Class '_FakeHttpClient' has no instance method 'close' with matching arguments.
     Receiver: Instance of '_FakeHttpClient'
     Tried calling: close(force: true)
     Found: close({bool force}) => void
    
    
     (package:services/geo/geoapify_client.dart:238:13) [GeoApifyClient.reverseGeoCode] -> 
     
     [ DEBUG] | 21:01:30 136ms | 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:243:13) [GeoApifyClient.reverseGeoCode] -> 
     
     [ DEBUG] | 21:01:30 136ms | 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:253:17) [GeoApifyClient.reverseGeoCode] -> 
     
     [ DEBUG] | 21:01:30 136ms | 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.014 sec
    Stdout
     (package:services/config/gui_config.dart:261:9) [GuiConfig._refreshIfRequired] -> 
     
     [ CONFIG] | 21:01:30 153ms | Refreshing GUI config
    
    
     (package:services/config/gui_config.dart:267:11) [GuiConfig._refreshIfRequired] -> 
     
     [ DEBUG] | 21:01:30 153ms | Refreshing GUI config from http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config
    
    
     (package:services/geo/geoapify_client.dart:169:13) [GeoApifyClient._search] -> 
     
     [ DEBUG] | 21:01:30 153ms | 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:327:9) [MockGeoApifyClient._execute] -> 
     
     [ DEBUG] | 21:01:30 153ms | 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:337:11) [MockGeoApifyClient._execute] -> 
     
     [ DEBUG] | 21:01:30 155ms | Returning mock location result
    
    
     (package:services/config/gui_config.dart:283:11) [GuiConfig._refreshIfRequired] -> 
     
     [ ERROR] | 21:01:30 155ms | Failed to pre-load config from: http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config: NoSuchMethodError: Class '_FakeHttpClient' has no instance method 'close' with matching arguments.
     Receiver: Instance of '_FakeHttpClient'
     Tried calling: close(force: true)
     Found: close({bool force}) => void
    
    
     (package:services/geo/geoapify_client.dart:180:13) [GeoApifyClient._search] -> 
     
     [ DEBUG] | 21:01:30 155ms | 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:185:13) [GeoApifyClient._search] -> 
     
     [ DEBUG] | 21:01:30 155ms | 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:202:17) [GeoApifyClient._search.<anonymous] -> 
     
     [ DEBUG] | 21:01:30 155ms | 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.01 sec
    Stdout
     (package:services/config/gui_config.dart:261:9) [GuiConfig._refreshIfRequired] -> 
     
     [ CONFIG] | 21:01:30 166ms | Refreshing GUI config
    
    
     (package:services/config/gui_config.dart:267:11) [GuiConfig._refreshIfRequired] -> 
     
     [ DEBUG] | 21:01:30 167ms | Refreshing GUI config from http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config
    
    
     (package:services/geo/geoapify_client.dart:227:13) [GeoApifyClient.reverseGeoCode] -> 
     
     [ DEBUG] | 21:01:30 167ms | 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:327:9) [MockGeoApifyClient._execute] -> 
     
     [ DEBUG] | 21:01:30 167ms | 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:337:11) [MockGeoApifyClient._execute] -> 
     
     [ DEBUG] | 21:01:30 167ms | Returning mock location result
    
    
     (package:services/config/gui_config.dart:283:11) [GuiConfig._refreshIfRequired] -> 
     
     [ ERROR] | 21:01:30 167ms | Failed to pre-load config from: http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config: NoSuchMethodError: Class '_FakeHttpClient' has no instance method 'close' with matching arguments.
     Receiver: Instance of '_FakeHttpClient'
     Tried calling: close(force: true)
     Found: close({bool force}) => void
    
    
     (package:services/geo/geoapify_client.dart:238:13) [GeoApifyClient.reverseGeoCode] -> 
     
     [ DEBUG] | 21:01:30 167ms | 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:243:13) [GeoApifyClient.reverseGeoCode] -> 
     
     [ DEBUG] | 21:01:30 167ms | 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:253:17) [GeoApifyClient.reverseGeoCode] -> 
     
     [ DEBUG] | 21:01:30 168ms | 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.004 sec
    Stdout
     (package:services/link/deep_link_factory.dart:67:11) [DeepLinkFactory._create] -> 
     
     [ DEBUG] | 21:01:30 178ms | 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.005 sec
    Stdout
     (package:services/link/deep_link_factory.dart:67:11) [DeepLinkFactory._create] -> 
     
     [ DEBUG] | 21:01:30 181ms | 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.002 sec
    Stdout
     (package:services/permission/permission_checker.dart:88:13) [PermissionChecker.hasStoragePermission] -> 
     
     [ DEBUG] | 21:01:30 187ms | Storage permission already granted, skipping request
    Test case:tests unit/permission/permission_checker_test.dart PermissionChecker: hasStoragePermission: Storage NOT ok
    Outcome:Passed
    Duration:0.003 sec
    Stdout
     (package:services/permission/permission_checker.dart:101:11) [PermissionChecker.hasStoragePermission] -> 
     
     [ DEBUG] | 21:01:30 190ms | Storage permission obtained status: PermissionStatus.limited
    
    
     (package:services/permission/permission_checker.dart:108:11) [PermissionChecker.hasStoragePermission] -> 
     
     [ WARNING] | 21:01:30 190ms | Storage permission denied
    Test case:tests unit/permission/permission_checker_test.dart PermissionChecker: hasCameraPermission: Camera ok
    Outcome:Passed
    Duration:0.002 sec
    Stdout
     (package:services/permission/permission_checker.dart:117:13) [PermissionChecker.hasCameraPermission] -> 
     
     [ DEBUG] | 21:01:30 194ms | Camera permission already granted, skipping request
    Test case:tests unit/permission/permission_checker_test.dart PermissionChecker: hasCameraPermission: Camera NOT ok
    Outcome:Passed
    Duration:0.003 sec
    Stdout
     (package:services/permission/permission_checker.dart:126:11) [PermissionChecker.hasCameraPermission] -> 
     
     [ DEBUG] | 21:01:30 196ms | Camera permission obtained status: PermissionStatus.denied, Microphone permission obtained status: PermissionStatus.restricted
    
    
     (package:services/permission/permission_checker.dart:136:11) [PermissionChecker.hasCameraPermission] -> 
     
     [ WARNING] | 21:01:30 196ms | Camera/microphone permission denied
    Test case:tests unit/restart/crash_restarter_test.dart CrashRestarter: initial, not within restart
    Outcome:Passed
    Duration:0.003 sec
    Stdout
     (package:services/user/crash_restarter.dart:67:11) [CrashRestarter.shouldRestart] -> 
     
     [ DEBUG] | 21:01:30 200ms | App is NOT eligible for restart (last restart at 2026-11-02 21:01:30.200695, cutoff at 2026-11-03 21:01:30.200695, now 2026-11-02 21:01:30.200695)
    Test case:tests unit/restart/crash_restarter_test.dart CrashRestarter: initial, no context
    Outcome:Passed
    Duration:0.003 sec
    Stdout
     (package:services/user/crash_restarter.dart:75:11) [CrashRestarter.tryRestart] -> 
     
     [ WARNING] | 21:01:30 203ms | Unable to restart app, context is null
    Test case:tests unit/restart/crash_restarter_test.dart CrashRestarter: within restart
    Outcome:Passed
    Duration:0.002 sec
    Stdout
     (package:services/user/crash_restarter.dart:67:11) [CrashRestarter.shouldRestart] -> 
     
     [ DEBUG] | 21:01:30 205ms | App is NOT eligible for restart (last restart at 2026-11-02 09:01:30.205696, cutoff at 2026-11-03 09:01:30.205696, now 2026-11-02 21:01:30.205696)
    Test case:tests unit/restart/crash_restarter_test.dart CrashRestarter: not within restart
    Outcome:Passed
    Duration:0.003 sec
    Stdout
     (package:services/user/crash_restarter.dart:67:11) [CrashRestarter.shouldRestart] -> 
     
     [ DEBUG] | 21:01:30 208ms | App is eligible for restart (last restart at 2026-10-31 21:01:30.208698, cutoff at 2026-11-01 21:01:30.208698, now 2026-11-02 21:01:30.208698)
    Test case:tests unit/restart/crash_restarter_test.dart CrashRestarter: within restart, context
    Outcome:Passed
    Duration:0.003 sec
    Stdout
     (package:services/user/crash_restarter.dart:67:11) [CrashRestarter.shouldRestart] -> 
     
     [ DEBUG] | 21:01:30 211ms | App is eligible for restart (last restart at 2026-11-01 20:01:30.210700, cutoff at 2026-11-02 20:01:30.210700, now 2026-11-02 21:01:30.211698)
    
    
     (package:services/user/crash_restarter.dart:94:9) [CrashRestarter.tryRestart] -> 
     
     [ WARNING] | 21:01:30 211ms | Restarting app with last restart time 2026-11-02 21:01:30.211698
    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
    Stdout
     (package:services/retry/retry_future.dart:105:9) [new] -> 
     
     [ INFO] | 21:01:30 216ms | RetryFuture initialized with options: Instance of 'RetryOptions'
    
    
     (package:services/retry/retry_future.dart:232:11) [RetryFuture.tryRetry] -> 
     
     [ DEBUG] | 21:01:30 216ms | 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:0.999 sec
    Stdout
     (package:services/retry/retry_future.dart:105:9) [new] -> 
     
     [ INFO] | 21:01:30 220ms | RetryFuture initialized with options: Instance of 'RetryOptions'
    
    
     (package:services/retry/retry_future.dart:232:11) [RetryFuture.tryRetry] -> 
     
     [ DEBUG] | 21:01:30 220ms | Attempt 1/3 for operation.
    
    
     (package:services/retry/retry_future.dart:282:9) [RetryFuture._delayNextCheck] -> 
     
     [ DEBUG] | 21:01:30 221ms | Waiting for 0:00:00.362657 before next attempt (current attempt: 1).
    
    
     (package:services/retry/retry_future.dart:232:11) [RetryFuture.tryRetry] -> 
     
     [ DEBUG] | 21:01:30 585ms | Attempt 2/3 for operation.
    
    
     (package:services/retry/retry_future.dart:282:9) [RetryFuture._delayNextCheck] -> 
     
     [ DEBUG] | 21:01:30 585ms | Waiting for 0:00:00.628430 before next attempt (current attempt: 2).
    
    
     (package:services/retry/retry_future.dart:232:11) [RetryFuture.tryRetry] -> 
     
     [ DEBUG] | 21:01:31 216ms | Attempt 3/3 for operation.
    
    
     (package:services/retry/retry_future.dart:292:9) [RetryFuture._throw] -> 
     
     [ ERROR] | 21:01:31 216ms | 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
    Stdout
     (package:services/retry/retry_future.dart:105:9) [new] -> 
     
     [ INFO] | 21:01:31 221ms | RetryFuture initialized with options: Instance of 'RetryOptions'
    
    
     (package:services/retry/retry_future.dart:154:9) [RetryFuture._networkListener] -> 
     
     [ INFO] | 21:01:31 323ms | Network status changed to: NetworkStatus.online (was online: false)
    
    
     (package:services/retry/retry_future.dart:161:11) [RetryFuture._networkListener] -> 
     
     [ INFO] | 21:01:31 323ms | Network back online.
    
    
     (package:services/retry/retry_future.dart:165:13) [RetryFuture._networkListener] -> 
     
     [ DEBUG] | 21:01:31 324ms | Network back online, completing pending network ready completer.
    
    
     (package:services/retry/retry_future.dart:232:11) [RetryFuture.tryRetry] -> 
     
     [ DEBUG] | 21:01:31 324ms | Attempt 1/3 for operation.
    Test case:tests unit/retry/retry_future_test.dart RetryFuture Tests should respect retryIf condition
    Outcome:Passed
    Duration:0.005 sec
    Stdout
     (package:services/retry/retry_future.dart:105:9) [new] -> 
     
     [ INFO] | 21:01:31 329ms | RetryFuture initialized with options: Instance of 'RetryOptions'
    
    
     (package:services/retry/retry_future.dart:232:11) [RetryFuture.tryRetry] -> 
     
     [ DEBUG] | 21:01:31 329ms | Attempt 1/3 for operation.
    
    
     (package:services/retry/retry_future.dart:292:9) [RetryFuture._throw] -> 
     
     [ ERROR] | 21:01:31 329ms | 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.259 sec
    Stdout
     (package:services/retry/retry_future.dart:105:9) [new] -> 
     
     [ INFO] | 21:01:31 334ms | RetryFuture initialized with options: Instance of 'RetryOptions'
    
    
     (package:services/retry/retry_future.dart:232:11) [RetryFuture.tryRetry] -> 
     
     [ DEBUG] | 21:01:31 334ms | Attempt 1/5 for operation.
    
    
     (package:services/retry/retry_future.dart:282:9) [RetryFuture._delayNextCheck] -> 
     
     [ DEBUG] | 21:01:31 334ms | Waiting for 0:00:00.433894 before next attempt (current attempt: 1).
    
    
     (package:services/retry/retry_future.dart:232:11) [RetryFuture.tryRetry] -> 
     
     [ DEBUG] | 21:01:31 770ms | Attempt 2/5 for operation.
    
    
     (package:services/retry/retry_future.dart:282:9) [RetryFuture._delayNextCheck] -> 
     
     [ DEBUG] | 21:01:31 770ms | Waiting for 0:00:00.818522 before next attempt (current attempt: 2).
    
    
     (package:services/retry/retry_future.dart:232:11) [RetryFuture.tryRetry] -> 
     
     [ DEBUG] | 21:01:32 590ms | 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
    Stdout
     (package:services/retry/retry_future.dart:105:9) [new] -> 
     
     [ INFO] | 21:01:32 593ms | RetryFuture initialized with options: Instance of 'RetryOptions'
    
    
     (package:services/retry/retry_future.dart:292:9) [RetryFuture._throw] -> 
     
     [ ERROR] | 21:01:32 594ms | 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.003 sec
    Stdout
     (package:services/retry/retry_future.dart:105:9) [new] -> 
     
     [ INFO] | 21:01:32 597ms | RetryFuture initialized with options: Instance of 'RetryOptions'
    
    
     (package:services/retry/retry_future.dart:232:11) [RetryFuture.tryRetry] -> 
     
     [ DEBUG] | 21:01:32 597ms | Attempt 1/3 for operation.
    Test case:tests unit/service/auth/auth_service_state_test.dart AuthServiceState should initialize with default values
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/service/auth/auth_service_state_test.dart AuthServiceState should initialize with user model
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/service/auth/auth_service_state_test.dart AuthServiceState should copy with new values
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/service/auth/auth_service_state_test.dart AuthServiceState should handle error state
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/service/auth/auth_service_state_test.dart AuthServiceState should return isEmailVerified correctly
    Outcome:Passed
    Duration:0.002 sec
    Stdout
     (package:services/service/auth/auth_service_state.dart:66:13) [AuthServiceState.isEmailVerified] -> 
     
     [ DEBUG] | 21:01:32 609ms | VERIFIED jess.mayer@gmail.com: no issues found
    Test case:tests unit/service/auth/auth_service_state_test.dart AuthServiceState should return isEmailVerified false when no user (anonymous)
    Outcome:Passed
    Duration:0.002 sec
    Stdout
     (package:services/service/auth/auth_service_state.dart:53:11) [AuthServiceState.isEmailVerified] -> 
     
     [ WARNING] | 21:01:32 611ms | NOT VERIFIED: No user, cannot be verified
    Test case:tests unit/service/auth/auth_service_state_test.dart AuthServiceState should return isEmailVerified false when pinCode exists
    Outcome:Passed
    Duration:0.002 sec
    Stdout
     (package:services/service/auth/auth_service_state.dart:71:9) [AuthServiceState.isEmailVerified] -> 
     
     [ INFO] | 21:01:32 613ms | NOT VERIFIED tomas-skiles@hotmail.com: reason=Pin code exists.
    Test case:tests unit/service/auth/auth_service_state_test.dart AuthServiceState resetPinCode on a verified user should return isEmailVerified true
    Outcome:Passed
    Duration:0.003 sec
    Stdout
     (package:services/service/auth/auth_service_state.dart:71:9) [AuthServiceState.isEmailVerified] -> 
     
     [ INFO] | 21:01:32 616ms | NOT VERIFIED rita.dare@gmail.com: reason=Pin code exists.
    
    
     (package:services/service/auth/auth_service_state.dart:66:13) [AuthServiceState.isEmailVerified] -> 
     
     [ DEBUG] | 21:01:32 616ms | VERIFIED rita.dare@gmail.com: no issues found
    Test case:tests unit/service/auth/auth_service_state_test.dart AuthServiceState should reset pinCode when resetPinCode is true
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/service/auth/auth_service_test.dart AuthService AuthService Tests Initialization Tests should initialize with anonymous state
    Outcome:Passed
    Duration:0.03 sec
    Stdout
     (package:services/service/auth/auth_service.dart:115:9) [AuthService.build] -> 
     
     [ WARNING] | 21:01:32 651ms | AuthService initialized
    Test case:tests unit/service/auth/auth_service_test.dart AuthService AuthService Tests Initialization Tests should support ProviderScope
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/service/auth/auth_service_test.dart AuthService AuthService Tests Initialization Tests should support UncontrolledProviderScope
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/service/auth/auth_service_test.dart AuthService AuthService Tests Authentication Tests should set anonymous state successfully
    Outcome:Passed
    Duration:0.007 sec
    Stdout
     (package:services/service/auth/auth_service.dart:115:9) [AuthService.build] -> 
     
     [ WARNING] | 21:01:32 673ms | AuthService initialized
    
    
     (package:services/service/auth/auth_service.dart:648:9) [AuthService._setAnonymous] -> 
     
     [ INFO] | 21:01:32 675ms | User set to anonymous
    Test case:tests unit/service/auth/auth_service_test.dart AuthService AuthService Tests Authentication Tests should handle authentication state properly
    Outcome:Passed
    Duration:0.003 sec
    Stdout
     (package:services/service/auth/auth_service.dart:115:9) [AuthService.build] -> 
     
     [ WARNING] | 21:01:32 680ms | AuthService initialized
    Test case:tests unit/service/auth/auth_service_test.dart AuthService AuthService Tests Authentication Tests should handle sign out properly
    Outcome:Passed
    Duration:0.012 sec
    Stdout
     (package:services/service/auth/auth_service.dart:115:9) [AuthService.build] -> 
     
     [ WARNING] | 21:01:32 684ms | AuthService initialized
    
    
     (package:services/user/app_user_store.dart:81:11) [AppUserStore.deleteAuth] -> 
     
     [ DEBUG] | 21:01:32 686ms | 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:01:32 687ms | 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/base_storage.dart:246:7) [_debug] -> 
     
     [ DEBUG] | 21:01:32 690ms | READ key user with error MissingPluginException(No implementation found for method containsKey on channel plugins.it_nomads.com/flutter_secure_storage)
    
    
     (package:core/store/base_storage.dart:246:7) [_debug] -> 
     
     [ DEBUG] | 21:01:32 690ms | WRITE key user with value {"email":null,"password":null,"authType":null,"lastRestart":null,"lastActive":null} with error MissingPluginException(No implementation found for method write on channel plugins.it_nomads.com/flutter_secure_storage)
    
    
     (package:services/service/auth/auth_service.dart:648:9) [AuthService._setAnonymous] -> 
     
     [ INFO] | 21:01:32 691ms | User set to anonymous
    Test case:tests unit/service/auth/auth_service_test.dart AuthService AuthService Tests User Management Tests should update user successfully when authenticated
    Outcome:Passed
    Duration:0.017 sec
    Stdout
     (package:services/service/auth/auth_service.dart:115:9) [AuthService.build] -> 
     
     [ WARNING] | 21:01:32 696ms | AuthService initialized
    
    
     (package:store/db/app_database.dart:239:11) [AppDatabase.write] -> 
     
     [ DEBUG] | 21:01:32 702ms | Executing write operation: StoredOpType.update for StoredOpType.update in FirestoreCollections.user
    
    
     (package:store/db/app_database.dart:598:11) [AppDatabase._update] -> 
     
     [ DEBUG] | 21:01:32 702ms | 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/service/auth/auth_service_test.dart AuthService AuthService Tests User Management Tests should not update user when not authenticated
    Outcome:Passed
    Duration:0.004 sec
    Stdout
     (package:services/service/auth/auth_service.dart:115:9) [AuthService.build] -> 
     
     [ WARNING] | 21:01:32 714ms | AuthService initialized
    
    
     (package:services/service/auth/auth_service.dart:474:11) [AuthService.updateUser] -> 
     
     [ WARNING] | 21:01:32 714ms | Cannot update user - no user currently authenticated
    Test case:tests unit/service/auth/auth_service_test.dart AuthService AuthService Tests User Management Tests should refresh user data successfully
    Outcome:Passed
    Duration:0.006 sec
    Stdout
     (package:services/service/auth/auth_service.dart:115:9) [AuthService.build] -> 
     
     [ WARNING] | 21:01:32 718ms | AuthService initialized
    
    
     (package:services/service/auth/auth_service.dart:507:11) [AuthService.refreshUser] -> 
     
     [ INFO] | 21:01:32 718ms | Refreshing user data for: test@example.com
    
    
     (package:services/service/auth/auth_service.dart:509:11) [AuthService.refreshUser] -> 
     
     [ INFO] | 21:01:32 719ms | User refreshed successfully: test@example.com
    Test case:tests unit/service/auth/auth_service_test.dart AuthService AuthService Tests User Management Tests should not refresh user without ID
    Outcome:Passed
    Duration:0.005 sec
    Stdout
     (package:services/service/auth/auth_service.dart:115:9) [AuthService.build] -> 
     
     [ WARNING] | 21:01:32 723ms | AuthService initialized
    
    
     (package:services/service/auth/auth_service.dart:507:11) [AuthService.refreshUser] -> 
     
     [ INFO] | 21:01:32 724ms | Refreshing user data for: test@example.com
    
    
     (package:services/service/auth/auth_service.dart:509:11) [AuthService.refreshUser] -> 
     
     [ INFO] | 21:01:32 724ms | User refreshed successfully: test@example.com
    Test case:tests unit/service/auth/auth_service_test.dart AuthService AuthService Tests State Management Tests should clear errors when requested
    Outcome:Passed
    Duration:0.003 sec
    Stdout
     (package:services/service/auth/auth_service.dart:115:9) [AuthService.build] -> 
     
     [ WARNING] | 21:01:32 728ms | AuthService initialized
    Test case:tests unit/service/auth/auth_service_test.dart AuthService AuthService Tests State Management Tests should handle loading states correctly during user updates
    Outcome:Passed
    Duration:0.005 sec
    Stdout
     (package:services/service/auth/auth_service.dart:115:9) [AuthService.build] -> 
     
     [ WARNING] | 21:01:32 732ms | AuthService initialized
    
    
     (package:store/db/app_database.dart:239:11) [AppDatabase.write] -> 
     
     [ DEBUG] | 21:01:32 732ms | Executing write operation: StoredOpType.update for StoredOpType.update in FirestoreCollections.user
    
    
     (package:store/db/app_database.dart:598:11) [AppDatabase._update] -> 
     
     [ DEBUG] | 21:01:32 733ms | 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/service/auth/auth_service_test.dart AuthService AuthService Tests State Management Tests should maintain user data through state transitions
    Outcome:Passed
    Duration:0.003 sec
    Stdout
     (package:services/service/auth/auth_service.dart:115:9) [AuthService.build] -> 
     
     [ WARNING] | 21:01:32 737ms | AuthService initialized
    Test case:tests unit/service/auth/auth_service_test.dart AuthService AuthService Tests Convenience Providers Tests auth convenience providers should return correct state
    Outcome:Passed
    Duration:0.016 sec
    Stdout
     (package:services/service/auth/auth_service.dart:115:9) [AuthService.build] -> 
     
     [ WARNING] | 21:01:32 741ms | AuthService initialized
    
    
     (package:services/service/auth/auth_service_state.dart:53:11) [AuthServiceState.isEmailVerified] -> 
     
     [ WARNING] | 21:01:32 748ms | NOT VERIFIED: No user, cannot be verified
    
    
     (package:services/service/auth/auth_service_state.dart:66:13) [AuthServiceState.isEmailVerified] -> 
     
     [ DEBUG] | 21:01:32 751ms | VERIFIED test@example.com: no issues found
    Test case:tests unit/service/auth/auth_service_test.dart AuthService AuthService Tests Convenience Providers Tests current user convenience providers should work correctly
    Outcome:Passed
    Duration:0.009 sec
    Stdout
     (package:services/service/auth/auth_service.dart:115:9) [AuthService.build] -> 
     
     [ WARNING] | 21:01:32 757ms | AuthService initialized
    Test case:tests unit/service/auth/auth_service_test.dart AuthService AuthService Tests Integration Tests should work with other auth-related providers
    Outcome:Passed
    Duration:0.004 sec
    Stdout
     (package:services/service/auth/auth_service.dart:115:9) [AuthService.build] -> 
     
     [ WARNING] | 21:01:32 766ms | AuthService initialized
    Test case:tests unit/service/auth/auth_service_test.dart AuthService AuthService Tests Integration Tests should maintain consistency across all providers
    Outcome:Passed
    Duration:0.004 sec
    Stdout
     (package:services/service/auth/auth_service.dart:115:9) [AuthService.build] -> 
     
     [ WARNING] | 21:01:32 770ms | AuthService initialized
    Test case:tests unit/service/auth/auth_service_test.dart AuthService AuthService Tests SignUp Flows should sign up.
    Outcome:Passed
    Duration:0.017 sec
    Stdout
     (package:services/service/auth/auth_service.dart:115:9) [AuthService.build] -> 
     
     [ WARNING] | 21:01:32 775ms | AuthService initialized
    
    
     (package:services/auth/auth_client_factory.dart:42:11) [AuthClientFactory.create] -> 
     
     [ DEBUG] | 21:01:32 776ms | 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:01:32 776ms | No user is currently signed in.
    
    
     (package:services/auth/password_auth_client.dart:83:11) [PasswordAuthClient.signUp] -> 
     
     [ DEBUG] | 21:01:32 777ms | Sign-up attempt with email: test@example.com
    
    
     (package:services/auth/password_auth_client.dart:93:13) [PasswordAuthClient.signUp] -> 
     
     [ DEBUG] | 21:01:32 777ms | Created user with email test@example.com: Instance of 'MockUserCredential'
    
    
     (package:services/auth/auth_client.dart:148:9) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:32 777ms | 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:01:32 777ms | Checking if providerId password is supported
    
    
     (package:services/auth/auth_client.dart:210:11) [AuthClient.checkCred] -> 
     
     [ DEBUG] | 21:01:32 777ms | Successfully checked credentials for user test@example.com:
     	providerId     = password
     	uid            = 1471655f-2375-4716-a82a-be57283744c1
     	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:01:32 777ms | Successfully signed up for email test@example.com: AuthResult(authType: AuthType.password, operation: AuthOperation.signUp, email: test@example.com, uid: 1471655f-2375-4716-a82a-be57283744c1, isEmailVerified: true, displayName: Mock User)
    
    
     (package:services/service/auth/auth_service.dart:690:13) [AuthService._convertAuthResultToUserAndUpdateDb] -> 
     
     [ INFO] | 21:01:32 778ms | New user signed up: test@example.com
    
    
     (package:store/db/app_database.dart:239:11) [AppDatabase.write] -> 
     
     [ DEBUG] | 21:01:32 778ms | Executing write operation: StoredOpType.create for StoredOpType.create in FirestoreCollections.user
    
    
     (package:store/db/app_database.dart:539:11) [AppDatabase._create] -> 
     
     [ DEBUG] | 21:01:32 779ms | Creating document in collection: FirestoreCollections.user with data: {id: 1471655f-2375-4716-a82a-be57283744c1, 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-1793617292778, 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/service/auth/auth_service.dart:617:9) [AuthService._setAuthenticated] -> 
     
     [ INFO] | 21:01:32 780ms | Setting state user to: test@example.com
    
    
     (package:services/service/auth/auth_service.dart:630:11) [AuthService._setAuthenticated] -> 
     
     [ INFO] | 21:01:32 780ms | User email verified, no pin required for test@example.com
    
    
     (package:core/admin/service_manager.dart:131:11) [ServiceManager.unregister] -> 
     
     [ DEBUG] | 21:01:32 781ms | Unregistered GetIt of Type AuthClientFactory
    Test case:tests unit/service/auth/auth_service_test.dart AuthService AuthService Tests Edge Cases and Error Handling should handle anonymous user
    Outcome:Passed
    Duration:0.003 sec
    Stdout
     (package:services/service/auth/auth_service.dart:115:9) [AuthService.build] -> 
     
     [ WARNING] | 21:01:32 792ms | AuthService initialized
    Test case:tests unit/service/network/network_service_state_test.dart NetworkServiceState should create with default unknown status
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/service/network/network_service_state_test.dart NetworkServiceState should create with specific status
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/service/network/network_service_state_test.dart NetworkServiceState should correctly identify online status
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/service/network/network_service_test.dart NetworkService Initialization Tests should initialize with default state
    Outcome:Passed
    Duration:0.009 sec
    Stdout
     (package:services/network/network_monitor.dart:100:9) [InternetNetworkMonitor._startMonitoring] -> 
     
     [ INFO] | 21:01:32 808ms | NetworkMonitor: Started monitoring with 0:01:00.000000 interval
    
    
     (package:services/network/network_monitor.dart:122:13) [InternetNetworkMonitor._checkNetworkStatus] -> 
     
     [ INFO] | 21:01:32 809ms | NetworkMonitor: Status changed from NetworkStatus.online to NetworkStatus.offline
    Test case:tests unit/service/network/network_service_test.dart NetworkService Initialization Tests should support ProviderScope
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/service/network/network_service_test.dart NetworkService Initialization Tests should support UncontrolledProviderScope
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/service/network/network_service_test.dart NetworkService Core Functionality Tests should handle offline gracefully
    Outcome:Passed
    Duration:0.003 sec
    Test case:tests unit/service/network/network_service_test.dart NetworkService Core Functionality Tests should notify on online change
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/service/pledge/pledge_service_state_test.dart PledgeServiceState should create with default values
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/service/pledge/pledge_service_state_test.dart PledgeServiceState should create with specific values
    Outcome:Passed
    Duration:0.004 sec
    Test case:tests unit/service/pledge/pledge_service_state_test.dart PledgeServiceState should copy with new values
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/service/pledge/pledge_service_test.dart PledgeService Initialization Tests should initialize with default state
    Outcome:Passed
    Duration:0.005 sec
    Stdout
     (package:services/service/auth/auth_service.dart:115:9) [AuthService.build] -> 
     
     [ WARNING] | 21:01:32 831ms | AuthService initialized
    Test case:tests unit/service/pledge/pledge_service_test.dart PledgeService Initialization Tests should support ProviderScope
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/service/pledge/pledge_service_test.dart PledgeService Initialization Tests should support UncontrolledProviderScope
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/service/pledge/pledge_service_test.dart PledgeService Core Functionality Tests should get pledges
    Outcome:Passed
    Duration:0.105 sec
    Test case:tests unit/service/pledge/pledge_service_test.dart PledgeService Core Functionality Tests should handle errors gracefully
    Outcome:Passed
    Duration:0.003 sec
    Stdout
     (package:services/service/auth/auth_service.dart:115:9) [AuthService.build] -> 
     
     [ WARNING] | 21:01:32 943ms | AuthService initialized
    Test case:tests unit/service/pledge/pledge_service_test.dart PledgeService Core Functionality Tests should notify on pledge update
    Outcome:Passed
    Duration:0.104 sec
    Test case:tests unit/service/preview/preview_service_state_test.dart PreviewServiceState distinguishes missing, empty, and short group previews
    Outcome:Passed
    Duration:0.003 sec
    Test case:tests unit/service/preview/preview_service_state_test.dart PreviewServiceState returns requested group prefix
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/service/preview/preview_service_state_test.dart PreviewServiceState does not replace longer group preview with late shorter result
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/service/preview/preview_service_state_test.dart PreviewServiceState distinguishes missing, empty, and short media previews
    Outcome:Passed
    Duration:0.003 sec
    Test case:tests unit/service/preview/preview_service_state_test.dart PreviewServiceState does not expose mutable input lists
    Outcome:Passed
    Duration:0.001 sec
    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.011 sec
    Stdout
     (package:services/shared/chat_stream.dart:46:17) [ChatStream.getChatStream.<anonymous] -> 
     
     [ WARNING] | 21:01:33 67ms | Chat stream disconnected ([firestore/unavailable] null). Retrying (attempt=1) in  2s...
    
    
     (package:services/shared/chat_stream.dart:46:17) [ChatStream.getChatStream.<anonymous] -> 
     
     [ WARNING] | 21:01:33 69ms | Chat stream disconnected ([firestore/unavailable] null). Retrying (attempt=2) in  4s...
    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.004 sec
    Stdout
     (package:services/shared/chat_stream.dart:46:17) [ChatStream.getChatStream.<anonymous] -> 
     
     [ WARNING] | 21:01:33 75ms | Chat stream disconnected ([firestore/unavailable] null). Retrying (attempt=1) in  1s...
    Test case:tests unit/shared/chat_stream_test.dart ChatStream Tests Should immediately fail permanently on permission-denied
    Outcome:Passed
    Duration:0.004 sec
    Stdout
     (package:services/shared/chat_stream.dart:61:15) [ChatStream.getChatStream.<anonymous] -> 
     
     [ ERROR] | 21:01:33 79ms | Chat stream failed permanently: [firestore/permission-denied] null
    Test case:tests unit/upload/core/storage_url_factory_test.dart StorageUrlFactory isValid valid firebase url
    Outcome:Passed
    Duration:0.009 sec
    Stdout
     (package:services/config/gui_config.dart:261:9) [GuiConfig._refreshIfRequired] -> 
     
     [ CONFIG] | 21:01:33 83ms | Refreshing GUI config
    
    
     (package:services/config/gui_config.dart:267:11) [GuiConfig._refreshIfRequired] -> 
     
     [ DEBUG] | 21:01:33 83ms | Refreshing GUI config from http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config
    
    
     (package:services/config/gui_config.dart:261:9) [GuiConfig._refreshIfRequired] -> 
     
     [ CONFIG] | 21:01:33 84ms | Refreshing GUI config
    
    
     (package:services/config/gui_config.dart:267:11) [GuiConfig._refreshIfRequired] -> 
     
     [ DEBUG] | 21:01:33 84ms | Refreshing GUI config from http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config
    
    
     (package:services/config/gui_config.dart:261:9) [GuiConfig._refreshIfRequired] -> 
     
     [ CONFIG] | 21:01:33 84ms | Refreshing GUI config
    
    
     (package:services/config/gui_config.dart:267:11) [GuiConfig._refreshIfRequired] -> 
     
     [ DEBUG] | 21:01:33 85ms | Refreshing GUI config from http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config
    
    
     (package:services/config/gui_config.dart:283:11) [GuiConfig._refreshIfRequired] -> 
     
     [ ERROR] | 21:01:33 85ms | Failed to pre-load config from: http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config: NoSuchMethodError: Class '_FakeHttpClient' has no instance method 'close' with matching arguments.
     Receiver: Instance of '_FakeHttpClient'
     Tried calling: close(force: true)
     Found: close({bool force}) => void
    
    
     (package:services/config/gui_config.dart:283:11) [GuiConfig._refreshIfRequired] -> 
     
     [ ERROR] | 21:01:33 85ms | Failed to pre-load config from: http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config: NoSuchMethodError: Class '_FakeHttpClient' has no instance method 'close' with matching arguments.
     Receiver: Instance of '_FakeHttpClient'
     Tried calling: close(force: true)
     Found: close({bool force}) => void
    
    
     (package:services/config/gui_config.dart:283:11) [GuiConfig._refreshIfRequired] -> 
     
     [ ERROR] | 21:01:33 85ms | Failed to pre-load config from: http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config: NoSuchMethodError: Class '_FakeHttpClient' has no instance method 'close' with matching arguments.
     Receiver: Instance of '_FakeHttpClient'
     Tried calling: close(force: true)
     Found: close({bool force}) => void
    Test case:tests unit/upload/core/storage_url_factory_test.dart StorageUrlFactory isValid invalid firebase url - missing gs://
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/upload/core/storage_url_factory_test.dart StorageUrlFactory bucketName valid firebase url
    Outcome:Passed
    Duration:0.007 sec
    Stdout
     (package:services/config/gui_config.dart:261:9) [GuiConfig._refreshIfRequired] -> 
     
     [ CONFIG] | 21:01:33 94ms | Refreshing GUI config
    
    
     (package:services/config/gui_config.dart:267:11) [GuiConfig._refreshIfRequired] -> 
     
     [ DEBUG] | 21:01:33 94ms | Refreshing GUI config from http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config
    
    
     (package:services/config/gui_config.dart:261:9) [GuiConfig._refreshIfRequired] -> 
     
     [ CONFIG] | 21:01:33 94ms | Refreshing GUI config
    
    
     (package:services/config/gui_config.dart:267:11) [GuiConfig._refreshIfRequired] -> 
     
     [ DEBUG] | 21:01:33 95ms | Refreshing GUI config from http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config
    
    
     (package:services/config/gui_config.dart:283:11) [GuiConfig._refreshIfRequired] -> 
     
     [ ERROR] | 21:01:33 95ms | Failed to pre-load config from: http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config: NoSuchMethodError: Class '_FakeHttpClient' has no instance method 'close' with matching arguments.
     Receiver: Instance of '_FakeHttpClient'
     Tried calling: close(force: true)
     Found: close({bool force}) => void
    
    
     (package:services/config/gui_config.dart:283:11) [GuiConfig._refreshIfRequired] -> 
     
     [ ERROR] | 21:01:33 95ms | Failed to pre-load config from: http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config: NoSuchMethodError: Class '_FakeHttpClient' has no instance method 'close' with matching arguments.
     Receiver: Instance of '_FakeHttpClient'
     Tried calling: close(force: true)
     Found: close({bool force}) => void
    Test case:tests unit/upload/core/storage_url_factory_test.dart StorageUrlFactory path valid firebase url
    Outcome:Passed
    Duration:0.004 sec
    Stdout
     (package:services/config/gui_config.dart:261:9) [GuiConfig._refreshIfRequired] -> 
     
     [ CONFIG] | 21:01:33 101ms | Refreshing GUI config
    
    
     (package:services/config/gui_config.dart:267:11) [GuiConfig._refreshIfRequired] -> 
     
     [ DEBUG] | 21:01:33 101ms | Refreshing GUI config from http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config
    
    
     (package:services/config/gui_config.dart:283:11) [GuiConfig._refreshIfRequired] -> 
     
     [ ERROR] | 21:01:33 102ms | Failed to pre-load config from: http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config: NoSuchMethodError: Class '_FakeHttpClient' has no instance method 'close' with matching arguments.
     Receiver: Instance of '_FakeHttpClient'
     Tried calling: close(force: true)
     Found: close({bool force}) => void
    Test case:tests unit/upload/core/storage_url_factory_test.dart StorageUrlFactory path firebase url with no path
    Outcome:Passed
    Duration:0.003 sec
    Stdout
     (package:services/config/gui_config.dart:261:9) [GuiConfig._refreshIfRequired] -> 
     
     [ CONFIG] | 21:01:33 105ms | Refreshing GUI config
    
    
     (package:services/config/gui_config.dart:267:11) [GuiConfig._refreshIfRequired] -> 
     
     [ DEBUG] | 21:01:33 106ms | Refreshing GUI config from http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config
    
    
     (package:services/config/gui_config.dart:283:11) [GuiConfig._refreshIfRequired] -> 
     
     [ ERROR] | 21:01:33 106ms | Failed to pre-load config from: http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config: NoSuchMethodError: Class '_FakeHttpClient' has no instance method 'close' with matching arguments.
     Receiver: Instance of '_FakeHttpClient'
     Tried calling: close(force: true)
     Found: close({bool force}) => void
    Test case:tests unit/upload/core/storage_url_factory_test.dart StorageUrlFactory name valid firebase url
    Outcome:Passed
    Duration:0.005 sec
    Stdout
     (package:services/config/gui_config.dart:261:9) [GuiConfig._refreshIfRequired] -> 
     
     [ CONFIG] | 21:01:33 110ms | Refreshing GUI config
    
    
     (package:services/config/gui_config.dart:267:11) [GuiConfig._refreshIfRequired] -> 
     
     [ DEBUG] | 21:01:33 110ms | Refreshing GUI config from http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config
    
    
     (package:services/config/gui_config.dart:283:11) [GuiConfig._refreshIfRequired] -> 
     
     [ ERROR] | 21:01:33 110ms | Failed to pre-load config from: http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config: NoSuchMethodError: Class '_FakeHttpClient' has no instance method 'close' with matching arguments.
     Receiver: Instance of '_FakeHttpClient'
     Tried calling: close(force: true)
     Found: close({bool force}) => void
    Test case:tests unit/upload/core/storage_url_factory_test.dart StorageUrlFactory name firebase url with no path
    Outcome:Passed
    Duration:0.004 sec
    Stdout
     (package:services/config/gui_config.dart:261:9) [GuiConfig._refreshIfRequired] -> 
     
     [ CONFIG] | 21:01:33 115ms | Refreshing GUI config
    
    
     (package:services/config/gui_config.dart:267:11) [GuiConfig._refreshIfRequired] -> 
     
     [ DEBUG] | 21:01:33 115ms | Refreshing GUI config from http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config
    
    
     (package:services/config/gui_config.dart:283:11) [GuiConfig._refreshIfRequired] -> 
     
     [ ERROR] | 21:01:33 116ms | Failed to pre-load config from: http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config: NoSuchMethodError: Class '_FakeHttpClient' has no instance method 'close' with matching arguments.
     Receiver: Instance of '_FakeHttpClient'
     Tried calling: close(force: true)
     Found: close({bool force}) => void
    Test case:tests unit/upload/core/storage_url_factory_test.dart StorageUrlFactory createUploadFromFile: newUrl
    Outcome:Passed
    Duration:0.008 sec
    Stdout
     (package:services/config/gui_config.dart:261:9) [GuiConfig._refreshIfRequired] -> 
     
     [ CONFIG] | 21:01:33 121ms | Refreshing GUI config
    
    
     (package:services/config/gui_config.dart:267:11) [GuiConfig._refreshIfRequired] -> 
     
     [ DEBUG] | 21:01:33 121ms | Refreshing GUI config from http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config
    
    
     (package:services/config/gui_config.dart:261:9) [GuiConfig._refreshIfRequired] -> 
     
     [ CONFIG] | 21:01:33 122ms | Refreshing GUI config
    
    
     (package:services/config/gui_config.dart:267:11) [GuiConfig._refreshIfRequired] -> 
     
     [ DEBUG] | 21:01:33 122ms | Refreshing GUI config from http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config
    
    
     (package:services/config/gui_config.dart:283:11) [GuiConfig._refreshIfRequired] -> 
     
     [ ERROR] | 21:01:33 122ms | Failed to pre-load config from: http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config: NoSuchMethodError: Class '_FakeHttpClient' has no instance method 'close' with matching arguments.
     Receiver: Instance of '_FakeHttpClient'
     Tried calling: close(force: true)
     Found: close({bool force}) => void
    
    
     (package:services/config/gui_config.dart:283:11) [GuiConfig._refreshIfRequired] -> 
     
     [ ERROR] | 21:01:33 122ms | Failed to pre-load config from: http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config: NoSuchMethodError: Class '_FakeHttpClient' has no instance method 'close' with matching arguments.
     Receiver: Instance of '_FakeHttpClient'
     Tried calling: close(force: true)
     Found: close({bool force}) => void
    Test case:tests unit/upload/core/storage_url_factory_test.dart StorageUrlFactory createUploadFromUrl: createFirebaseUrl ok
    Outcome:Passed
    Duration:0.005 sec
    Stdout
     (package:services/config/gui_config.dart:261:9) [GuiConfig._refreshIfRequired] -> 
     
     [ CONFIG] | 21:01:33 128ms | Refreshing GUI config
    
    
     (package:services/config/gui_config.dart:267:11) [GuiConfig._refreshIfRequired] -> 
     
     [ DEBUG] | 21:01:33 129ms | Refreshing GUI config from http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config
    
    
     (package:services/config/gui_config.dart:283:11) [GuiConfig._refreshIfRequired] -> 
     
     [ ERROR] | 21:01:33 129ms | Failed to pre-load config from: http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config: NoSuchMethodError: Class '_FakeHttpClient' has no instance method 'close' with matching arguments.
     Receiver: Instance of '_FakeHttpClient'
     Tried calling: close(force: true)
     Found: close({bool force}) => void
    Test case:tests unit/upload/core/storage_url_test.dart StorageUtil StorageUtil sanitize complete url
    Outcome:Passed
    Duration:0.004 sec
    Stdout
     (package:services/config/gui_config.dart:261:9) [GuiConfig._refreshIfRequired] -> 
     
     [ CONFIG] | 21:01:33 133ms | Refreshing GUI config
    
    
     (package:services/config/gui_config.dart:267:11) [GuiConfig._refreshIfRequired] -> 
     
     [ DEBUG] | 21:01:33 133ms | Refreshing GUI config from http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config
    
    
     (package:services/config/gui_config.dart:283:11) [GuiConfig._refreshIfRequired] -> 
     
     [ ERROR] | 21:01:33 134ms | Failed to pre-load config from: http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config: NoSuchMethodError: Class '_FakeHttpClient' has no instance method 'close' with matching arguments.
     Receiver: Instance of '_FakeHttpClient'
     Tried calling: close(force: true)
     Found: close({bool force}) => void
    Test case:tests unit/upload/core/storage_url_test.dart StorageUtil StorageUtil sanitize relative path
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/upload/core/storage_url_test.dart StorageUtil StorageUtil sanitize throws for invalid URLs
    Outcome:Passed
    Duration:0.004 sec
    Stdout
     (package:services/config/gui_config.dart:261:9) [GuiConfig._refreshIfRequired] -> 
     
     [ CONFIG] | 21:01:33 139ms | Refreshing GUI config
    
    
     (package:services/config/gui_config.dart:267:11) [GuiConfig._refreshIfRequired] -> 
     
     [ DEBUG] | 21:01:33 139ms | Refreshing GUI config from http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config
    
    
     (package:services/config/gui_config.dart:283:11) [GuiConfig._refreshIfRequired] -> 
     
     [ ERROR] | 21:01:33 139ms | Failed to pre-load config from: http://localhost:5001/flipdare-us-east4-test/us-east4/h__gui_config: NoSuchMethodError: Class '_FakeHttpClient' has no instance method 'close' with matching arguments.
     Receiver: Instance of '_FakeHttpClient'
     Tried calling: close(force: true)
     Found: close({bool force}) => void
    Test case:tests unit/upload/core/storage_url_test.dart StorageUtil creation randomFirebaseName generates a name with the correct format
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/upload/core/storage_url_test.dart StorageUtil creation constructs correct Firebase URL
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/upload/upload_state_test.dart UploadState tests addTask adds a task to the waiting queue
    Outcome:Passed
    Duration:0.004 sec
    Stdout
     (package:services/upload/upload_state.dart:116:9) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 147ms | Added task task1 as waiting ...
    Test case:tests unit/upload/upload_state_test.dart UploadState tests addTask does not add duplicate tasks
    Outcome:Passed
    Duration:0.004 sec
    Stdout
     (package:services/upload/upload_state.dart:116:9) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 151ms | Added task task1 as waiting ...
    
    
     (package:services/upload/upload_state.dart:103:11) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 152ms | Re-adding task task1 which is in state: waiting
    
    
     (package:services/upload/upload_state.dart:116:9) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 152ms | Added task task1 as waiting ...
    Test case:tests unit/upload/upload_state_test.dart UploadState tests addTask respects queue size limit
    Outcome:Passed
    Duration:0.004 sec
    Stdout
     (package:services/upload/upload_state.dart:116:9) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 155ms | Added task task1 as waiting ...
    
    
     (package:services/upload/upload_state.dart:116:9) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 155ms | Added task task2 as waiting ...
    
    
     (package:services/upload/upload_state.dart:116:9) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 156ms | Added task task3 as waiting ...
    Test case:tests unit/upload/upload_state_test.dart UploadState tests nextReady retrieves and moves task to in-progress
    Outcome:Passed
    Duration:0.005 sec
    Stdout
     (package:services/upload/upload_state.dart:116:9) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 159ms | Added task task1 as waiting ...
    
    
     (package:services/upload/upload_state.dart:116:9) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 159ms | Added task task2 as waiting ...
    
    
     (package:services/upload/upload_state.dart:136:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 159ms | Task task1 is in state: waiting
    
    
     (package:services/upload/upload_state.dart:162:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 160ms | Starting task task1
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 160ms | Task task1: waiting -> running
    Test case:tests unit/upload/upload_state_test.dart UploadState tests nextReady returns null if no tasks are waiting
    Outcome:Passed
    Duration:0.003 sec
    Stdout
     (package:services/upload/upload_state.dart:126:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 165ms | No tasks in the queue..
    
    
     (package:services/upload/upload_state.dart:59:11) [UploadState.hasErrors] -> 
     
     [ DEBUG] | 21:01:33 165ms | No errors, nothing in queue..
    
    
     (package:services/upload/upload_state.dart:68:11) [UploadState.errorCount] -> 
     
     [ DEBUG] | 21:01:33 165ms | 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.004 sec
    Stdout
     (package:services/upload/upload_state.dart:116:9) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 169ms | Added task task1 as waiting ...
    
    
     (package:services/upload/upload_state.dart:136:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 169ms | Task task1 is in state: waiting
    
    
     (package:services/upload/upload_state.dart:162:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 169ms | Starting task task1
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 169ms | Task task1: waiting -> running
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 169ms | Task task1: running -> 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.003 sec
    Stdout
     (package:services/upload/upload_state.dart:197:11) [UploadState._moveTo] -> 
     
     [ WARNING] | 21:01:33 174ms | unknown task nonexistent, cannot move to completed
    
    
     (package:services/upload/upload_state.dart:59:11) [UploadState.hasErrors] -> 
     
     [ DEBUG] | 21:01:33 174ms | No errors, nothing in queue..
    
    
     (package:services/upload/upload_state.dart:68:11) [UploadState.errorCount] -> 
     
     [ DEBUG] | 21:01:33 174ms | 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.005 sec
    Stdout
     (package:services/upload/upload_state.dart:116:9) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 177ms | Added task task1 as waiting ...
    
    
     (package:services/upload/upload_state.dart:136:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 177ms | Task task1 is in state: waiting
    
    
     (package:services/upload/upload_state.dart:162:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 177ms | Starting task task1
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 177ms | Task task1: waiting -> running
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 178ms | Task task1: running -> 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.005 sec
    Stdout
     (package:services/upload/upload_state.dart:197:11) [UploadState._moveTo] -> 
     
     [ WARNING] | 21:01:33 183ms | unknown task nonexistent, cannot move to failed
    
    
     (package:services/upload/upload_state.dart:59:11) [UploadState.hasErrors] -> 
     
     [ DEBUG] | 21:01:33 184ms | No errors, nothing in queue..
    
    
     (package:services/upload/upload_state.dart:68:11) [UploadState.errorCount] -> 
     
     [ DEBUG] | 21:01:33 184ms | No errors, nothing in queue..
    Test case:tests unit/upload/upload_state_test.dart UploadState tests pause/resume/cancel setPaused moves running task to paused
    Outcome:Passed
    Duration:0.005 sec
    Stdout
     (package:services/upload/upload_state.dart:116:9) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 187ms | Added task task1 as waiting ...
    
    
     (package:services/upload/upload_state.dart:136:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 187ms | Task task1 is in state: waiting
    
    
     (package:services/upload/upload_state.dart:162:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 187ms | Starting task task1
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 187ms | Task task1: waiting -> running
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 187ms | Task task1: running -> paused
    Test case:tests unit/upload/upload_state_test.dart UploadState tests pause/resume/cancel setPaused is a no-op when already paused
    Outcome:Passed
    Duration:0.005 sec
    Stdout
     (package:services/upload/upload_state.dart:116:9) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 192ms | Added task task1 as waiting ...
    
    
     (package:services/upload/upload_state.dart:136:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 192ms | Task task1 is in state: waiting
    
    
     (package:services/upload/upload_state.dart:162:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 192ms | Starting task task1
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 192ms | Task task1: waiting -> running
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 192ms | Task task1: running -> paused
    Test case:tests unit/upload/upload_state_test.dart UploadState tests pause/resume/cancel setResumed moves paused task back to running
    Outcome:Passed
    Duration:0.005 sec
    Stdout
     (package:services/upload/upload_state.dart:116:9) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 197ms | Added task task1 as waiting ...
    
    
     (package:services/upload/upload_state.dart:136:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 197ms | Task task1 is in state: waiting
    
    
     (package:services/upload/upload_state.dart:162:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 197ms | Starting task task1
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 197ms | Task task1: waiting -> running
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 197ms | Task task1: running -> paused
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 198ms | Task task1: paused -> running
    Test case:tests unit/upload/upload_state_test.dart UploadState tests pause/resume/cancel setResumed ignores a running task
    Outcome:Passed
    Duration:0.003 sec
    Stdout
     (package:services/upload/upload_state.dart:116:9) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 203ms | Added task task1 as waiting ...
    
    
     (package:services/upload/upload_state.dart:136:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 203ms | Task task1 is in state: waiting
    
    
     (package:services/upload/upload_state.dart:162:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 203ms | Starting task task1
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 203ms | Task task1: waiting -> running
    Test case:tests unit/upload/upload_state_test.dart UploadState tests pause/resume/cancel setCanceled moves task to canceled
    Outcome:Passed
    Duration:0.004 sec
    Stdout
     (package:services/upload/upload_state.dart:116:9) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 206ms | Added task task1 as waiting ...
    
    
     (package:services/upload/upload_state.dart:136:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 207ms | Task task1 is in state: waiting
    
    
     (package:services/upload/upload_state.dart:162:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 207ms | Starting task task1
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 207ms | Task task1: waiting -> running
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 207ms | Task task1: running -> canceled
    Test case:tests unit/upload/upload_state_test.dart UploadState tests pause/resume/cancel setErrored does not override canceled
    Outcome:Passed
    Duration:0.006 sec
    Stdout
     (package:services/upload/upload_state.dart:116:9) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 211ms | Added task task1 as waiting ...
    
    
     (package:services/upload/upload_state.dart:136:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 211ms | Task task1 is in state: waiting
    
    
     (package:services/upload/upload_state.dart:162:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 212ms | Starting task task1
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 212ms | Task task1: waiting -> running
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 212ms | Task task1: running -> canceled
    Test case:tests unit/upload/upload_state_test.dart UploadState tests pause/resume/cancel nextReady does not auto-start paused or canceled tasks
    Outcome:Passed
    Duration:0.009 sec
    Stdout
     (package:services/upload/upload_state.dart:116:9) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 217ms | Added task task1 as waiting ...
    
    
     (package:services/upload/upload_state.dart:136:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 217ms | Task task1 is in state: waiting
    
    
     (package:services/upload/upload_state.dart:162:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 217ms | Starting task task1
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 217ms | Task task1: waiting -> running
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 217ms | Task task1: running -> paused
    
    
     (package:services/upload/upload_state.dart:136:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 218ms | Task task1 is in state: paused
    
    
     (package:services/upload/upload_state.dart:166:9) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 218ms | No startable tasks in the queue..
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 218ms | Task task1: paused -> running
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 218ms | Task task1: running -> canceled
    
    
     (package:services/upload/upload_state.dart:136:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 218ms | Task task1 is in state: canceled
    
    
     (package:services/upload/upload_state.dart:141:13) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 218ms | Task task1 is canceled, shouldRestartFailed is false, skipping it..
    
    
     (package:services/upload/upload_state.dart:166:9) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 218ms | No startable tasks in the queue..
    Test case:tests unit/upload/upload_state_test.dart UploadState tests pause/resume/cancel re-adding a canceled task requeues it as waiting
    Outcome:Passed
    Duration:0.006 sec
    Stdout
     (package:services/upload/upload_state.dart:116:9) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 227ms | Added task task1 as waiting ...
    
    
     (package:services/upload/upload_state.dart:136:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 227ms | Task task1 is in state: waiting
    
    
     (package:services/upload/upload_state.dart:162:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 227ms | Starting task task1
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 227ms | Task task1: waiting -> running
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 227ms | Task task1: running -> canceled
    
    
     (package:services/upload/upload_state.dart:103:11) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 227ms | Re-adding task task1 which is in state: canceled
    
    
     (package:services/upload/upload_state.dart:116:9) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 227ms | Added task task1 as waiting ...
    Test case:tests unit/upload/upload_state_test.dart UploadState tests pause/resume/cancel restarting a failed task clears it from failed
    Outcome:Passed
    Duration:0.006 sec
    Stdout
     (package:services/upload/upload_state.dart:116:9) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 233ms | Added task task1 as waiting ...
    
    
     (package:services/upload/upload_state.dart:136:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 233ms | Task task1 is in state: waiting
    
    
     (package:services/upload/upload_state.dart:162:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 233ms | Starting task task1
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 233ms | Task task1: waiting -> running
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 234ms | Task task1: running -> failed
    
    
     (package:services/upload/upload_state.dart:136:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 234ms | Task task1 is in state: failed
    
    
     (package:services/upload/upload_state.dart:162:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 234ms | Starting task task1
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 234ms | Task task1: failed -> running
    Test case:tests unit/upload/upload_state_test.dart UploadState tests clearErrors clears all failed tasks
    Outcome:Passed
    Duration:0.007 sec
    Stdout
     (package:services/upload/upload_state.dart:116:9) [UploadState.add] -> 
     
     [ DEBUG] | 21:01:33 240ms | Added task task1 as waiting ...
    
    
     (package:services/upload/upload_state.dart:136:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 240ms | Task task1 is in state: waiting
    
    
     (package:services/upload/upload_state.dart:162:11) [UploadState.nextReady] -> 
     
     [ DEBUG] | 21:01:33 240ms | Starting task task1
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 240ms | Task task1: waiting -> running
    
    
     (package:services/upload/upload_state.dart:211:9) [UploadState._moveTo] -> 
     
     [ DEBUG] | 21:01:33 240ms | Task task1: running -> failed
    
    
     (package:services/upload/upload_state.dart:256:15) [UploadState.clearErrors.<anonymous] -> 
     
     [ DEBUG] | 21:01:33 240ms | Clearing error state for task task1
    
    
     (package:services/upload/upload_state.dart:261:9) [UploadState.clearErrors] -> 
     
     [ DEBUG] | 21:01:33 240ms | Cleared all failed entries
    
    
     (package:services/upload/upload_state.dart:59:11) [UploadState.hasErrors] -> 
     
     [ DEBUG] | 21:01:33 241ms | No errors, nothing in queue..
    
    
     (package:services/upload/upload_state.dart:68:11) [UploadState.errorCount] -> 
     
     [ DEBUG] | 21:01:33 241ms | 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.004 sec
    Stdout
     (package:services/upload/upload_state.dart:59:11) [UploadState.hasErrors] -> 
     
     [ DEBUG] | 21:01:33 247ms | No errors, nothing in queue..
    
    
     (package:services/upload/upload_state.dart:242:11) [UploadState.clearErrors] -> 
     
     [ DEBUG] | 21:01:33 247ms | All good, no need to clear errors..
    
    
     (package:services/upload/upload_state.dart:59:11) [UploadState.hasErrors] -> 
     
     [ DEBUG] | 21:01:33 247ms | No errors, nothing in queue..
    
    
     (package:services/upload/upload_state.dart:68:11) [UploadState.errorCount] -> 
     
     [ DEBUG] | 21:01:33 248ms | No errors, nothing in queue..
    Test case:tests unit/upload/upload_stats_test.dart UploadStats initialization
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/upload/upload_stats_test.dart UploadStats equality
    Outcome:Passed
    Duration:0.001 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.001 sec
    Test case:tests unit/user/auth_attempt_test.dart AuthAttempt PasswordAuthAttempt signInWithCredentials
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/user/auth_attempt_test.dart AuthAttempt GoogleAuthAttempt interactive Sign In
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/user/auth_attempt_test.dart AuthAttempt AppleAuthAttempt interactive
    Outcome:Passed
    Duration:0.001 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.05 sec
    Stdout
     (package:services/user/crash_restarter.dart:67:11) [CrashRestarter.shouldRestart] -> 
     
     [ DEBUG] | 21:01:33 306ms | App is eligible for restart (last restart at 2026-10-31 21:01:33.305138, cutoff at 2026-11-01 21:01:33.305138, now 2026-11-02 21:01:33.306138)
    
    
      [runCrashRestarterWidgetTests.<anonymous] -> 
     
     [ DEBUG] | 21:01:33 306ms | App restarted
    
    
     (package:services/user/crash_restarter.dart:94:9) [CrashRestarter.tryRestart] -> 
     
     [ WARNING] | 21:01:33 306ms | Restarting app with last restart time 2026-11-02 21:01:33.306138
    Test case:tests unit/user/invitation_info_test.dart InvitationInfo name with first and last name
    Outcome:Passed
    Duration:0.002 sec
    Test case:tests unit/user/invitation_info_test.dart InvitationInfo returns scrubbed email when no names provided
    Outcome:Passed
    Duration:0.001 sec
    Test case:tests unit/user/invitation_info_test.dart InvitationInfo returns display name when no first/last name provided
    Outcome:Passed
    Duration:0.001 sec

    Suite stdout:

     (package:core/admin/service_manager.dart:131:11) [ServiceManager.unregister] -> 
     
     [ DEBUG] | 21:01:32 796ms | Unregistered GetIt of Type AppServiceSetup
    
    
     (package:core/admin/service_manager.dart:131:11) [ServiceManager.unregister] -> 
     
     [ DEBUG] | 21:01:32 796ms | Unregistered GetIt of Type AppFirebaseSetup

    Suite stderr:

    None