00:00 +0: loading C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_database_test.dart 00:00 +0: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_database_test.dart: isolated MariaDB majority transactions destination 2/3 finalizes before everyone votes Skip: Run work/run_majority_database_tests.py with an isolated schema. 00:00 +0 ~1: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_database_test.dart: isolated MariaDB majority transactions agency 2/3 finalizes and records only one bid Skip: Run work/run_majority_database_tests.py with an isolated schema. 00:00 +0 ~2: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_database_test.dart: isolated MariaDB majority transactions destination 3/4 finalizes before everyone votes Skip: Run work/run_majority_database_tests.py with an isolated schema. 00:00 +0 ~3: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_database_test.dart: isolated MariaDB majority transactions agency 3/4 finalizes and records only one bid Skip: Run work/run_majority_database_tests.py with an isolated schema. 00:00 +0 ~4: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_database_test.dart: isolated MariaDB majority transactions destination 3/5 finalizes before everyone votes Skip: Run work/run_majority_database_tests.py with an isolated schema. 00:00 +0 ~5: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_database_test.dart: isolated MariaDB majority transactions agency 3/5 finalizes and records only one bid Skip: Run work/run_majority_database_tests.py with an isolated schema. 00:00 +0 ~6: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_database_test.dart: isolated MariaDB majority transactions destination duplicate member vote replaces its prior choice Skip: Run work/run_majority_database_tests.py with an isolated schema. 00:00 +0 ~7: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_database_test.dart: isolated MariaDB majority transactions agency duplicate member vote updates one ballot Skip: Run work/run_majority_database_tests.py with an isolated schema. 00:00 +0 ~8: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_database_test.dart: isolated MariaDB majority transactions destination 2-2-1 uses the existing tie-only next round Skip: Run work/run_majority_database_tests.py with an isolated schema. 00:00 +0 ~9: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_database_test.dart: isolated MariaDB majority transactions agency 2-2-1 closes without early winner, old cheaper-bid tie-break remains Skip: Run work/run_majority_database_tests.py with an isolated schema. 00:00 +0 ~10: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_database_test.dart: isolated MariaDB majority transactions destination simultaneous final votes preserve one winner Skip: Run work/run_majority_database_tests.py with an isolated schema. 00:00 +0 ~11: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_database_test.dart: isolated MariaDB majority transactions agency simultaneous final votes preserve one winner Skip: Run work/run_majority_database_tests.py with an isolated schema. 00:00 +0 ~12: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_database_test.dart: isolated MariaDB majority transactions destination excludes departed/inactive votes Skip: Run work/run_majority_database_tests.py with an isolated schema. 00:00 +0 ~13: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_database_test.dart: isolated MariaDB majority transactions agency excludes departed/inactive votes Skip: Run work/run_majority_database_tests.py with an isolated schema. 00:00 +0 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_test.dart: destination 1/3 early majority = false 00:00 +1 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_test.dart: agency 1/3 early majority = false 00:00 +2 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_test.dart: destination 2/3 early majority = true 00:00 +3 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_test.dart: agency 2/3 early majority = true 00:00 +4 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_test.dart: destination 2/4 early majority = false 00:00 +5 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_test.dart: agency 2/4 early majority = false 00:00 +6 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_test.dart: destination 3/4 early majority = true 00:00 +7 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_test.dart: agency 3/4 early majority = true 00:00 +8 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_test.dart: destination 3/5 early majority = true 00:00 +9 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_test.dart: agency 3/5 early majority = true 00:00 +10 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_test.dart: destination 3/6 early majority = false 00:00 +11 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_test.dart: agency 3/6 early majority = false 00:00 +12 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_test.dart: destination 4/6 early majority = true 00:00 +13 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_test.dart: agency 4/6 early majority = true 00:00 +14 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_test.dart: thresholds use the whole electorate: 3, 4, 5, 6 00:00 +15 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_test.dart: 2-2-1 has no majority; original destination tie round still applies 00:00 +16 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_test.dart: 2-2-1 has no agency majority; all-voted close/finalize remains 00:00 +17 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_test.dart: recorded agency winner is immutable and later votes are rejected 00:00 +18 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/absolute_majority_test.dart: destination majority ignores departed voters and duplicate rows 00:00 +19 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/admin_group_reset_contract_test.dart: group reset endpoint remains admin-only and development-gated 00:00 +20 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/admin_group_reset_contract_test.dart: group management routes are admin-authorized 00:00 +21 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/admin_group_reset_contract_test.dart: force reset is server-gated and requires a proven test group 00:00 +22 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/admin_group_reset_contract_test.dart: reset action is no longer rendered in user detail page 00:00 +23 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/admin_group_reset_contract_test.dart: reset lifecycle only removes membership and matched preference state 00:00 +24 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/admin_user_management_migration_test.dart: admin user management migration is additive and auditable 00:00 +25 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_admin_api_test.dart: registration creates a pending agency and keeps license private 00:00 +26 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_admin_api_test.dart: agency reviews require a server session and ignore a spoofed agency ID 00:00 +27 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_admin_api_test.dart: registration accepts a valid PNG license upload 00:00 +28 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_admin_api_test.dart: registration accepts a valid JPG license upload 00:00 +29 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_admin_api_test.dart: pending agency can login but cannot access marketplace or submit bid 00:00 +30 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_admin_api_test.dart: admin approval enables the same agency session and lead filters 00:00 +31 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_admin_api_test.dart: approved agency submits a PDF bid and User offer mapping preserves it 00:00 +32 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_admin_api_test.dart: another agency cannot update or cancel an owned bid 00:00 +33 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_admin_api_test.dart: agency can list and read only its own bid history 00:00 +34 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_admin_api_test.dart: missing token is 401 and suspended agency loses access immediately 00:00 +35 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_admin_api_test.dart: dissolved group bids remain history-only and cannot be active 00:00 +36 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_admin_api_test.dart: an open group keeps a submitted bid in the current list 00:00 +37 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_admin_api_test.dart: completed trip moves a still-submitted bid to history 00:00 +38 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_admin_api_test.dart: a genuinely cancelled bid stays labelled cancelled 00:00 +39 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_admin_migration_test.dart: Agency/Admin migration is additive and contains required invariants 00:00 +40 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_admin_migration_test.dart: Agency/Admin migration is additive and contains required invariants 00:00 +41 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_admin_migration_test.dart: Agency/Admin migration is additive and contains required invariants 00:01 +42 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_lead_detail_connection_test.dart: lead detail awaits summary before closing connection (poll=true) 00:01 +43 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_lead_detail_connection_test.dart: lead detail awaits summary before closing connection (poll=false) 00:01 +44 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_profile_contract_test.dart: agency profile supports approved bids before finalized voting 00:01 +45 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_profile_contract_test.dart: agency rating summary is company-only and backed by completed paid trips 00:01 +46 ~14: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_review_api_database_test.dart: isolated real review API and SQL review endpoint rejects missing agency authentication Skip: Run work/verify_agency_reviews.py against a disposable review fixture DB. 00:01 +46 ~15: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_review_api_database_test.dart: isolated real review API and SQL paid completed stored reviews use agency rating and latest order Skip: Run work/verify_agency_reviews.py against a disposable review fixture DB. 00:01 +46 ~16: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_review_api_database_test.dart: isolated real review API and SQL empty agency gets six memory-only demo reviews; repeated reads do not duplicate Skip: Run work/verify_agency_reviews.py against a disposable review fixture DB. 00:01 +46 ~17: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_review_api_database_test.dart: isolated real review API and SQL caller agency ID cannot fetch another company and review payload is private Skip: Run work/verify_agency_reviews.py against a disposable review fixture DB. 00:01 +46 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_review_service_test.dart: real reviews average and count use agency ratings 00:01 +47 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_review_service_test.dart: latest three reviews are newest first with all records retained 00:01 +48 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_review_service_test.dart: same-date reviews use numeric ID order 00:01 +49 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_review_service_test.dart: empty real reviews return null average and zero count 00:01 +50 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_review_service_test.dart: demo is prohibited in environment "production" even with flag 00:01 +51 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_review_service_test.dart: demo is prohibited in environment "prod" even with flag 00:01 +52 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_review_service_test.dart: demo is prohibited in environment "" even with flag 00:01 +53 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_review_service_test.dart: demo is prohibited in environment "staging" even with flag 00:01 +54 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_review_service_test.dart: demo disabled in development does not seed 00:01 +55 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_review_service_test.dart: enabled empty agency seeds six mixed ratings and marks demo 00:01 +56 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_review_service_test.dart: repeat seed is idempotent and isolated by agency 00:01 +57 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_review_service_test.dart: stored real review suppresses seed even when not eligible yet 00:01 +58 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_review_service_test.dart: a later real review takes precedence over earlier in-memory seed 00:01 +59 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/agency_review_service_test.dart: response anonymizes names and removes contact details from comment 00:01 +60 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_polls_migration_test.dart: destination poll migration is additive, scoped, and deduplicated 00:01 +61 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_agency_privacy_test.dart: Agency receives poll aggregates but not member-level poll choices 00:01 +62 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_catalog_policy_test.dart: DestinationPollCatalogPolicy normalizes display country names to existing catalog labels 00:02 +63 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_catalog_policy_test.dart: DestinationPollCatalogPolicy Japanese legacy package rows seed city and city-bound place polls 00:02 +64 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_catalog_policy_test.dart: DestinationPollCatalogPolicy recognizes China aliases and builds two stages from fixture rows 00:02 +65 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_china_migration_test.dart: China poll catalog migration is idempotent and not business data 00:02 +66 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_china_migration_test.dart: China poll catalog rollback is scoped only to its seed rows 00:02 +67 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_contract_test.dart: destination poll API is membership-scoped and supports safe replacement 00:02 +68 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_contract_test.dart: matching alternative acceptance keeps original destination history 00:02 +69 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_image_attribution_test.dart: all eight poll image files have a source and license attribution 00:02 +70 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_policy_test.dart: a new round uses the 24 hour server policy by default 00:02 +71 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_policy_test.dart: one of three remains open before the deadline 00:02 +72 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_policy_test.dart: all eligible members voting closes a city poll before deadline 00:02 +73 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_policy_test.dart: deadline closes with a strict majority, including at exact deadline 00:02 +74 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_policy_test.dart: deadline below strict majority waits and does not declare a winner 00:02 +75 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_policy_test.dart: half is not a strict majority but three of four is 00:02 +76 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_policy_test.dart: city tie opens no winner and lists only tied options for next round 00:02 +77 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_policy_test.dart: place poll uses the same quorum but finalizes as a ranked result 00:02 +78 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_policy_test.dart: expired zero-vote poll waits and zero eligible members do not close 00:02 +79 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_policy_test.dart: departed member votes are excluded from current round participation 00:02 +80 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_policy_test.dart: duplicate vote rows count each active user once per option 00:02 +81 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_policy_test.dart: API state changes are transactional and round finalization is idempotent 00:02 +82 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_policy_test.dart: poll lifecycle migration is additive and idempotent 00:02 +83 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_policy_test.dart: Agency receives aggregates through latest rounds, never voter rows 00:02 +84 ~18: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/destination_poll_vote_database_test.dart: vote persists through the real service path and commits its transaction Skip: Set TRAVELIN_POLL_TEST_DB_* to an isolated, empty poll test schema. 00:02 +84 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/development_account_policy_test.dart: realistic development accounts are allowlisted by server identity 00:02 +85 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/group_reset_policy_test.dart: safe automatic group can be reset in development 00:03 +86 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/group_reset_policy_test.dart: finalized voting, payment, documents, and journey block reset 00:03 +87 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/group_reset_policy_test.dart: preparing journey does not block reset 00:03 +88 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/journey_safety_migration_test.dart: journey safety migration is additive and lifecycle is monotonic 00:03 +89 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/matching_v2_migration_test.dart: matching V2 migration is additive and backfills legacy destinations 00:03 +90 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/matching_waiting_policy_test.dart: default waiting window is five minutes 00:03 +91 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/matching_waiting_policy_test.dart: migration is additive and idempotent by construction 00:03 +92 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/matching_waiting_policy_test.dart: matching API exposes continue-waiting without a client user id 00:03 +93 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/mysql_agency_bid_lifecycle_test.dart: MySQL bid mapping derives completed status from trip lifecycle 00:03 +94 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/notification_migration_test.dart: notification migration is additive and prevents duplicate events 00:03 +95 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/payment_verification_state_test.dart: persisted payment verification state paid row with matching persisted SlipOK evidence is verified 00:04 +96 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/payment_verification_state_test.dart: persisted payment verification state receiver value may be absent because provider verification is saved 00:04 +97 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/payment_verification_state_test.dart: persisted payment verification state does not call a paid row verified when success evidence is incomplete 00:04 +98 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/payment_verification_state_test.dart: payment readback and duplicate protection contracts paid status endpoint only reads the existing user/bid payment 00:04 +99 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/payment_verification_state_test.dart: payment readback and duplicate protection contracts verify endpoint short-circuits a paid row before provider call 00:04 +100 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/payment_verification_state_test.dart: payment readback and duplicate protection contracts same evidence hash remains globally rejected for a different payment 00:04 +101 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/payment_verification_state_test.dart: payment readback and duplicate protection contracts same transaction reference remains globally rejected 00:04 +102 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/payment_verification_state_test.dart: payment readback and duplicate protection contracts existing payment row is not duplicated by status readback 00:04 +103 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/promptpay_qr_test.dart: PromptPay QR payload normalizes Thai mobile ID and binds the exact amount 00:04 +104 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/promptpay_qr_test.dart: PromptPay QR payload supports national ID and e-wallet PromptPay identifiers 00:04 +105 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/promptpay_qr_test.dart: PromptPay QR payload rejects unsupported identifiers and fractional satang precision 00:04 +106 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/promptpay_qr_test.dart: payment presentation configuration live config exposes a dynamic amount QR only with SlipOK configured 00:04 +107 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/promptpay_qr_test.dart: payment presentation configuration missing provider or mismatched receiver fails closed 00:04 +108 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/promptpay_qr_test.dart: payment presentation configuration demo UI requires explicit development mode and demo verifier 00:04 +109 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_configuration_test.dart: example contains only empty local payment configuration variables 00:04 +110 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_configuration_test.dart: secrets load only inside backend child with delayed expansion disabled 00:04 +111 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_configuration_test.dart: API verification uses persisted payment amount and stale evidence guard 00:04 +112 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_configuration_test.dart: new payment uses the winning bid and existing stored amounts are preserved 00:04 +113 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_configuration_test.dart: payment test amount configuration no longer affects runtime 00:04 +114 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_configuration_test.dart: live payment mode cannot be overridden to Demo verifier 00:04 +115 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_smoke_file_test.dart: provider diagnostic extracts only numeric code from synthetic response 00:04 +116 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_smoke_file_test.dart: malformed provider diagnostic never leaks a parsing error 00:04 +117 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_smoke_file_test.dart: single image inside a folder resolves without network or copying 00:04 +118 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_smoke_file_test.dart: missing or ambiguous folder never selects a slip arbitrarily 00:04 +119 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: quota GET preserves branch as one segment and never targets slip endpoint (123) 00:04 +120 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: quota GET preserves branch as one segment and never targets slip endpoint (fixture-branch_abc) 00:04 +121 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: full URL in branch config is rejected before authenticated request 00:04 +122 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: quota rejection retains only safe HTTP status and numeric provider code 00:04 +123 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: branch accepts safe opaque IDs and rejects path/control characters 00:04 +124 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: simultaneous payment retries invoke verification once and release gate 00:04 +125 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: failed verification releases gate for safe retry 00:04 +126 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: valid multipart uses backend amount, log and private HTTPS header Shell: [SlipOK] status=200 code=none rootSuccess=true dataSuccess=true receiverObject=true hasReceiverAccount=true hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=true amountPresent=true receivingBankPresent=true 00:04 +127 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: successful provider response with wrong amount still fails locally Shell: [SlipOK] status=200 code=none rootSuccess=true dataSuccess=true receiverObject=true hasReceiverAccount=true hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=true amountPresent=true receivingBankPresent=true 00:04 +128 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: provider rejection 1012 is safe and does not reuse reference Shell: [SlipOK] status=400 code=1012 rootSuccess=false dataSuccess=false receiverObject=false hasReceiverAccount=false hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=false amountPresent=false receivingBankPresent=false 00:04 +129 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slip_verification_migration_test.dart: slip verification migration is additive and prevents reuse Shell: [SlipOK] status=400 code=1013 rootSuccess=false dataSuccess=false receiverObject=false hasReceiverAccount=false hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=false amountPresent=false receivingBankPresent=false 00:04 +130 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slip_verification_migration_test.dart: slip verification migration is additive and prevents reuse Shell: [SlipOK] status=400 code=1014 rootSuccess=false dataSuccess=false receiverObject=false hasReceiverAccount=false hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=false amountPresent=false receivingBankPresent=false 00:04 +131 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slip_verification_migration_test.dart: slip verification migration is additive and prevents reuse Shell: [SlipOK] status=400 code=1005 rootSuccess=false dataSuccess=false receiverObject=false hasReceiverAccount=false hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=false amountPresent=false receivingBankPresent=false 00:04 +132 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slip_verification_migration_test.dart: slip verification migration is additive and prevents reuse Shell: [SlipOK] status=400 code=1006 rootSuccess=false dataSuccess=false receiverObject=false hasReceiverAccount=false hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=false amountPresent=false receivingBankPresent=false 00:04 +133 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slip_verification_migration_test.dart: slip verification migration is additive and prevents reuse Shell: [SlipOK] status=400 code=1007 rootSuccess=false dataSuccess=false receiverObject=false hasReceiverAccount=false hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=false amountPresent=false receivingBankPresent=false 00:04 +134 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slip_verification_migration_test.dart: slip verification migration is additive and prevents reuse Shell: [SlipOK] status=400 code=1008 rootSuccess=false dataSuccess=false receiverObject=false hasReceiverAccount=false hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=false amountPresent=false receivingBankPresent=false 00:04 +135 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slip_verification_migration_test.dart: slip verification migration is additive and prevents reuse Shell: [SlipOK] status=400 code=1011 rootSuccess=false dataSuccess=false receiverObject=false hasReceiverAccount=false hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=false amountPresent=false receivingBankPresent=false 00:04 +136 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slip_verification_migration_test.dart: slip verification migration is additive and prevents reuse 00:04 +137 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: config/quota/bank failure 1001 is unavailable, not invalid slip Shell: [SlipOK] status=400 code=1001 rootSuccess=false dataSuccess=false receiverObject=false hasReceiverAccount=false hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=false amountPresent=false receivingBankPresent=false 00:04 +138 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: config/quota/bank failure 1002 is unavailable, not invalid slip Shell: [SlipOK] status=400 code=1002 rootSuccess=false dataSuccess=false receiverObject=false hasReceiverAccount=false hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=false amountPresent=false receivingBankPresent=false 00:04 +139 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: config/quota/bank failure 1003 is unavailable, not invalid slip Shell: [SlipOK] status=400 code=1003 rootSuccess=false dataSuccess=false receiverObject=false hasReceiverAccount=false hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=false amountPresent=false receivingBankPresent=false 00:04 +140 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: config/quota/bank failure 1004 is unavailable, not invalid slip Shell: [SlipOK] status=400 code=1004 rootSuccess=false dataSuccess=false receiverObject=false hasReceiverAccount=false hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=false amountPresent=false receivingBankPresent=false 00:04 +141 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: config/quota/bank failure 1009 is unavailable, not invalid slip Shell: [SlipOK] status=400 code=1009 rootSuccess=false dataSuccess=false receiverObject=false hasReceiverAccount=false hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=false amountPresent=false receivingBankPresent=false 00:04 +142 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: config/quota/bank failure 1010 is unavailable, not invalid slip Shell: [SlipOK] status=400 code=1010 rootSuccess=false dataSuccess=false receiverObject=false hasReceiverAccount=false hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=false amountPresent=false receivingBankPresent=false 00:04 +143 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: HTTP 429 is retryable infrastructure failure Shell: [SlipOK] status=429 code=1011 rootSuccess=false dataSuccess=false receiverObject=false hasReceiverAccount=false hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=false amountPresent=false receivingBankPresent=false 00:04 +144 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: HTTP 503 is retryable infrastructure failure Shell: [SlipOK] status=503 code=1011 rootSuccess=false dataSuccess=false receiverObject=false hasReceiverAccount=false hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=false amountPresent=false receivingBankPresent=false 00:04 +145 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: network errors redact transport details 00:04 +146 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: timeout remains retryable 00:04 +147 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: missing configuration never sends request 00:04 +148 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: invalid and oversized files never reach provider 00:04 +149 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: invalid and oversized files never reach provider 00:04 +150 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: invalid and oversized files never reach provider 00:04 +151 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: invalid and oversized files never reach provider 00:04 +152 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: invalid and oversized files never reach provider 00:04 +153 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: invalid and oversized files never reach provider 00:04 +154 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: provider success accepts missing optional receiver display metadata Shell: [SlipOK] status=200 code=none rootSuccess=true dataSuccess=true receiverObject=false hasReceiverAccount=false hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=true amountPresent=true receivingBankPresent=false 00:04 +155 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: v1.13 sanitized receiver mapping (mock HTTP only) bank: branch verification is independent of display value Shell: [SlipOK] status=200 code=none rootSuccess=true dataSuccess=true receiverObject=true hasReceiverAccount=true hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=true amountPresent=true receivingBankPresent=true 00:04 +156 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: v1.13 sanitized receiver mapping (mock HTTP only) PromptPay: branch verification is independent of display value Shell: [SlipOK] status=200 code=none rootSuccess=true dataSuccess=true receiverObject=true hasReceiverAccount=false hasReceiverProxy=true hasDisplayName=false hasReceiverName=false hasTransRef=true amountPresent=true receivingBankPresent=true 00:04 +157 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: v1.13 sanitized receiver mapping (mock HTTP only) fully masked: branch verification is independent of display value Shell: [SlipOK] status=200 code=none rootSuccess=true dataSuccess=true receiverObject=true hasReceiverAccount=true hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=true amountPresent=true receivingBankPresent=true 00:04 +158 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: v1.13 sanitized receiver mapping (mock HTTP only) successful log=true accepts missing account/proxy display values Shell: [SlipOK] status=200 code=none rootSuccess=true dataSuccess=true receiverObject=true hasReceiverAccount=false hasReceiverProxy=false hasDisplayName=true hasReceiverName=false hasTransRef=true amountPresent=true receivingBankPresent=true 00:04 +159 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: v1.13 sanitized receiver mapping (mock HTTP only) receiver object alone is audit metadata after provider success Shell: [SlipOK] status=200 code=none rootSuccess=true dataSuccess=true receiverObject=true hasReceiverAccount=false hasReceiverProxy=false hasDisplayName=true hasReceiverName=true hasTransRef=true amountPresent=true receivingBankPresent=true 00:04 +160 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: v1.13 sanitized receiver mapping (mock HTTP only) HTTP 400/code 1012 remains a provider rejection Shell: [SlipOK] status=400 code=1012 rootSuccess=true dataSuccess=true receiverObject=true hasReceiverAccount=true hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=true amountPresent=true receivingBankPresent=true 00:04 +161 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: v1.13 sanitized receiver mapping (mock HTTP only) HTTP 400/code 1013 remains a provider rejection Shell: [SlipOK] status=400 code=1013 rootSuccess=true dataSuccess=true receiverObject=true hasReceiverAccount=true hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=true amountPresent=true receivingBankPresent=true 00:04 +162 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: v1.13 sanitized receiver mapping (mock HTTP only) HTTP 400/code 1014 remains a provider rejection Shell: [SlipOK] status=400 code=1014 rootSuccess=true dataSuccess=true receiverObject=true hasReceiverAccount=true hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=true amountPresent=true receivingBankPresent=true 00:05 +163 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: v1.13 sanitized receiver mapping (mock HTTP only) HTTP 200 with root.success=false is not provider proof Shell: [SlipOK] status=200 code=none rootSuccess=false dataSuccess=true receiverObject=true hasReceiverAccount=true hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=true amountPresent=true receivingBankPresent=true 00:05 +164 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/travel_documents_migration_test.dart: travel document migration is additive, private and idempotent Shell: [SlipOK] status=200 code=none rootSuccess=false dataSuccess=true receiverObject=true hasReceiverAccount=true hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=true amountPresent=true receivingBankPresent=true 00:05 +165 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/travel_documents_migration_test.dart: travel document migration is additive, private and idempotent Shell: [SlipOK] status=200 code=none rootSuccess=false dataSuccess=true receiverObject=true hasReceiverAccount=true hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=true amountPresent=true receivingBankPresent=true 00:05 +166 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/travel_documents_migration_test.dart: travel document migration is additive, private and idempotent Shell: [SlipOK] status=200 code=none rootSuccess=true dataSuccess=false receiverObject=true hasReceiverAccount=true hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=true amountPresent=true receivingBankPresent=true 00:05 +167 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/travel_documents_migration_test.dart: travel document migration is additive, private and idempotent Shell: [SlipOK] status=200 code=none rootSuccess=true dataSuccess=false receiverObject=true hasReceiverAccount=true hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=true amountPresent=true receivingBankPresent=true 00:05 +168 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/travel_documents_migration_test.dart: travel document migration is additive, private and idempotent Shell: [SlipOK] status=200 code=none rootSuccess=true dataSuccess=true receiverObject=true hasReceiverAccount=true hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=false amountPresent=true receivingBankPresent=true 00:05 +169 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/travel_documents_migration_test.dart: travel document migration is additive, private and idempotent Shell: [SlipOK] status=200 code=1012 rootSuccess=true dataSuccess=true receiverObject=true hasReceiverAccount=true hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=true amountPresent=true receivingBankPresent=true 00:05 +170 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/travel_documents_migration_test.dart: travel document migration is additive, private and idempotent Shell: [SlipOK] status=400 code=1014 rootSuccess=true dataSuccess=true receiverObject=true hasReceiverAccount=true hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=true amountPresent=true receivingBankPresent=true 00:05 +171 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/travel_documents_migration_test.dart: travel document migration is additive, private and idempotent Shell: [SlipOK] status=200 code=none rootSuccess=true dataSuccess=false receiverObject=true hasReceiverAccount=true hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=true amountPresent=true receivingBankPresent=true 00:05 +172 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/travel_documents_migration_test.dart: travel document migration is additive, private and idempotent Shell: [SlipOK] status=200 code=none rootSuccess=true dataSuccess=true receiverObject=true hasReceiverAccount=true hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=true amountPresent=false receivingBankPresent=true 00:05 +173 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/travel_documents_migration_test.dart: travel document migration is additive, private and idempotent Shell: [SlipOK] status=200 code=none rootSuccess=true dataSuccess=true receiverObject=true hasReceiverAccount=true hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=false amountPresent=true receivingBankPresent=true 00:05 +174 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/travel_documents_migration_test.dart: travel document migration is additive, private and idempotent 00:05 +175 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: v1.13 sanitized receiver mapping (mock HTTP only) provider receiver proof does not bypass required transTimestamp Shell: [SlipOK] status=200 code=none rootSuccess=true dataSuccess=true receiverObject=true hasReceiverAccount=true hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=true amountPresent=true receivingBankPresent=true 00:05 +176 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: v1.13 sanitized receiver mapping (mock HTTP only) HTTP 200 with missing transRef cannot finalize verification Shell: [SlipOK] status=200 code=none rootSuccess=true dataSuccess=true receiverObject=true hasReceiverAccount=true hasReceiverProxy=false hasDisplayName=false hasReceiverName=false hasTransRef=false amountPresent=true receivingBankPresent=true 00:05 +177 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: quota uses authenticated fixed HTTPS endpoint without redirects 00:05 +178 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/slipok_verifier_test.dart: factory configured SlipOK overrides demo and partial config fails closed 00:05 +179 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/travel_document_upload_test.dart: private document validator accepts PNG JPG and PDF signatures 00:05 +180 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/travel_document_upload_test.dart: private document validator strips traversal and rejects disguised files 00:05 +181 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/travel_document_upload_test.dart: private document validator rejects oversized uploads 00:05 +182 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/trip_hub_migration_test.dart: Trip Hub migration is additive, private and idempotent 00:05 +183 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/voting_migration_test.dart: Voting lifecycle migration is additive and enforces one round per group 00:05 +184 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/voting_policy_test.dart: three group members each have one vote 00:05 +185 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/voting_policy_test.dart: a member can change a vote before the deadline 00:05 +186 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/voting_policy_test.dart: a vote at or after the deadline is rejected 00:05 +187 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/voting_policy_test.dart: a non-member vote is rejected 00:05 +188 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/voting_policy_test.dart: one of three votes before the deadline keeps the round open 00:05 +189 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/voting_policy_test.dart: two of three votes before the deadline keeps the round open 00:05 +190 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/voting_policy_test.dart: all eligible members voting closes the round before the deadline 00:05 +191 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/voting_policy_test.dart: an expired deadline closes even when one member voted 00:05 +192 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/voting_policy_test.dart: zero votes at an expired deadline still closes for existing no-vote policy 00:05 +193 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/voting_policy_test.dart: the candidate with the highest vote count wins 00:05 +194 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/voting_policy_test.dart: ties use lower price, then earlier submission, then bid id 00:05 +195 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/voting_policy_test.dart: finalize is idempotent and preserves the recorded winner 00:05 +196 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/server/voting_policy_test.dart: payment is allowed only for the finalized winning bid 00:05 +197 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widgets/absolute_majority_vote_test.dart: city second of three votes displays winner and disables city voting immediately 00:07 +198 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widgets/destination_poll_entry_test.dart: group chat exposes poll entry and opens it for current group 00:07 +199 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widgets/destination_poll_entry_test.dart: group chat exposes poll entry and opens it for current group 00:07 +200 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widgets/destination_poll_entry_test.dart: returning from poll refreshes chat summary and keeps manual refresh 00:08 +201 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widgets/destination_poll_entry_test.dart: group chat keeps finalized place poll aggregate visible 00:08 +202 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widgets/destination_poll_entry_test.dart: poll page keeps region-first order and refreshes vote results 00:08 +203 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widgets/destination_poll_entry_test.dart: Japan package-catalog fixture votes city then city places 00:08 +204 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widgets/destination_poll_entry_test.dart: member city choice cannot unlock group place poll 00:08 +205 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widgets/destination_poll_entry_test.dart: final group city controls place options regardless of own vote 00:08 +206 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widgets/destination_poll_entry_test.dart: destination poll image assets are bundled and readable 00:08 +207 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widgets/destination_poll_entry_test.dart: poll UI shows tie history and finalized place rankings 00:09 +208 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widgets/destination_poll_entry_test.dart: expired below-quorum poll is visibly waiting, not finalized 00:09 +209 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widgets/destination_poll_entry_test.dart: poll API scopes read request to requested group 00:09 +210 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widgets/destination_poll_entry_test.dart: authenticated non-member receives the server 403 message 00:09 +211 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: ปุ่มค้นหาตรงกลางหน้าแรกเปิดหน้าค้นหาด้วย AI ได้ 00:11 +212 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: หน้าหลักและรายละเอียดอ้างอิงจำนวนสมาชิกล่าสุดจากกลุ่มเดียวกัน 00:11 +213 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: โปรไฟล์มือถือแก้ข้อมูลส่วนตัวและความสนใจได้ 00:11 +214 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: เลือกเชียงใหม่แล้วรายละเอียดเป็นข้อมูลเชียงใหม่ 00:12 +215 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: ผู้เยี่ยมชมเปิดโปรไฟล์โดยตรงแล้วถูกพาไปเข้าสู่ระบบ 00:13 +216 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: หน้าโหวตไม่แสดงข้อมูลให้ผู้ที่ไม่มีเซสชัน 00:13 +217 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: บันทึกคะแนนแล้วยังไม่ประกาศผู้ชนะก่อน finalize 00:13 +218 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: ปิดโหวตแล้ว finalize จึงแสดง winner และปุ่ม Payment 00:13 +219 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: หน้าชำระเงินไม่รับข้อเสนอที่ยังไม่ถูกเลือก 00:13 +220 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: พร้อมเพย์แสดง QR สาธิตและซ่อนเมื่อเลือกโอนธนาคาร 00:14 +221 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: ส่งสลิปแล้วแสดงกำลังตรวจสอบก่อนผลสำเร็จจาก backend 00:15 +222 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: Live Payment แสดงเฉพาะ QR จริงจาก Backend ไม่แสดง DEMO 00:16 +223 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: Payment ที่ config ไม่พร้อมไม่แสดง QR หรือปุ่มส่งหลักฐาน 00:16 +224 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: ฟอร์ม AI บนมือถือมีข้อมูลครบและไม่เกิด overflow 00:17 +225 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: Guest ใช้ฟอร์มเดียวกัน ข้อมูลคงอยู่ และไม่เข้า matching pool 00:17 +226 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: สมาชิกส่ง preference จาก controls เข้า automated matching 00:18 +227 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: แท็บข้อความโหลดห้องของกลุ่มที่ผู้ใช้เข้าร่วมด้วย groupId 00:18 +228 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: ออกจากกลุ่มได้โดยตรงจากหน้าข้อความ 00:18 +229 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: แชตแสดงสถานะชำระ นัดหมาย และให้คะแนนหลังจบทริปได้ 00:18 +230 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: แผ่นให้คะแนนจัดวางได้บนจอเล็กและปิดได้ 00:18 +231 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: ช่องความคิดเห็นและปุ่มส่งคะแนนเลื่อนได้เมื่อเปิดคีย์บอร์ด 00:19 +232 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: ครบเวลานับถอยหลังแล้วระบบยุบกลุ่มและปลดสมาชิก 00:19 +233 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: สมาชิกยืนยันออกจากกลุ่มแล้วสถานะในแอปถูกล้าง 00:20 +234 ~19: C:/Users/Admin/Downloads/TourAppProject/travelin_app/test/widget_test.dart: กลุ่มที่สมาชิกเต็มแสดงสถานะเต็มและปิดปุ่มเข้าร่วม 00:20 +235 ~19: All tests passed!