@tellescope/sdk 2.0.0-beta.1 → 2.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +24 -0
- package/env.example +6 -0
- package/lib/cjs/sdk.d.ts +373 -3
- package/lib/cjs/sdk.d.ts.map +1 -1
- package/lib/cjs/sdk.js.map +1 -1
- package/lib/cjs/tests/api_tests/booking_prevent_upcoming_duplicate.test.d.ts +22 -0
- package/lib/cjs/tests/api_tests/booking_prevent_upcoming_duplicate.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/booking_prevent_upcoming_duplicate.test.js +506 -0
- package/lib/cjs/tests/api_tests/booking_prevent_upcoming_duplicate.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/enduser_fields_sync.test.d.ts +3 -1
- package/lib/cjs/tests/api_tests/enduser_fields_sync.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/enduser_fields_sync.test.js +3 -1
- package/lib/cjs/tests/api_tests/enduser_fields_sync.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/enduser_observations_auto_review.test.d.ts +3 -1
- package/lib/cjs/tests/api_tests/enduser_observations_auto_review.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/enduser_observations_auto_review.test.js +3 -1
- package/lib/cjs/tests/api_tests/enduser_observations_auto_review.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/form_vital_reading.test.d.ts +7 -0
- package/lib/cjs/tests/api_tests/form_vital_reading.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/form_vital_reading.test.js +461 -0
- package/lib/cjs/tests/api_tests/form_vital_reading.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/journey_statistics_cache.test.d.ts +26 -0
- package/lib/cjs/tests/api_tests/journey_statistics_cache.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/journey_statistics_cache.test.js +232 -0
- package/lib/cjs/tests/api_tests/journey_statistics_cache.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/journey_step_manual_count.test.d.ts +34 -0
- package/lib/cjs/tests/api_tests/journey_step_manual_count.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/journey_step_manual_count.test.js +243 -0
- package/lib/cjs/tests/api_tests/journey_step_manual_count.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/load_threads_care_team.test.d.ts +3 -1
- package/lib/cjs/tests/api_tests/load_threads_care_team.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/load_threads_care_team.test.js +3 -1
- package/lib/cjs/tests/api_tests/load_threads_care_team.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/organization_signup.test.d.ts +3 -1
- package/lib/cjs/tests/api_tests/organization_signup.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/organization_signup.test.js +3 -1
- package/lib/cjs/tests/api_tests/organization_signup.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/phone_embed_leave_message.test.d.ts +7 -0
- package/lib/cjs/tests/api_tests/phone_embed_leave_message.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/phone_embed_leave_message.test.js +571 -0
- package/lib/cjs/tests/api_tests/phone_embed_leave_message.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/programs.test.d.ts +3 -1
- package/lib/cjs/tests/api_tests/programs.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/programs.test.js +73 -17
- package/lib/cjs/tests/api_tests/programs.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/public_form_case_insensitive_match.test.d.ts +7 -0
- package/lib/cjs/tests/api_tests/public_form_case_insensitive_match.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/public_form_case_insensitive_match.test.js +733 -0
- package/lib/cjs/tests/api_tests/public_form_case_insensitive_match.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/security/add-to-journey-foreign-enduserid.test.d.ts +3 -1
- package/lib/cjs/tests/api_tests/security/add-to-journey-foreign-enduserid.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/security/add-to-journey-foreign-enduserid.test.js +3 -1
- package/lib/cjs/tests/api_tests/security/add-to-journey-foreign-enduserid.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/security/appointment-reschedule-ownership.test.d.ts +3 -1
- package/lib/cjs/tests/api_tests/security/appointment-reschedule-ownership.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/security/appointment-reschedule-ownership.test.js +3 -1
- package/lib/cjs/tests/api_tests/security/appointment-reschedule-ownership.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/security/file-link-session-confinement.test.d.ts +3 -1
- package/lib/cjs/tests/api_tests/security/file-link-session-confinement.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/security/file-link-session-confinement.test.js +3 -1
- package/lib/cjs/tests/api_tests/security/file-link-session-confinement.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/security/form-logic-js-execution.test.d.ts +3 -1
- package/lib/cjs/tests/api_tests/security/form-logic-js-execution.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/security/form-logic-js-execution.test.js +3 -1
- package/lib/cjs/tests/api_tests/security/form-logic-js-execution.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/security/formsort_webhook_auth_field_lock.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/security/formsort_webhook_auth_field_lock.test.js +424 -39
- package/lib/cjs/tests/api_tests/security/formsort_webhook_auth_field_lock.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/security/register_business_id_injection.test.js +2 -2
- package/lib/cjs/tests/api_tests/security/register_business_id_injection.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.d.ts +3 -1
- package/lib/cjs/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.js +3 -1
- package/lib/cjs/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/session_for_join_link.test.d.ts +10 -0
- package/lib/cjs/tests/api_tests/session_for_join_link.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/session_for_join_link.test.js +147 -0
- package/lib/cjs/tests/api_tests/session_for_join_link.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/set_fields_order_templates.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/set_fields_order_templates.test.js +191 -88
- package/lib/cjs/tests/api_tests/set_fields_order_templates.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/stripe_checkout_items.test.d.ts +17 -0
- package/lib/cjs/tests/api_tests/stripe_checkout_items.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/stripe_checkout_items.test.js +219 -0
- package/lib/cjs/tests/api_tests/stripe_checkout_items.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/stripe_multiple_customer_ids.test.d.ts +5 -0
- package/lib/cjs/tests/api_tests/stripe_multiple_customer_ids.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/stripe_multiple_customer_ids.test.js +396 -0
- package/lib/cjs/tests/api_tests/stripe_multiple_customer_ids.test.js.map +1 -0
- package/lib/cjs/tests/api_tests/tickets_bulk_assign_from_queue.test.d.ts +3 -1
- package/lib/cjs/tests/api_tests/tickets_bulk_assign_from_queue.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/tickets_bulk_assign_from_queue.test.js +3 -1
- package/lib/cjs/tests/api_tests/tickets_bulk_assign_from_queue.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/totp_mfa.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/totp_mfa.test.js +37 -31
- package/lib/cjs/tests/api_tests/totp_mfa.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/trigger_contains_matching.test.d.ts +3 -1
- package/lib/cjs/tests/api_tests/trigger_contains_matching.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/trigger_contains_matching.test.js +3 -1
- package/lib/cjs/tests/api_tests/trigger_contains_matching.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/user_logs_restore_deleted.test.d.ts +3 -1
- package/lib/cjs/tests/api_tests/user_logs_restore_deleted.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/user_logs_restore_deleted.test.js +3 -1
- package/lib/cjs/tests/api_tests/user_logs_restore_deleted.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/vital_review_trigger_action.test.d.ts +3 -1
- package/lib/cjs/tests/api_tests/vital_review_trigger_action.test.d.ts.map +1 -1
- package/lib/cjs/tests/api_tests/vital_review_trigger_action.test.js +3 -1
- package/lib/cjs/tests/api_tests/vital_review_trigger_action.test.js.map +1 -1
- package/lib/cjs/tests/api_tests/vitl_push.test.d.ts +7 -0
- package/lib/cjs/tests/api_tests/vitl_push.test.d.ts.map +1 -0
- package/lib/cjs/tests/api_tests/vitl_push.test.js +341 -0
- package/lib/cjs/tests/api_tests/vitl_push.test.js.map +1 -0
- package/lib/cjs/tests/setup_isolated.d.ts +48 -0
- package/lib/cjs/tests/setup_isolated.d.ts.map +1 -1
- package/lib/cjs/tests/setup_isolated.js +119 -1
- package/lib/cjs/tests/setup_isolated.js.map +1 -1
- package/lib/cjs/tests/tests.d.ts.map +1 -1
- package/lib/cjs/tests/tests.js +374 -292
- package/lib/cjs/tests/tests.js.map +1 -1
- package/lib/cjs/tests/unit_tests/isolated_suite_discovery.test.d.ts +2 -0
- package/lib/cjs/tests/unit_tests/isolated_suite_discovery.test.d.ts.map +1 -0
- package/lib/cjs/tests/unit_tests/isolated_suite_discovery.test.js +201 -0
- package/lib/cjs/tests/unit_tests/isolated_suite_discovery.test.js.map +1 -0
- package/lib/cjs/tests/unit_tests/programs_conditional_logic.test.d.ts +3 -0
- package/lib/cjs/tests/unit_tests/programs_conditional_logic.test.d.ts.map +1 -0
- package/lib/cjs/tests/unit_tests/programs_conditional_logic.test.js +120 -0
- package/lib/cjs/tests/unit_tests/programs_conditional_logic.test.js.map +1 -0
- package/lib/cjs/tests/webhooks_tests.js +44 -34
- package/lib/cjs/tests/webhooks_tests.js.map +1 -1
- package/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/esm/sdk.d.ts +373 -3
- package/lib/esm/sdk.d.ts.map +1 -1
- package/lib/esm/sdk.js.map +1 -1
- package/lib/esm/tests/api_tests/booking_prevent_upcoming_duplicate.test.d.ts +22 -0
- package/lib/esm/tests/api_tests/booking_prevent_upcoming_duplicate.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/booking_prevent_upcoming_duplicate.test.js +501 -0
- package/lib/esm/tests/api_tests/booking_prevent_upcoming_duplicate.test.js.map +1 -0
- package/lib/esm/tests/api_tests/enduser_fields_sync.test.d.ts +3 -1
- package/lib/esm/tests/api_tests/enduser_fields_sync.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/enduser_fields_sync.test.js +2 -0
- package/lib/esm/tests/api_tests/enduser_fields_sync.test.js.map +1 -1
- package/lib/esm/tests/api_tests/enduser_observations_auto_review.test.d.ts +3 -1
- package/lib/esm/tests/api_tests/enduser_observations_auto_review.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/enduser_observations_auto_review.test.js +2 -0
- package/lib/esm/tests/api_tests/enduser_observations_auto_review.test.js.map +1 -1
- package/lib/esm/tests/api_tests/form_vital_reading.test.d.ts +7 -0
- package/lib/esm/tests/api_tests/form_vital_reading.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/form_vital_reading.test.js +456 -0
- package/lib/esm/tests/api_tests/form_vital_reading.test.js.map +1 -0
- package/lib/esm/tests/api_tests/journey_statistics_cache.test.d.ts +26 -0
- package/lib/esm/tests/api_tests/journey_statistics_cache.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/journey_statistics_cache.test.js +227 -0
- package/lib/esm/tests/api_tests/journey_statistics_cache.test.js.map +1 -0
- package/lib/esm/tests/api_tests/journey_step_manual_count.test.d.ts +34 -0
- package/lib/esm/tests/api_tests/journey_step_manual_count.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/journey_step_manual_count.test.js +238 -0
- package/lib/esm/tests/api_tests/journey_step_manual_count.test.js.map +1 -0
- package/lib/esm/tests/api_tests/load_threads_care_team.test.d.ts +3 -1
- package/lib/esm/tests/api_tests/load_threads_care_team.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/load_threads_care_team.test.js +2 -0
- package/lib/esm/tests/api_tests/load_threads_care_team.test.js.map +1 -1
- package/lib/esm/tests/api_tests/organization_signup.test.d.ts +3 -1
- package/lib/esm/tests/api_tests/organization_signup.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/organization_signup.test.js +2 -0
- package/lib/esm/tests/api_tests/organization_signup.test.js.map +1 -1
- package/lib/esm/tests/api_tests/phone_embed_leave_message.test.d.ts +7 -0
- package/lib/esm/tests/api_tests/phone_embed_leave_message.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/phone_embed_leave_message.test.js +566 -0
- package/lib/esm/tests/api_tests/phone_embed_leave_message.test.js.map +1 -0
- package/lib/esm/tests/api_tests/programs.test.d.ts +3 -1
- package/lib/esm/tests/api_tests/programs.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/programs.test.js +72 -16
- package/lib/esm/tests/api_tests/programs.test.js.map +1 -1
- package/lib/esm/tests/api_tests/public_form_case_insensitive_match.test.d.ts +7 -0
- package/lib/esm/tests/api_tests/public_form_case_insensitive_match.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/public_form_case_insensitive_match.test.js +728 -0
- package/lib/esm/tests/api_tests/public_form_case_insensitive_match.test.js.map +1 -0
- package/lib/esm/tests/api_tests/security/add-to-journey-foreign-enduserid.test.d.ts +3 -1
- package/lib/esm/tests/api_tests/security/add-to-journey-foreign-enduserid.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/security/add-to-journey-foreign-enduserid.test.js +2 -0
- package/lib/esm/tests/api_tests/security/add-to-journey-foreign-enduserid.test.js.map +1 -1
- package/lib/esm/tests/api_tests/security/appointment-reschedule-ownership.test.d.ts +3 -1
- package/lib/esm/tests/api_tests/security/appointment-reschedule-ownership.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/security/appointment-reschedule-ownership.test.js +2 -0
- package/lib/esm/tests/api_tests/security/appointment-reschedule-ownership.test.js.map +1 -1
- package/lib/esm/tests/api_tests/security/file-link-session-confinement.test.d.ts +3 -1
- package/lib/esm/tests/api_tests/security/file-link-session-confinement.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/security/file-link-session-confinement.test.js +2 -0
- package/lib/esm/tests/api_tests/security/file-link-session-confinement.test.js.map +1 -1
- package/lib/esm/tests/api_tests/security/form-logic-js-execution.test.d.ts +3 -1
- package/lib/esm/tests/api_tests/security/form-logic-js-execution.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/security/form-logic-js-execution.test.js +2 -0
- package/lib/esm/tests/api_tests/security/form-logic-js-execution.test.js.map +1 -1
- package/lib/esm/tests/api_tests/security/formsort_webhook_auth_field_lock.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/security/formsort_webhook_auth_field_lock.test.js +424 -39
- package/lib/esm/tests/api_tests/security/formsort_webhook_auth_field_lock.test.js.map +1 -1
- package/lib/esm/tests/api_tests/security/register_business_id_injection.test.js +2 -2
- package/lib/esm/tests/api_tests/security/register_business_id_injection.test.js.map +1 -1
- package/lib/esm/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.d.ts +3 -1
- package/lib/esm/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.js +2 -0
- package/lib/esm/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.js.map +1 -1
- package/lib/esm/tests/api_tests/session_for_join_link.test.d.ts +10 -0
- package/lib/esm/tests/api_tests/session_for_join_link.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/session_for_join_link.test.js +142 -0
- package/lib/esm/tests/api_tests/session_for_join_link.test.js.map +1 -0
- package/lib/esm/tests/api_tests/set_fields_order_templates.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/set_fields_order_templates.test.js +191 -88
- package/lib/esm/tests/api_tests/set_fields_order_templates.test.js.map +1 -1
- package/lib/esm/tests/api_tests/stripe_checkout_items.test.d.ts +17 -0
- package/lib/esm/tests/api_tests/stripe_checkout_items.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/stripe_checkout_items.test.js +214 -0
- package/lib/esm/tests/api_tests/stripe_checkout_items.test.js.map +1 -0
- package/lib/esm/tests/api_tests/stripe_multiple_customer_ids.test.d.ts +5 -0
- package/lib/esm/tests/api_tests/stripe_multiple_customer_ids.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/stripe_multiple_customer_ids.test.js +388 -0
- package/lib/esm/tests/api_tests/stripe_multiple_customer_ids.test.js.map +1 -0
- package/lib/esm/tests/api_tests/tickets_bulk_assign_from_queue.test.d.ts +3 -1
- package/lib/esm/tests/api_tests/tickets_bulk_assign_from_queue.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/tickets_bulk_assign_from_queue.test.js +2 -0
- package/lib/esm/tests/api_tests/tickets_bulk_assign_from_queue.test.js.map +1 -1
- package/lib/esm/tests/api_tests/totp_mfa.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/totp_mfa.test.js +37 -31
- package/lib/esm/tests/api_tests/totp_mfa.test.js.map +1 -1
- package/lib/esm/tests/api_tests/trigger_contains_matching.test.d.ts +3 -1
- package/lib/esm/tests/api_tests/trigger_contains_matching.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/trigger_contains_matching.test.js +2 -0
- package/lib/esm/tests/api_tests/trigger_contains_matching.test.js.map +1 -1
- package/lib/esm/tests/api_tests/user_logs_restore_deleted.test.d.ts +3 -1
- package/lib/esm/tests/api_tests/user_logs_restore_deleted.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/user_logs_restore_deleted.test.js +2 -0
- package/lib/esm/tests/api_tests/user_logs_restore_deleted.test.js.map +1 -1
- package/lib/esm/tests/api_tests/vital_review_trigger_action.test.d.ts +3 -1
- package/lib/esm/tests/api_tests/vital_review_trigger_action.test.d.ts.map +1 -1
- package/lib/esm/tests/api_tests/vital_review_trigger_action.test.js +2 -0
- package/lib/esm/tests/api_tests/vital_review_trigger_action.test.js.map +1 -1
- package/lib/esm/tests/api_tests/vitl_push.test.d.ts +7 -0
- package/lib/esm/tests/api_tests/vitl_push.test.d.ts.map +1 -0
- package/lib/esm/tests/api_tests/vitl_push.test.js +333 -0
- package/lib/esm/tests/api_tests/vitl_push.test.js.map +1 -0
- package/lib/esm/tests/setup_isolated.d.ts +48 -0
- package/lib/esm/tests/setup_isolated.d.ts.map +1 -1
- package/lib/esm/tests/setup_isolated.js +114 -0
- package/lib/esm/tests/setup_isolated.js.map +1 -1
- package/lib/esm/tests/tests.d.ts.map +1 -1
- package/lib/esm/tests/tests.js +375 -293
- package/lib/esm/tests/tests.js.map +1 -1
- package/lib/esm/tests/unit_tests/isolated_suite_discovery.test.d.ts +2 -0
- package/lib/esm/tests/unit_tests/isolated_suite_discovery.test.d.ts.map +1 -0
- package/lib/esm/tests/unit_tests/isolated_suite_discovery.test.js +174 -0
- package/lib/esm/tests/unit_tests/isolated_suite_discovery.test.js.map +1 -0
- package/lib/esm/tests/unit_tests/programs_conditional_logic.test.d.ts +3 -0
- package/lib/esm/tests/unit_tests/programs_conditional_logic.test.d.ts.map +1 -0
- package/lib/esm/tests/unit_tests/programs_conditional_logic.test.js +117 -0
- package/lib/esm/tests/unit_tests/programs_conditional_logic.test.js.map +1 -0
- package/lib/esm/tests/webhooks_tests.js +44 -34
- package/lib/esm/tests/webhooks_tests.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -11
- package/src/sdk.ts +3 -2
- package/src/tests/api_tests/booking_prevent_upcoming_duplicate.test.ts +541 -0
- package/src/tests/api_tests/enduser_fields_sync.test.ts +4 -0
- package/src/tests/api_tests/enduser_observations_auto_review.test.ts +4 -0
- package/src/tests/api_tests/form_vital_reading.test.ts +393 -0
- package/src/tests/api_tests/journey_statistics_cache.test.ts +237 -0
- package/src/tests/api_tests/journey_step_manual_count.test.ts +220 -0
- package/src/tests/api_tests/load_threads_care_team.test.ts +4 -0
- package/src/tests/api_tests/organization_signup.test.ts +4 -0
- package/src/tests/api_tests/phone_embed_leave_message.test.ts +541 -0
- package/src/tests/api_tests/programs.test.ts +351 -0
- package/src/tests/api_tests/public_form_case_insensitive_match.test.ts +632 -0
- package/src/tests/api_tests/security/add-to-journey-foreign-enduserid.test.ts +4 -0
- package/src/tests/api_tests/security/appointment-reschedule-ownership.test.ts +4 -0
- package/src/tests/api_tests/security/file-link-session-confinement.test.ts +4 -0
- package/src/tests/api_tests/security/form-logic-js-execution.test.ts +4 -0
- package/src/tests/api_tests/security/formsort_webhook_auth_field_lock.test.ts +225 -0
- package/src/tests/api_tests/security/register_business_id_injection.test.ts +2 -2
- package/src/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.ts +4 -0
- package/src/tests/api_tests/session_for_join_link.test.ts +99 -0
- package/src/tests/api_tests/set_fields_order_templates.test.ts +94 -9
- package/src/tests/api_tests/stripe_checkout_items.test.ts +186 -0
- package/src/tests/api_tests/tickets_bulk_assign_from_queue.test.ts +4 -0
- package/src/tests/api_tests/totp_mfa.test.ts +10 -5
- package/src/tests/api_tests/trigger_contains_matching.test.ts +4 -0
- package/src/tests/api_tests/user_logs_restore_deleted.test.ts +4 -0
- package/src/tests/api_tests/vital_review_trigger_action.test.ts +455 -0
- package/src/tests/api_tests/vitl_push.test.ts +323 -0
- package/src/tests/setup_isolated.ts +140 -0
- package/src/tests/tests.ts +124 -30
- package/src/tests/unit_tests/isolated_suite_discovery.test.ts +178 -0
- package/src/tests/unit_tests/programs_conditional_logic.test.ts +189 -0
- package/src/tests/webhooks_tests.ts +6 -1
- package/test_generated.pdf +0 -0
|
@@ -0,0 +1,566 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
require('source-map-support').install();
|
|
38
|
+
import { EnduserSession } from "../../sdk";
|
|
39
|
+
import { assert_checks, setup_isolated_tenant, } from "../setup_isolated";
|
|
40
|
+
var host = process.env.API_URL || 'http://localhost:8080';
|
|
41
|
+
var RAND = function () { return Math.random().toString(36).slice(2, 10); };
|
|
42
|
+
/**
|
|
43
|
+
* Coverage for the Phone Embed backend, `sms_messages.leave_message` (api/v1/api.ts) — the endpoint
|
|
44
|
+
* behind the "Leave a note, and we will text you back soon" widget.
|
|
45
|
+
*
|
|
46
|
+
* Two changes are under test:
|
|
47
|
+
*
|
|
48
|
+
* 1. Matching. Historically phone-only: a submission from a number that already existed was filed
|
|
49
|
+
* onto that contact no matter whose name was typed. Now, for orgs that have opted into
|
|
50
|
+
* `settings.endusers.matchEmailAndNames`, phone AND fname AND lname must all match, compared
|
|
51
|
+
* through `nameMatchValue` so `settings.endusers.caseInsensitiveMatching` applies exactly as it
|
|
52
|
+
* does to public form intake. Both settings OFF must behave exactly as before.
|
|
53
|
+
*
|
|
54
|
+
* 2. The "Incoming Message" automation trigger. Submissions used to fire only "Contact Created" and
|
|
55
|
+
* "Field Equals"; they now go through `handleIncomingCommunication` with channel 'SMS' and NO
|
|
56
|
+
* destination, so unfiltered and SMS-filtered triggers fire while destination-filtered and
|
|
57
|
+
* Email-filtered ones stay silent.
|
|
58
|
+
*
|
|
59
|
+
* Fixture warning, inherited from public_form_case_insensitive_match: `nameValidator` applies
|
|
60
|
+
* `first_letter_capitalized`, so a submitted "carol" is already stored as "Carol" and a
|
|
61
|
+
* "carol"/"Carol" fixture would pass with the setting OFF, proving nothing. The case-insensitive
|
|
62
|
+
* cases here differ AFTER the first letter ("MCDONALD" vs "mcdonald" -> "Mcdonald").
|
|
63
|
+
*
|
|
64
|
+
* `setup_isolated` rather than `setup_tests` because this flips ORGANIZATION settings, which on the
|
|
65
|
+
* shared fixture org would change behavior under every concurrently running suite, and because it
|
|
66
|
+
* asserts on "how many contacts carry this phone number", which needs a tenant nobody else writes to.
|
|
67
|
+
*
|
|
68
|
+
* RATE LIMIT: `leave_message` is throttled per IP at 10/min and 50/hour (`enduser-leave_message-ip`).
|
|
69
|
+
* Every submission in this suite comes from one IP, so the post count is kept to 8 deliberately — see
|
|
70
|
+
* POST_BUDGET below. Adding a submission risks 429ing the run rather than failing a check.
|
|
71
|
+
*
|
|
72
|
+
* Runs standalone or as part of the main suite:
|
|
73
|
+
* npm run test:modular -- api_tests/phone_embed_leave_message
|
|
74
|
+
*/
|
|
75
|
+
/** Hard ceiling this suite stays under; `leave_message` allows 10 posts per minute per IP. */
|
|
76
|
+
var POST_BUDGET = 8;
|
|
77
|
+
/** Polls until `check` returns truthy or the budget runs out. The endpoint responds 204 before its
|
|
78
|
+
* trigger work finishes (handleIncomingCommunication is deliberately not awaited), so every
|
|
79
|
+
* assertion about a trigger's effect has to wait for it. Returns the last value either way, so a
|
|
80
|
+
* timeout produces a failed check with real evidence rather than a thrown error. */
|
|
81
|
+
var pollFor = function (describe, read, check, _a) {
|
|
82
|
+
var _b = _a === void 0 ? {} : _a, _c = _b.timeoutMs, timeoutMs = _c === void 0 ? 15000 : _c, _d = _b.intervalMs, intervalMs = _d === void 0 ? 500 : _d;
|
|
83
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
84
|
+
var deadline, last;
|
|
85
|
+
return __generator(this, function (_e) {
|
|
86
|
+
switch (_e.label) {
|
|
87
|
+
case 0:
|
|
88
|
+
deadline = Date.now() + timeoutMs;
|
|
89
|
+
return [4 /*yield*/, read()];
|
|
90
|
+
case 1:
|
|
91
|
+
last = _e.sent();
|
|
92
|
+
_e.label = 2;
|
|
93
|
+
case 2:
|
|
94
|
+
if (!(!check(last) && Date.now() < deadline)) return [3 /*break*/, 5];
|
|
95
|
+
return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, intervalMs); })];
|
|
96
|
+
case 3:
|
|
97
|
+
_e.sent();
|
|
98
|
+
return [4 /*yield*/, read()];
|
|
99
|
+
case 4:
|
|
100
|
+
last = _e.sent();
|
|
101
|
+
return [3 /*break*/, 2];
|
|
102
|
+
case 5:
|
|
103
|
+
if (!check(last))
|
|
104
|
+
console.log(" (timed out waiting for ".concat(describe, " after ").concat(timeoutMs, "ms)"));
|
|
105
|
+
return [2 /*return*/, last];
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
};
|
|
110
|
+
export var phone_embed_leave_message_checks = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
111
|
+
var checks, record, tenant, sdk_1, businessId_1, posts_1, submit, contactsWithPhone_1, messagesFor_1, setSettings, TAG_ANY_1, TAG_SMS, TAG_EMAIL, TAG_DESTINATION, TAG_CREATED, addTagsTrigger, removeOnIncomingJourney_1, inRemoveJourney_1, PHONE_LEGACY_1, stampBeforeMatch_1, afterFirst, alice_1, notes, tagged, stamped, _a, _b, _c, _d, _e, _f, _g, _h, afterSecond, notes, restamped, removed, _j, _k, _l, _m, _o, _p, _q, _r, PHONE_NAMED_1, afterFirst, carol_1, taggedOn, afterSame, notes, afterDifferent, dave, _s, _t, _u, _v, _w, _x, _y, _z, carolNotes, PHONE_NAMELESS_1, nameless, after, namelessAfter, _0, _1, _2, _3, _4, _5, PHONE_CASE_1, stored, afterInsensitive, _6, _7, _8, _9, _10, afterSensitive;
|
|
112
|
+
var _11, _12;
|
|
113
|
+
return __generator(this, function (_13) {
|
|
114
|
+
switch (_13.label) {
|
|
115
|
+
case 0:
|
|
116
|
+
checks = [];
|
|
117
|
+
record = function (label, pass, detail) { return checks.push({ label: label, pass: pass, detail: detail }); };
|
|
118
|
+
_13.label = 1;
|
|
119
|
+
case 1:
|
|
120
|
+
_13.trys.push([1, , 61, 63]);
|
|
121
|
+
return [4 /*yield*/, setup_isolated_tenant({
|
|
122
|
+
name: "PhoneEmbedLeaveMessage ".concat(RAND()),
|
|
123
|
+
users: [{ isAdmin: true }],
|
|
124
|
+
apiKeys: 0,
|
|
125
|
+
})];
|
|
126
|
+
case 2:
|
|
127
|
+
tenant = _13.sent();
|
|
128
|
+
sdk_1 = tenant.sdk, businessId_1 = tenant.businessId;
|
|
129
|
+
posts_1 = 0;
|
|
130
|
+
submit = function (fname, lname, phone, message) { return __awaiter(void 0, void 0, void 0, function () {
|
|
131
|
+
var enduserSDK;
|
|
132
|
+
return __generator(this, function (_a) {
|
|
133
|
+
switch (_a.label) {
|
|
134
|
+
case 0:
|
|
135
|
+
posts_1 += 1;
|
|
136
|
+
if (posts_1 > POST_BUDGET) {
|
|
137
|
+
throw new Error("Suite exceeded its ".concat(POST_BUDGET, "-post budget; the per-IP throttle will 429"));
|
|
138
|
+
}
|
|
139
|
+
enduserSDK = new EnduserSession({ host: host, businessId: businessId_1 });
|
|
140
|
+
return [4 /*yield*/, enduserSDK.api.sms_messages.leave_message({ businessId: businessId_1, fname: fname, lname: lname, phone: phone, message: message })];
|
|
141
|
+
case 1:
|
|
142
|
+
_a.sent();
|
|
143
|
+
return [2 /*return*/];
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
}); };
|
|
147
|
+
contactsWithPhone_1 = function (phone) { return __awaiter(void 0, void 0, void 0, function () {
|
|
148
|
+
return __generator(this, function (_a) {
|
|
149
|
+
switch (_a.label) {
|
|
150
|
+
case 0: return [4 /*yield*/, sdk_1.api.endusers.getSome({ filter: { phone: phone } })];
|
|
151
|
+
case 1: return [2 /*return*/, (_a.sent())
|
|
152
|
+
/** Inbound notes filed onto one contact, newest last. */
|
|
153
|
+
];
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}); };
|
|
157
|
+
messagesFor_1 = function (enduserId) { return __awaiter(void 0, void 0, void 0, function () {
|
|
158
|
+
return __generator(this, function (_a) {
|
|
159
|
+
switch (_a.label) {
|
|
160
|
+
case 0: return [4 /*yield*/, sdk_1.api.sms_messages.getSome({ filter: { enduserId: enduserId } })];
|
|
161
|
+
case 1: return [2 /*return*/, (_a.sent())
|
|
162
|
+
/** Writes BOTH flags every time. Writing only one would be ambiguous about whether the update
|
|
163
|
+
* merges into `settings.endusers` or replaces it, and this suite needs them on simultaneously. */
|
|
164
|
+
];
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
}); };
|
|
168
|
+
setSettings = function (matchEmailAndNames, caseInsensitiveMatching) { return __awaiter(void 0, void 0, void 0, function () {
|
|
169
|
+
var after;
|
|
170
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
171
|
+
return __generator(this, function (_j) {
|
|
172
|
+
switch (_j.label) {
|
|
173
|
+
case 0: return [4 /*yield*/, sdk_1.api.organizations.updateOne(businessId_1, {
|
|
174
|
+
settings: { endusers: { matchEmailAndNames: matchEmailAndNames, caseInsensitiveMatching: caseInsensitiveMatching } },
|
|
175
|
+
})];
|
|
176
|
+
case 1:
|
|
177
|
+
_j.sent();
|
|
178
|
+
return [4 /*yield*/, sdk_1.api.organizations.getOne(businessId_1)];
|
|
179
|
+
case 2:
|
|
180
|
+
after = _j.sent();
|
|
181
|
+
record("fixture: settings applied (matchEmailAndNames=".concat(matchEmailAndNames, ", caseInsensitive=").concat(caseInsensitiveMatching, ")"), ((_b = (_a = after.settings) === null || _a === void 0 ? void 0 : _a.endusers) === null || _b === void 0 ? void 0 : _b.matchEmailAndNames) === matchEmailAndNames
|
|
182
|
+
&& ((_d = (_c = after.settings) === null || _c === void 0 ? void 0 : _c.endusers) === null || _d === void 0 ? void 0 : _d.caseInsensitiveMatching) === caseInsensitiveMatching, "org now reports matchEmailAndNames=".concat((_f = (_e = after.settings) === null || _e === void 0 ? void 0 : _e.endusers) === null || _f === void 0 ? void 0 : _f.matchEmailAndNames, ", ")
|
|
183
|
+
+ "caseInsensitiveMatching=".concat((_h = (_g = after.settings) === null || _g === void 0 ? void 0 : _g.endusers) === null || _h === void 0 ? void 0 : _h.caseInsensitiveMatching, " ")
|
|
184
|
+
+ "(if these disagree every check in the section below is vacuous)");
|
|
185
|
+
return [2 /*return*/];
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
}); };
|
|
189
|
+
TAG_ANY_1 = "embed-any-".concat(RAND());
|
|
190
|
+
TAG_SMS = "embed-sms-".concat(RAND());
|
|
191
|
+
TAG_EMAIL = "embed-email-".concat(RAND());
|
|
192
|
+
TAG_DESTINATION = "embed-destination-".concat(RAND());
|
|
193
|
+
TAG_CREATED = "embed-created-".concat(RAND());
|
|
194
|
+
addTagsTrigger = function (title, event, tag) { return __awaiter(void 0, void 0, void 0, function () {
|
|
195
|
+
return __generator(this, function (_a) {
|
|
196
|
+
switch (_a.label) {
|
|
197
|
+
case 0: return [4 /*yield*/, sdk_1.api.automation_triggers.createOne({
|
|
198
|
+
title: "".concat(title, " ").concat(RAND()),
|
|
199
|
+
status: 'Active',
|
|
200
|
+
event: event,
|
|
201
|
+
action: { type: 'Add Tags', info: { tags: [tag] } },
|
|
202
|
+
})];
|
|
203
|
+
case 1: return [2 /*return*/, (_a.sent())];
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
}); };
|
|
207
|
+
return [4 /*yield*/, addTagsTrigger('Embed incoming, unfiltered', { type: 'Incoming Message', info: {} }, TAG_ANY_1)];
|
|
208
|
+
case 3:
|
|
209
|
+
_13.sent();
|
|
210
|
+
return [4 /*yield*/, addTagsTrigger('Embed incoming, SMS only', { type: 'Incoming Message', info: { channels: ['SMS'] } }, TAG_SMS)];
|
|
211
|
+
case 4:
|
|
212
|
+
_13.sent();
|
|
213
|
+
return [4 /*yield*/, addTagsTrigger('Embed incoming, Email only', { type: 'Incoming Message', info: { channels: ['Email'] } }, TAG_EMAIL)];
|
|
214
|
+
case 5:
|
|
215
|
+
_13.sent();
|
|
216
|
+
return [4 /*yield*/, addTagsTrigger('Embed incoming, destination filtered', { type: 'Incoming Message', info: { destinations: ['+15005550123'] } }, TAG_DESTINATION)];
|
|
217
|
+
case 6:
|
|
218
|
+
_13.sent();
|
|
219
|
+
return [4 /*yield*/, addTagsTrigger('Embed contact created', { type: 'Contact Created', info: {} }, TAG_CREATED)
|
|
220
|
+
// Executable guard for the journey-removal race. `handleIncomingCommunication` runs
|
|
221
|
+
// `handleRemoveFromJourneysForIncomingCommunication`, which strips a contact out of every journey
|
|
222
|
+
// marked `onIncomingEnduserCommunication: 'Remove'`. The handler passes it the enduser object it
|
|
223
|
+
// already has, and for a BRAND-NEW contact that object carries no journeys, so the removal no-ops
|
|
224
|
+
// and the contact stays in the journey "Contact Created" is concurrently adding them to.
|
|
225
|
+
//
|
|
226
|
+
// This is the only check that would fail if a future edit replaced `enduser: result` with a
|
|
227
|
+
// re-read of the contact — a comment alone cannot catch that. Both halves are asserted below,
|
|
228
|
+
// against the two submissions section 1 already makes, so this costs no extra posts:
|
|
229
|
+
// new contact -> removal no-ops, contact STAYS in the journey
|
|
230
|
+
// matched one -> removal really runs, contact is REMOVED (Twilio inbound-webhook parity)
|
|
231
|
+
];
|
|
232
|
+
case 7:
|
|
233
|
+
_13.sent();
|
|
234
|
+
return [4 /*yield*/, sdk_1.api.journeys.createOne({
|
|
235
|
+
title: "Embed Remove On Incoming ".concat(RAND()),
|
|
236
|
+
onIncomingEnduserCommunication: 'Remove',
|
|
237
|
+
})];
|
|
238
|
+
case 8:
|
|
239
|
+
removeOnIncomingJourney_1 = _13.sent();
|
|
240
|
+
return [4 /*yield*/, sdk_1.api.automation_triggers.createOne({
|
|
241
|
+
title: "Embed add to remove-on-incoming journey ".concat(RAND()),
|
|
242
|
+
status: 'Active',
|
|
243
|
+
event: { type: 'Contact Created', info: {} },
|
|
244
|
+
action: { type: 'Add To Journey', info: { journeyId: removeOnIncomingJourney_1.id } },
|
|
245
|
+
})];
|
|
246
|
+
case 9:
|
|
247
|
+
_13.sent();
|
|
248
|
+
inRemoveJourney_1 = function (enduserId) { return __awaiter(void 0, void 0, void 0, function () {
|
|
249
|
+
var _a, _b;
|
|
250
|
+
var _c;
|
|
251
|
+
return __generator(this, function (_d) {
|
|
252
|
+
switch (_d.label) {
|
|
253
|
+
case 0:
|
|
254
|
+
_b = (_a = Object).keys;
|
|
255
|
+
return [4 /*yield*/, sdk_1.api.endusers.getOne(enduserId)];
|
|
256
|
+
case 1: return [2 /*return*/, (_b.apply(_a, [(_c = (_d.sent()).journeys) !== null && _c !== void 0 ? _c : {}])
|
|
257
|
+
.includes(removeOnIncomingJourney_1.id))
|
|
258
|
+
/* ======== 1. both settings OFF: unchanged legacy behavior, plus the new trigger ======== */
|
|
259
|
+
];
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
}); };
|
|
263
|
+
/* ======== 1. both settings OFF: unchanged legacy behavior, plus the new trigger ======== */
|
|
264
|
+
return [4 /*yield*/, setSettings(false, false)];
|
|
265
|
+
case 10:
|
|
266
|
+
/* ======== 1. both settings OFF: unchanged legacy behavior, plus the new trigger ======== */
|
|
267
|
+
_13.sent();
|
|
268
|
+
PHONE_LEGACY_1 = '+15005550101';
|
|
269
|
+
return [4 /*yield*/, submit('Alice', 'Smith', PHONE_LEGACY_1, 'off note one')];
|
|
270
|
+
case 11:
|
|
271
|
+
_13.sent();
|
|
272
|
+
return [4 /*yield*/, pollFor('the first submission to create a contact', function () { return contactsWithPhone_1(PHONE_LEGACY_1); }, function (found) { return found.length >= 1; })];
|
|
273
|
+
case 12:
|
|
274
|
+
afterFirst = _13.sent();
|
|
275
|
+
record('settings OFF: a submission from an unknown number creates a contact', afterFirst.length === 1 && afterFirst[0].fname === 'Alice' && afterFirst[0].lname === 'Smith', "contacts on ".concat(PHONE_LEGACY_1, ": ").concat(afterFirst.length, " ")
|
|
276
|
+
+ "(".concat(afterFirst.map(function (e) { return "".concat(e.fname, " ").concat(e.lname); }).join(', ') || 'none', "); expected exactly one Alice Smith"));
|
|
277
|
+
alice_1 = afterFirst[0];
|
|
278
|
+
if (!alice_1) return [3 /*break*/, 20];
|
|
279
|
+
return [4 /*yield*/, messagesFor_1(alice_1.id)];
|
|
280
|
+
case 13:
|
|
281
|
+
notes = _13.sent();
|
|
282
|
+
record('the note is filed as an inbound, log-only SMS (so the patient is never texted it back)', notes.length === 1 && notes[0].inbound === true && notes[0].logOnly === true
|
|
283
|
+
&& notes[0].message === 'off note one', "messages=".concat(notes.length, ": ").concat(JSON.stringify(notes.map(function (n) { return ({ m: n.message, inbound: n.inbound, logOnly: n.logOnly }); }))));
|
|
284
|
+
return [4 /*yield*/, pollFor('the Incoming Message trigger to fire', function () { return __awaiter(void 0, void 0, void 0, function () { var _a; return __generator(this, function (_b) {
|
|
285
|
+
switch (_b.label) {
|
|
286
|
+
case 0: return [4 /*yield*/, sdk_1.api.endusers.getOne(alice_1.id)];
|
|
287
|
+
case 1: return [2 /*return*/, (_a = (_b.sent()).tags) !== null && _a !== void 0 ? _a : []];
|
|
288
|
+
}
|
|
289
|
+
}); }); }, function (tags) { return tags.includes(TAG_ANY_1); })];
|
|
290
|
+
case 14:
|
|
291
|
+
tagged = _13.sent();
|
|
292
|
+
record('an unfiltered Incoming Message trigger FIRES for an embed submission (the headline ask)', tagged.includes(TAG_ANY_1), "tags on the contact: ".concat(JSON.stringify(tagged), "; expected to contain ").concat(TAG_ANY_1));
|
|
293
|
+
record('an Incoming Message trigger filtered to channel SMS fires', tagged.includes(TAG_SMS), "tags on the contact: ".concat(JSON.stringify(tagged), "; expected to contain ").concat(TAG_SMS));
|
|
294
|
+
record('an Incoming Message trigger filtered to channel Email does NOT fire', !tagged.includes(TAG_EMAIL), "tags on the contact: ".concat(JSON.stringify(tagged), "; must NOT contain ").concat(TAG_EMAIL));
|
|
295
|
+
record('an Incoming Message trigger filtered to a DESTINATION stays silent (no Twilio number is involved)', !tagged.includes(TAG_DESTINATION), "tags on the contact: ".concat(JSON.stringify(tagged), "; must NOT contain ").concat(TAG_DESTINATION));
|
|
296
|
+
record('the Contact Created trigger still fires for a contact the submission created (regression)', tagged.includes(TAG_CREATED), "tags on the contact: ".concat(JSON.stringify(tagged), "; expected to contain ").concat(TAG_CREATED));
|
|
297
|
+
return [4 /*yield*/, sdk_1.api.endusers.getOne(alice_1.id)];
|
|
298
|
+
case 15:
|
|
299
|
+
stamped = _13.sent();
|
|
300
|
+
record('recentInboundSMSAt is stamped, so the contact sorts as recently active in the inbox', !!stamped.recentInboundSMSAt, "recentInboundSMSAt=".concat(JSON.stringify(stamped.recentInboundSMSAt)));
|
|
301
|
+
stampBeforeMatch_1 = stamped.recentInboundSMSAt;
|
|
302
|
+
// half one of the race guard: the contact "Contact Created" just added must still be there
|
|
303
|
+
return [4 /*yield*/, pollFor('the Contact Created trigger to add the new contact to the remove-on-incoming journey', function () { return inRemoveJourney_1(alice_1.id); }, function (present) { return present; })
|
|
304
|
+
// settle, so a removal that fired slightly late would still be caught rather than missed
|
|
305
|
+
];
|
|
306
|
+
case 16:
|
|
307
|
+
// half one of the race guard: the contact "Contact Created" just added must still be there
|
|
308
|
+
_13.sent();
|
|
309
|
+
// settle, so a removal that fired slightly late would still be caught rather than missed
|
|
310
|
+
return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 2000); })];
|
|
311
|
+
case 17:
|
|
312
|
+
// settle, so a removal that fired slightly late would still be caught rather than missed
|
|
313
|
+
_13.sent();
|
|
314
|
+
_a = record;
|
|
315
|
+
_b = ['a brand-new contact is NOT stripped from the journey Contact Created just added them to'];
|
|
316
|
+
return [4 /*yield*/, inRemoveJourney_1(alice_1.id)];
|
|
317
|
+
case 18:
|
|
318
|
+
_b = _b.concat([_13.sent()]);
|
|
319
|
+
_c = "contact ".concat(alice_1.id, " must still be in journey ").concat(removeOnIncomingJourney_1.id, "; ");
|
|
320
|
+
_d = "journeys=".concat;
|
|
321
|
+
_f = (_e = JSON).stringify;
|
|
322
|
+
_h = (_g = Object).keys;
|
|
323
|
+
return [4 /*yield*/, sdk_1.api.endusers.getOne(alice_1.id)];
|
|
324
|
+
case 19:
|
|
325
|
+
_a.apply(void 0, _b.concat([_c + _d.apply("journeys=", [_f.apply(_e, [_h.apply(_g, [(_11 = (_13.sent()).journeys) !== null && _11 !== void 0 ? _11 : {}])])])]));
|
|
326
|
+
_13.label = 20;
|
|
327
|
+
case 20:
|
|
328
|
+
// The legacy carve-out: with the setting OFF a DIFFERENT name on the same number must still
|
|
329
|
+
// match, exactly as it has for years. This is the regression that proves the gate works.
|
|
330
|
+
return [4 /*yield*/, submit('Bob', 'Jones', PHONE_LEGACY_1, 'off note two')
|
|
331
|
+
// A direct read, not a poll: the handler commits the match-or-insert decision BEFORE it answers
|
|
332
|
+
// 204, so the contact count is already final here. Only the trigger and stamp writes lag.
|
|
333
|
+
];
|
|
334
|
+
case 21:
|
|
335
|
+
// The legacy carve-out: with the setting OFF a DIFFERENT name on the same number must still
|
|
336
|
+
// match, exactly as it has for years. This is the regression that proves the gate works.
|
|
337
|
+
_13.sent();
|
|
338
|
+
return [4 /*yield*/, contactsWithPhone_1(PHONE_LEGACY_1)];
|
|
339
|
+
case 22:
|
|
340
|
+
afterSecond = _13.sent();
|
|
341
|
+
record('settings OFF: a DIFFERENT name on the same number still matches (no second contact) — unchanged', afterSecond.length === 1, "contacts on ".concat(PHONE_LEGACY_1, ": ").concat(afterSecond.length, " ")
|
|
342
|
+
+ "(".concat(afterSecond.map(function (e) { return "".concat(e.fname, " ").concat(e.lname); }).join(', '), "); expected exactly one"));
|
|
343
|
+
if (!alice_1) return [3 /*break*/, 27];
|
|
344
|
+
return [4 /*yield*/, pollFor('the second note to land', function () { return messagesFor_1(alice_1.id); }, function (found) { return found.length >= 2; })];
|
|
345
|
+
case 23:
|
|
346
|
+
notes = _13.sent();
|
|
347
|
+
record('settings OFF: the second note is filed onto the matched contact', notes.length === 2 && notes.some(function (n) { return n.message === 'off note two'; }), "messages on the matched contact: ".concat(JSON.stringify(notes.map(function (n) { return n.message; }))));
|
|
348
|
+
return [4 /*yield*/, pollFor('recentInboundSMSAt to advance on the matched contact', function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
349
|
+
switch (_a.label) {
|
|
350
|
+
case 0: return [4 /*yield*/, sdk_1.api.endusers.getOne(alice_1.id)];
|
|
351
|
+
case 1: return [2 /*return*/, (_a.sent()).recentInboundSMSAt];
|
|
352
|
+
}
|
|
353
|
+
}); }); }, function (value) { return !!value && !!stampBeforeMatch_1 && new Date(value) > new Date(stampBeforeMatch_1); })];
|
|
354
|
+
case 24:
|
|
355
|
+
restamped = _13.sent();
|
|
356
|
+
record('recentInboundSMSAt advances on a MATCHED contact, not just a newly created one', !!restamped && !!stampBeforeMatch_1 && new Date(restamped) > new Date(stampBeforeMatch_1), "before=".concat(JSON.stringify(stampBeforeMatch_1), ", after=").concat(JSON.stringify(restamped), "; after must be later"));
|
|
357
|
+
return [4 /*yield*/, pollFor('the matched contact to be removed from the remove-on-incoming journey', function () { return inRemoveJourney_1(alice_1.id); }, function (present) { return !present; })];
|
|
358
|
+
case 25:
|
|
359
|
+
removed = _13.sent();
|
|
360
|
+
_j = record;
|
|
361
|
+
_k = ['an incoming note from an EXISTING contact DOES remove them from a remove-on-incoming journey',
|
|
362
|
+
!removed];
|
|
363
|
+
_l = "contact ".concat(alice_1.id, " must no longer be in journey ").concat(removeOnIncomingJourney_1.id, "; ");
|
|
364
|
+
_m = "journeys=".concat;
|
|
365
|
+
_p = (_o = JSON).stringify;
|
|
366
|
+
_r = (_q = Object).keys;
|
|
367
|
+
return [4 /*yield*/, sdk_1.api.endusers.getOne(alice_1.id)];
|
|
368
|
+
case 26:
|
|
369
|
+
_j.apply(void 0, _k.concat([_l + _m.apply("journeys=", [_p.apply(_o, [_r.apply(_q, [(_12 = (_13.sent()).journeys) !== null && _12 !== void 0 ? _12 : {}])])])]));
|
|
370
|
+
_13.label = 27;
|
|
371
|
+
case 27:
|
|
372
|
+
/* ======== 2. matchEmailAndNames ON: phone + name must both match ======== */
|
|
373
|
+
return [4 /*yield*/, setSettings(true, false)];
|
|
374
|
+
case 28:
|
|
375
|
+
/* ======== 2. matchEmailAndNames ON: phone + name must both match ======== */
|
|
376
|
+
_13.sent();
|
|
377
|
+
PHONE_NAMED_1 = '+15005550102';
|
|
378
|
+
return [4 /*yield*/, submit('Carol', 'Diaz', PHONE_NAMED_1, 'on note one')];
|
|
379
|
+
case 29:
|
|
380
|
+
_13.sent();
|
|
381
|
+
return [4 /*yield*/, pollFor('the first named submission to create a contact', function () { return contactsWithPhone_1(PHONE_NAMED_1); }, function (found) { return found.length >= 1; })];
|
|
382
|
+
case 30:
|
|
383
|
+
afterFirst = _13.sent();
|
|
384
|
+
record('setting ON: an unknown number still creates a contact', afterFirst.length === 1, "contacts on ".concat(PHONE_NAMED_1, ": ").concat(afterFirst.length, "; expected exactly one"));
|
|
385
|
+
carol_1 = afterFirst[0];
|
|
386
|
+
if (!carol_1) return [3 /*break*/, 32];
|
|
387
|
+
return [4 /*yield*/, pollFor('the Incoming Message trigger to fire with matchEmailAndNames ON', function () { return __awaiter(void 0, void 0, void 0, function () { var _a; return __generator(this, function (_b) {
|
|
388
|
+
switch (_b.label) {
|
|
389
|
+
case 0: return [4 /*yield*/, sdk_1.api.endusers.getOne(carol_1.id)];
|
|
390
|
+
case 1: return [2 /*return*/, (_a = (_b.sent()).tags) !== null && _a !== void 0 ? _a : []];
|
|
391
|
+
}
|
|
392
|
+
}); }); }, function (tags) { return tags.includes(TAG_ANY_1); })];
|
|
393
|
+
case 31:
|
|
394
|
+
taggedOn = _13.sent();
|
|
395
|
+
record('the Incoming Message trigger also fires with matchEmailAndNames ON (gate is matching-only)', taggedOn.includes(TAG_ANY_1) && taggedOn.includes(TAG_SMS) && !taggedOn.includes(TAG_DESTINATION), "tags: ".concat(JSON.stringify(taggedOn), "; expected ").concat(TAG_ANY_1, " and ").concat(TAG_SMS, ", and NOT ").concat(TAG_DESTINATION));
|
|
396
|
+
_13.label = 32;
|
|
397
|
+
case 32:
|
|
398
|
+
// same phone, SAME name -> must match the existing record
|
|
399
|
+
return [4 /*yield*/, submit('Carol', 'Diaz', PHONE_NAMED_1, 'on note two')];
|
|
400
|
+
case 33:
|
|
401
|
+
// same phone, SAME name -> must match the existing record
|
|
402
|
+
_13.sent();
|
|
403
|
+
return [4 /*yield*/, contactsWithPhone_1(PHONE_NAMED_1)];
|
|
404
|
+
case 34:
|
|
405
|
+
afterSame = _13.sent();
|
|
406
|
+
record('setting ON: the SAME name on the same number matches (no duplicate)', afterSame.length === 1, "contacts on ".concat(PHONE_NAMED_1, ": ").concat(afterSame.length, " ")
|
|
407
|
+
+ "(".concat(afterSame.map(function (e) { return "".concat(e.fname, " ").concat(e.lname); }).join(', '), "); expected exactly one"));
|
|
408
|
+
if (!carol_1) return [3 /*break*/, 36];
|
|
409
|
+
return [4 /*yield*/, pollFor('both notes to land on Carol', function () { return messagesFor_1(carol_1.id); }, function (found) { return found.length >= 2; })];
|
|
410
|
+
case 35:
|
|
411
|
+
notes = _13.sent();
|
|
412
|
+
record('setting ON: both notes from the same person land on the one contact', notes.length === 2, "messages on ".concat(carol_1.id, ": ").concat(JSON.stringify(notes.map(function (n) { return n.message; }))));
|
|
413
|
+
_13.label = 36;
|
|
414
|
+
case 36:
|
|
415
|
+
// same phone, DIFFERENT name -> a second contact, which is the behavior change
|
|
416
|
+
return [4 /*yield*/, submit('Dave', 'Edwards', PHONE_NAMED_1, 'on note three')];
|
|
417
|
+
case 37:
|
|
418
|
+
// same phone, DIFFERENT name -> a second contact, which is the behavior change
|
|
419
|
+
_13.sent();
|
|
420
|
+
return [4 /*yield*/, pollFor('the differing-name submission to create a second contact', function () { return contactsWithPhone_1(PHONE_NAMED_1); }, function (found) { return found.length >= 2; })];
|
|
421
|
+
case 38:
|
|
422
|
+
afterDifferent = _13.sent();
|
|
423
|
+
record('setting ON: a DIFFERENT name on the same number creates a SECOND contact', afterDifferent.length === 2, "contacts on ".concat(PHONE_NAMED_1, ": ").concat(afterDifferent.length, " ")
|
|
424
|
+
+ "(".concat(afterDifferent.map(function (e) { return "".concat(e.fname, " ").concat(e.lname); }).join(', '), "); expected two"));
|
|
425
|
+
dave = afterDifferent.find(function (e) { return e.fname === 'Dave' && e.lname === 'Edwards'; });
|
|
426
|
+
_s = record;
|
|
427
|
+
_t = ['setting ON: the differing-name note is filed onto the NEW contact, not the existing one'];
|
|
428
|
+
_u = !!dave;
|
|
429
|
+
if (!_u) return [3 /*break*/, 40];
|
|
430
|
+
return [4 /*yield*/, messagesFor_1(dave.id)];
|
|
431
|
+
case 39:
|
|
432
|
+
_u = (_13.sent()).some(function (n) { return n.message === 'on note three'; });
|
|
433
|
+
_13.label = 40;
|
|
434
|
+
case 40:
|
|
435
|
+
_t = _t.concat([_u]);
|
|
436
|
+
if (!dave) return [3 /*break*/, 42];
|
|
437
|
+
_x = (_w = "messages on Dave ".concat(dave.id, ": ")).concat;
|
|
438
|
+
_z = (_y = JSON).stringify;
|
|
439
|
+
return [4 /*yield*/, messagesFor_1(dave.id)];
|
|
440
|
+
case 41:
|
|
441
|
+
_v = _x.apply(_w, [_z.apply(_y, [(_13.sent()).map(function (n) { return n.message; })])]);
|
|
442
|
+
return [3 /*break*/, 43];
|
|
443
|
+
case 42:
|
|
444
|
+
_v = "no Dave Edwards contact was created on ".concat(PHONE_NAMED_1);
|
|
445
|
+
_13.label = 43;
|
|
446
|
+
case 43:
|
|
447
|
+
_s.apply(void 0, _t.concat([_v]));
|
|
448
|
+
if (!carol_1) return [3 /*break*/, 45];
|
|
449
|
+
return [4 /*yield*/, messagesFor_1(carol_1.id)];
|
|
450
|
+
case 44:
|
|
451
|
+
carolNotes = _13.sent();
|
|
452
|
+
record('setting ON: the differing-name note did NOT leak onto the other contact', !carolNotes.some(function (n) { return n.message === 'on note three'; }), "messages on Carol ".concat(carol_1.id, ": ").concat(JSON.stringify(carolNotes.map(function (n) { return n.message; }))));
|
|
453
|
+
_13.label = 45;
|
|
454
|
+
case 45:
|
|
455
|
+
PHONE_NAMELESS_1 = '+15005550103';
|
|
456
|
+
return [4 /*yield*/, sdk_1.api.endusers.createOne({ phone: PHONE_NAMELESS_1 })];
|
|
457
|
+
case 46:
|
|
458
|
+
nameless = _13.sent();
|
|
459
|
+
record('fixture: the nameless contact really has no name', !nameless.fname && !nameless.lname, "fname=".concat(JSON.stringify(nameless.fname), ", lname=").concat(JSON.stringify(nameless.lname), " ")
|
|
460
|
+
+ "(if either is set, the check below is vacuous)");
|
|
461
|
+
return [4 /*yield*/, submit('Fiona', 'Grant', PHONE_NAMELESS_1, 'blank name note')];
|
|
462
|
+
case 47:
|
|
463
|
+
_13.sent();
|
|
464
|
+
return [4 /*yield*/, pollFor('the submission to create its own contact beside the nameless one', function () { return contactsWithPhone_1(PHONE_NAMELESS_1); }, function (found) { return found.length >= 2; })];
|
|
465
|
+
case 48:
|
|
466
|
+
after = _13.sent();
|
|
467
|
+
record('setting ON: a blank-name contact on the same number is NOT matched; a second contact is created', after.length === 2 && after.some(function (e) { return e.fname === 'Fiona' && e.lname === 'Grant'; }), "contacts on ".concat(PHONE_NAMELESS_1, ": ").concat(after.length, " ")
|
|
468
|
+
+ "(".concat(after.map(function (e) { return "".concat(JSON.stringify(e.fname), " ").concat(JSON.stringify(e.lname)); }).join(', '), "); ")
|
|
469
|
+
+ "expected two, one of them Fiona Grant");
|
|
470
|
+
return [4 /*yield*/, sdk_1.api.endusers.getOne(nameless.id)];
|
|
471
|
+
case 49:
|
|
472
|
+
namelessAfter = _13.sent();
|
|
473
|
+
record('setting ON: the nameless contact is left untouched — no name is written onto it', !namelessAfter.fname && !namelessAfter.lname, "the nameless contact now reads fname=".concat(JSON.stringify(namelessAfter.fname), ", ")
|
|
474
|
+
+ "lname=".concat(JSON.stringify(namelessAfter.lname), "; both must still be empty"));
|
|
475
|
+
_0 = record;
|
|
476
|
+
_1 = ['setting ON: the note did not land on the nameless contact'];
|
|
477
|
+
return [4 /*yield*/, messagesFor_1(nameless.id)];
|
|
478
|
+
case 50:
|
|
479
|
+
_1 = _1.concat([!(_13.sent()).some(function (n) { return n.message === 'blank name note'; })]);
|
|
480
|
+
_2 = "messages on the nameless contact: ";
|
|
481
|
+
_3 = "".concat;
|
|
482
|
+
_5 = (_4 = JSON).stringify;
|
|
483
|
+
return [4 /*yield*/, messagesFor_1(nameless.id)];
|
|
484
|
+
case 51:
|
|
485
|
+
_0.apply(void 0, _1.concat([_2 + _3.apply("", [_5.apply(_4, [(_13.sent()).map(function (n) { return n.message; })])])]));
|
|
486
|
+
PHONE_CASE_1 = '+15005550104';
|
|
487
|
+
return [4 /*yield*/, sdk_1.api.endusers.createOne({ fname: 'Ian', lname: 'MCDONALD', phone: PHONE_CASE_1 })];
|
|
488
|
+
case 52:
|
|
489
|
+
stored = _13.sent();
|
|
490
|
+
record('fixture: a non-first-letter capitalization variant is stored verbatim', stored.lname === 'MCDONALD', "stored lname=".concat(JSON.stringify(stored.lname), " (if this is not MCDONALD both checks below are vacuous)"));
|
|
491
|
+
return [4 /*yield*/, setSettings(true, true)];
|
|
492
|
+
case 53:
|
|
493
|
+
_13.sent();
|
|
494
|
+
return [4 /*yield*/, submit('Ian', 'mcdonald', PHONE_CASE_1, 'case note one')];
|
|
495
|
+
case 54:
|
|
496
|
+
_13.sent();
|
|
497
|
+
return [4 /*yield*/, contactsWithPhone_1(PHONE_CASE_1)];
|
|
498
|
+
case 55:
|
|
499
|
+
afterInsensitive = _13.sent();
|
|
500
|
+
record('caseInsensitiveMatching ON: "mcdonald" matches stored "MCDONALD" (no duplicate)', afterInsensitive.length === 1, "contacts on ".concat(PHONE_CASE_1, ": ").concat(afterInsensitive.length, " ")
|
|
501
|
+
+ "(".concat(afterInsensitive.map(function (e) { return "".concat(e.fname, " ").concat(e.lname); }).join(', '), "); expected exactly one"));
|
|
502
|
+
_6 = record;
|
|
503
|
+
_7 = ['caseInsensitiveMatching ON: the matched contact keeps its own capitalization'];
|
|
504
|
+
return [4 /*yield*/, sdk_1.api.endusers.getOne(stored.id)];
|
|
505
|
+
case 56:
|
|
506
|
+
_7 = _7.concat([(_13.sent()).lname === 'MCDONALD']);
|
|
507
|
+
_8 = "stored lname is now ".concat;
|
|
508
|
+
_10 = (_9 = JSON).stringify;
|
|
509
|
+
return [4 /*yield*/, sdk_1.api.endusers.getOne(stored.id)];
|
|
510
|
+
case 57:
|
|
511
|
+
_6.apply(void 0, _7.concat([_8.apply("stored lname is now ", [_10.apply(_9, [(_13.sent()).lname]), ", must still be \"MCDONALD\""])]));
|
|
512
|
+
return [4 /*yield*/, setSettings(true, false)];
|
|
513
|
+
case 58:
|
|
514
|
+
_13.sent();
|
|
515
|
+
return [4 /*yield*/, submit('Ian', 'mcdonald', PHONE_CASE_1, 'case note two')];
|
|
516
|
+
case 59:
|
|
517
|
+
_13.sent();
|
|
518
|
+
return [4 /*yield*/, pollFor('the byte-exact submission to create a second contact', function () { return contactsWithPhone_1(PHONE_CASE_1); }, function (found) { return found.length >= 2; })];
|
|
519
|
+
case 60:
|
|
520
|
+
afterSensitive = _13.sent();
|
|
521
|
+
record('caseInsensitiveMatching OFF: "Mcdonald" no longer matches "MCDONALD"; a second contact is created', afterSensitive.length === 2, "contacts on ".concat(PHONE_CASE_1, ": ").concat(afterSensitive.length, " ")
|
|
522
|
+
+ "(".concat(afterSensitive.map(function (e) { return "".concat(e.fname, " ").concat(e.lname); }).join(', '), "); expected two"));
|
|
523
|
+
record("the suite stayed within its per-IP post budget", posts_1 <= POST_BUDGET, "made ".concat(posts_1, " submissions, budget is ").concat(POST_BUDGET, " (the endpoint allows 10/min per IP)"));
|
|
524
|
+
return [2 /*return*/, checks];
|
|
525
|
+
case 61: return [4 /*yield*/, (tenant === null || tenant === void 0 ? void 0 : tenant.teardown())];
|
|
526
|
+
case 62:
|
|
527
|
+
_13.sent();
|
|
528
|
+
return [7 /*endfinally*/];
|
|
529
|
+
case 63: return [2 /*return*/];
|
|
530
|
+
}
|
|
531
|
+
});
|
|
532
|
+
}); };
|
|
533
|
+
/** Asserting wrapper, for standalone runs. */
|
|
534
|
+
export var phone_embed_leave_message_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
535
|
+
var _a, _b;
|
|
536
|
+
return __generator(this, function (_c) {
|
|
537
|
+
switch (_c.label) {
|
|
538
|
+
case 0:
|
|
539
|
+
_a = assert_checks;
|
|
540
|
+
_b = ['Phone Embed leave_message'];
|
|
541
|
+
return [4 /*yield*/, phone_embed_leave_message_checks()];
|
|
542
|
+
case 1:
|
|
543
|
+
_a.apply(void 0, _b.concat([_c.sent()]));
|
|
544
|
+
return [2 /*return*/];
|
|
545
|
+
}
|
|
546
|
+
});
|
|
547
|
+
}); };
|
|
548
|
+
/** Enrolls this suite in the auto-discovered parallel pool — see run_discovered_isolated_suites. */
|
|
549
|
+
export var ISOLATED_SUITE = {
|
|
550
|
+
name: 'Phone Embed leave_message',
|
|
551
|
+
run: phone_embed_leave_message_checks,
|
|
552
|
+
};
|
|
553
|
+
// Allow running this test file independently
|
|
554
|
+
if (require.main === module) {
|
|
555
|
+
console.log("Using API URL: ".concat(host));
|
|
556
|
+
phone_embed_leave_message_tests()
|
|
557
|
+
.then(function () {
|
|
558
|
+
console.log("Phone Embed leave_message test suite completed successfully");
|
|
559
|
+
process.exit(0);
|
|
560
|
+
})
|
|
561
|
+
.catch(function (error) {
|
|
562
|
+
console.error("Phone Embed leave_message test suite failed:", error);
|
|
563
|
+
process.exit(1);
|
|
564
|
+
});
|
|
565
|
+
}
|
|
566
|
+
//# sourceMappingURL=phone_embed_leave_message.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phone_embed_leave_message.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/phone_embed_leave_message.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { Check } from "../setup_isolated";
|
|
1
|
+
import { Check, IsolatedSuite } from "../setup_isolated";
|
|
2
2
|
export declare const programs_checks: () => Promise<Check[]>;
|
|
3
3
|
/** Asserting wrapper, for standalone runs and for sequential use in the suite. */
|
|
4
4
|
export declare const programs_tests: () => Promise<void>;
|
|
5
|
+
/** Enrolls this suite in the auto-discovered parallel pool — see run_discovered_isolated_suites. */
|
|
6
|
+
export declare const ISOLATED_SUITE: IsolatedSuite;
|
|
5
7
|
//# sourceMappingURL=programs.test.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"programs.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/programs.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"programs.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/programs.test.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,EAEL,aAAa,EACd,MAAM,mBAAmB,CAAA;AA0C1B,eAAO,MAAM,eAAe,QAAa,QAAQ,KAAK,EAAE,CAqRvD,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,cAAc,qBAE1B,CAAA;AAED,oGAAoG;AACpG,eAAO,MAAM,cAAc,EAAE,aAA0D,CAAA"}
|