QA验收 #1 » back-case-results.md
QA 测试结果 - 预约纪要统一意图 - 独立自动化第1轮 - Backend - 2026-10-07
- QA:Mindsetech Agent Team / NDB QA Agent
- Redmine:NDB #1(会议管理与话题管理功能验收,含 Markdown/BFF 跨端验证)
- 环境与共同前置:独立 Docker PostgreSQL16 tmpfs 127.0.0.1:56487;test_qa_minutes_20261007;crm_backend;不连接共享业务库
- 候选:Backend 444afbe / BFF cb70aee / Mini dda1473,加本次未提交实现;HEAD 本身不包含实现,最终差异摘要需协调方绑定。
- 操作:python manage.py test api.meetings --noinput -v 2;每行用例名称与源码文件定位对应实际断言。
- 执行日期:2026-10-07 Asia/Shanghai;各框架原始时间/耗时保留于本地日志。
- 汇总:Pass 126 / Fail 0 / Blocked 0 / Skipped 0。
- 预期:对应命名用例的所有断言成立;实际记录仅对应此层级。
| 编号 | 用例 | 源码/层级 | 预期 | 实际 | 状态 | 证据/缺陷 |
|---|---|---|---|---|---|---|
| BACK-001 | test_service_creation_task_snapshots_and_gate_boundaries_use_local_time | api.meetings.test_datetimes.MeetingDateTimeDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-002 | test_service_update_normalizes_aware_values_and_preserves_naive_values | api.meetings.test_datetimes.MeetingDateTimeDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-003 | test_ai_draft_future_and_other_consumer_minutes_do_not_block | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-004 | test_ambiguous_customer_projects_are_not_replaced_by_aggregate | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-005 | test_api_nullable_read_mine_and_idempotency_do_not_leak_money | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-006 | test_booking_replays_existing_fact_after_minutes_are_published | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-007 | test_both_orders_share_task_and_cancel_keeps_reservation | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-008 | test_cancelled_non_online_and_deleted_meetings_are_rejected | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-009 | test_free_does_not_use_another_company_or_non_meeting_project | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-010 | test_free_falls_back_only_to_companyless_meeting_project | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-011 | test_free_without_contract_uses_customer_project_and_zero_task | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-012 | test_hmac_scopes_app_isolation_and_contact_are_required | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-013 | test_invalid_shared_tasks_never_create_second_task | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-014 | test_minutes_only_and_cancelled_attendance_cannot_confirm_attendance | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-015 | test_minutes_only_creates_unified_record_without_join_permission | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-016 | test_missing_key_invalid_intent_and_unsupported_delete_are_rejected | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-017 | test_no_start_or_end_cutoff_and_registration_gate_stays_independent | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-018 | test_paid_without_contract_and_customer_project_returns_contract_error_first | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-019 | test_paid_without_contract_and_mismatched_reuse_leave_no_new_facts | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-020 | test_published_manual_minutes_block_even_without_attachments | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-021 | test_reservation_preserves_web_schedule_snapshot_guard | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-022 | test_settled_attendance_task_can_gain_reservation_without_financial_changes | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-023 | test_settled_reservation_does_not_bypass_registration_recovery_guard | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-024 | test_unbound_contact_is_rejected_without_financial_side_effect | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-025 | test_unified_api_both_intents_share_record_and_mine_filters | api.meetings.test_minutes_reservations.MinutesReservationTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-026 | test_aggregate_project_name_and_schedule_follow_meeting_without_rebinding | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-027 | test_aggregate_supports_multiple_client_companies_and_existing_task_views | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-028 | test_application_hmac_cannot_access_web_api | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-029 | test_attendance_failed_key_can_retry_after_end_and_preserves_task | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-030 | test_attendance_rejects_unfinished_and_cancelled_meetings | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-031 | test_auto_project_creation_permissions_and_replay_scope | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-032 | test_auto_project_creation_rolls_back_on_meeting_failure_and_retries | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-033 | test_background_image_accepts_uploaded_urls_and_rejects_unsafe_values | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-034 | test_batched_serialization_has_constant_queries_for_multiple_meetings | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-035 | test_business_fields_round_trip_track_editor_and_hide_soft_deleted_rows | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-036 | test_company_options_paginate_companies_not_project_rows | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-037 | test_create_is_user_owned_idempotent_and_needs_no_application_secret | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-038 | test_create_rejects_client_selected_consumer_and_project | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-039 | test_cross_company_receivable_task_requires_project_access | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-040 | test_deleted_industry_cannot_be_assigned_to_meeting | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-041 | test_edit_fixed_hours_and_application_ownership_are_rejected | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-042 | test_expert_link_freezes_schedule_and_repeats_keep_single_task | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-043 | test_fixed_application_configuration_errors_do_not_create_projects | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-044 | test_idempotency_is_isolated_by_user_and_from_application_keys | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-045 | test_malformed_update_is_rejected_without_mutation | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-046 | test_missing_key_rolls_back_and_failed_key_can_retry | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-047 | test_options_are_scoped_and_never_expose_application_credentials | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-048 | test_page_manage_and_settle_permissions_are_separate | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-049 | test_project_scope_applies_to_read_create_update_and_client_id_collisions | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-050 | test_real_jwt_succeeds_but_unauthenticated_and_revoked_tokens_fail | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-051 | test_registration_repeated_from_different_users_keeps_single_task | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-052 | test_replay_rechecks_current_project_permission | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-053 | test_schedule_can_change_only_before_start_and_before_task_links | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-054 | test_schedule_create_update_and_response_round_trip_use_shanghai | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-055 | test_settlement_has_separate_permission_and_keeps_task_snapshot | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-056 | test_started_ended_and_cancelled_edit_rules | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-057 | test_topic_management_crud_relations_and_status_round_trip | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-058 | test_topic_management_permissions_unknown_fields_and_relation_scope | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-059 | test_web_jwt_cannot_access_hmac_internal_api | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-060 | test_web_schema_uses_jwt_and_object_envelope | api.meetings.test_web.MeetingWebTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-061 | test_banner_meetings_have_images_are_active_sorted_and_limited | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-062 | test_cancelled_meeting_hides_join_link_after_start | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-063 | test_cancelled_registration_can_reregister_through_api | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-064 | test_catalog_only_exposes_published_application_scoped_records | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-065 | test_catalog_topic_relations_and_public_expert_projection | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-066 | test_create_meeting_idempotency_and_time_validation | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-067 | test_cross_application_publication_requires_separate_scope | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-068 | test_different_keys_use_natural_uniqueness | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-069 | test_failed_operation_rolls_back_task_and_idempotency_key | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-070 | test_future_meeting_hides_join_link_even_with_valid_registration | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-071 | test_hmac_attendance_rejects_future_and_accepts_ended_meeting | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-072 | test_hmac_schedule_creation_and_response_round_trip_use_shanghai | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-073 | test_interview_request_is_idempotent_and_rejects_unpublished_expert | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-074 | test_join_link_opens_exactly_at_meeting_start | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-075 | test_join_link_requires_scope_and_active_registration | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-076 | test_list_and_mine_order_latest_meeting_first_with_stable_ties | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-077 | test_management_publishes_to_consumer_without_granting_bff_write_scope | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-078 | test_missing_key_and_invalid_payload_do_not_write | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-079 | test_missing_scope_and_other_application_are_rejected | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-080 | test_new_nonce_same_key_replays_one_task_and_changed_payload_conflicts | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-081 | test_no_contract_code_and_no_financial_side_effect | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-082 | test_nonce_replay_is_rejected_even_with_same_business_key | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-083 | test_openapi_matches_envelopes_and_private_join_link | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-084 | test_publication_rejects_disabled_expired_or_unscoped_consumer | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-085 | test_resolve_contact_and_ambiguity | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-086 | test_resolve_contact_requires_new_auth_after_number_replacement | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-087 | test_scope_protected_join_and_current_mine_after_cancel | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-088 | test_wire_list_detail_and_registration_null | api.meetings.tests.MeetingApiTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-089 | test_attendance_accepts_exact_end_boundary_without_changing_task | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-090 | test_attendance_confirmation_requires_ended_status_and_elapsed_time | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-091 | test_attendance_does_not_automatically_bill | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-092 | test_automatic_context_and_contract_errors | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-093 | test_billed_invoiced_and_paid_tasks_lock_cancellation | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-094 | test_cancelled_registration_cannot_restore_after_meeting_starts | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-095 | test_catalog_import_is_idempotent_and_dry_run_rolls_back | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-096 | test_catalog_import_rejects_invalid_choices_and_attachment_shape | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-097 | test_cost_cannot_move_out_of_meeting_task | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-098 | test_cross_company_registration_uses_own_contract_and_project | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-099 | test_database_constraints_and_protected_task_mapping | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-100 | test_existing_task_edit_cannot_finish_unsettled_expert | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-101 | test_expert_task_cannot_be_invoiced_or_have_duplicate_cost | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-102 | test_finance_billing_list_and_batch_status_exclude_payable_task | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-103 | test_invoice_binding_locks_even_if_legacy_status_is_stale | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-104 | test_multiple_contracts_require_explicit_selection | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-105 | test_multiple_experts_have_separate_payable_tasks | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-106 | test_natural_duplicate_rejects_changed_billing_context | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-107 | test_negative_and_missing_rate_settlement_roll_back | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-108 | test_repeat_cancel_and_reregister_reuses_task | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-109 | test_same_company_each_contact_gets_one_receivable | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-110 | test_settled_cancelled_registration_cannot_restore | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-111 | test_settlement_reads_latest_expert_profile_and_snapshots_once | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-112 | test_task_guard_allows_manual_finish_and_cancel_without_snapshot_changes | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-113 | test_unpaid_settlement_adjusts_same_cost | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-114 | test_zero_customer_invoice_keeps_existing_positive_amount_rule | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-115 | test_zero_expert_hours_create_zero_unpaid_cost_and_lock_after_payment | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-116 | test_zero_hours_and_zero_rate_still_require_customer_billing | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-117 | test_zero_rate_expert_cost_and_default_project_pm | api.meetings.tests.MeetingDomainTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-118 | test_all_input_forms_are_shanghai_wall_time_in_winter_and_summer | api.meetings.test_datetimes.MeetingDateTimeSerializerTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-119 | test_legacy_naive_response_has_explicit_offset_and_round_trips | api.meetings.test_datetimes.MeetingDateTimeSerializerTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-120 | test_mixed_offsets_validate_chronological_order | api.meetings.test_datetimes.MeetingDateTimeSerializerTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-121 | test_intent_migration_preserves_existing_attendance_task | api.meetings.test_minutes_reservations.MinutesReservationConcurrencyTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-122 | test_parallel_booking_and_attendance_share_one_task | api.meetings.test_minutes_reservations.MinutesReservationConcurrencyTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-123 | test_parallel_same_key_replays_one_booking_response | api.meetings.test_minutes_reservations.MinutesReservationConcurrencyTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-124 | test_parallel_user_idempotency_creates_one_meeting | api.meetings.test_web.MeetingWebConcurrencyTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-125 | test_concurrent_business_key_persists_one_result | api.meetings.tests.MeetingConcurrencyTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
| BACK-126 | test_concurrent_natural_registration_returns_one_task | api.meetings.tests.MeetingConcurrencyTests / 隔离测试 | 命名场景断言全部成立 | 断言通过 | Pass | backend-tests.log |
边界与后续
本轮未进行共享业务写入、真实收费 Task 创建或真实员工邮件投递。Backend 测试库已由 Django 销毁;独立测试容器停止后其 tmpfs 测试数据不保留。BFF pg-mem 不能证明真实 PostgreSQL锁、回滚或进程重启后磁盘持久性。Node fixture 不代替真实微信认证、用户操作与截图。未来自动纪要分流/通知未实现,不在本轮完成声明中。
MINI-060 为已知卡片背景色静态断言与现有 UI 冲突;保留 Fail,不回退 UI。成功预约真实流程尚需免费 fixture 审定;图文手册与 UI/项目校对未完成。整体 QA 尚未完成。