{"version":2,"defects":{"Tests\\Feature\\Auth\\AuthenticationTest::it_gives_the_same_error_for_unknown_and_suspended_accounts":8,"Tests\\Feature\\PublicSiteTest::the_privacy_policy_does_not_claim_zero_logs":7,"Tests\\Feature\\PublicSiteTest::an_offline_server_removes_its_location_from_the_public_list":8,"Tests\\Feature\\Vpn\\IpAllocationTest::it_refuses_to_allocate_outside_a_transaction":7,"Tests\\Feature\\Admin\\VpnManagementTest::an_operator_cannot_declare_a_dead_server_online":7,"Tests\\Feature\\Customer\\DeviceManagementTest::a_customer_can_create_a_device_and_gets_a_working_config":8,"Tests\\Feature\\Customer\\DeviceManagementTest::the_config_download_contains_a_complete_wireguard_profile":7,"Tests\\Feature\\Customer\\DeviceManagementTest::a_failed_device_creation_does_not_consume_a_slot":7,"Tests\\Feature\\Customer\\DeviceManagementTest::it_enforces_the_device_limit":7,"Tests\\Feature\\Customer\\DeviceManagementTest::a_customer_cannot_view_another_customers_device":7,"Tests\\Feature\\Customer\\DeviceManagementTest::a_customer_cannot_download_another_customers_config":7,"Tests\\Feature\\Customer\\DeviceManagementTest::a_customer_cannot_revoke_or_regenerate_another_customers_device":7,"Tests\\Feature\\Customer\\DeviceManagementTest::revoking_a_device_stops_it_connecting_and_frees_the_slot":7,"Tests\\Feature\\Customer\\DeviceManagementTest::a_revoked_devices_config_can_no_longer_be_downloaded":7,"Tests\\Feature\\Customer\\DeviceManagementTest::regenerating_issues_new_keys_and_invalidates_the_old_config":7,"Tests\\Feature\\Customer\\DeviceManagementTest::regenerating_can_move_a_device_to_another_location":7,"Tests\\Feature\\Customer\\DeviceManagementTest::a_lapsed_customer_cannot_create_devices_or_download_configs":7,"Tests\\Feature\\Customer\\DeviceManagementTest::a_lapsed_customer_can_still_list_and_revoke_devices":7,"Tests\\Feature\\Customer\\DeviceManagementTest::portal_pages_render":7,"Tests\\Feature\\Customer\\DeviceManagementTest::the_location_picker_only_offers_locations_with_healthy_servers":7,"Tests\\Feature\\Admin\\PlanManagementTest::support_staff_cannot_manage_plans":7,"Tests\\Feature\\Support\\TicketTest::a_customer_can_open_a_ticket":7,"Tests\\Feature\\Support\\TicketTest::ticket_references_avoid_visually_ambiguous_characters":8,"Tests\\Feature\\Support\\TicketTest::a_customer_cannot_attach_a_device_they_do_not_own":7,"Tests\\Feature\\Support\\TicketTest::a_customer_cannot_view_another_customers_ticket":8,"Tests\\Feature\\Support\\TicketTest::internal_notes_are_never_shown_to_the_customer":8,"Tests\\Feature\\Support\\TicketTest::an_internal_note_does_not_mark_the_ticket_answered":8,"Tests\\Feature\\Support\\TicketTest::a_staff_reply_marks_the_ticket_answered_and_claims_it":8,"Tests\\Feature\\Support\\TicketTest::a_customer_reply_puts_the_ticket_back_in_the_queue":8,"Tests\\Feature\\Support\\TicketTest::replying_to_a_closed_ticket_reopens_it_with_history_intact":8,"Tests\\Feature\\Support\\TicketTest::support_can_reply_but_only_managers_can_close_or_reassign":8,"Tests\\Feature\\Support\\TicketTest::support_is_reachable_without_an_active_subscription":7,"Tests\\Feature\\Support\\TicketTest::message_bodies_are_escaped_not_rendered":8,"Tests\\Feature\\Support\\TicketTest::ticket_screens_render":8,"Tests\\Feature\\NotificationTest::it_warns_before_expiry_but_only_when_auto_renew_is_off":7,"Tests\\Feature\\Admin\\MonitoringAndTemplatesTest::monitoring_requires_the_permission":7,"Tests\\Feature\\Admin\\MonitoringAndTemplatesTest::the_preview_uses_the_same_escaping_as_a_real_send":7,"Tests\\Feature\\Admin\\MonitoringAndTemplatesTest::template_screens_render":7,"Tests\\Feature\\Api\\ApiV1Test::it_issues_a_token_for_valid_credentials":7,"Tests\\Feature\\Api\\ApiV1Test::it_rejects_bad_credentials":8,"Tests\\Feature\\Api\\ApiV1Test::the_api_enforces_two_factor_rather_than_bypassing_it":8,"Tests\\Feature\\Api\\ApiV1Test::logout_all_revokes_every_token":8,"Tests\\Feature\\Api\\ApiV1Test::it_creates_a_device_and_returns_its_config_once":8,"Tests\\Feature\\Api\\ApiV1Test::device_listings_never_include_private_keys":8,"Tests\\Feature\\Api\\ApiV1Test::a_customer_cannot_read_another_customers_device":8,"Tests\\Feature\\Api\\ApiV1Test::exceeding_the_device_limit_returns_403":8,"Tests\\Feature\\Api\\ApiV1Test::a_location_with_no_capacity_returns_409_not_500":8,"Tests\\Feature\\Api\\ApiV1Test::revoking_works_without_a_live_subscription":8,"Tests\\Feature\\Api\\ApiV1Test::it_returns_account_subscription_and_locations":8,"Tests\\Feature\\Api\\ApiV1Test::no_subscription_returns_200_with_null_not_404":8,"Tests\\Feature\\Api\\ApiV1Test::locations_never_expose_server_details":8,"Tests\\Feature\\Api\\ApiV1Test::status_labels_connection_state_as_inferred":8,"Tests\\Feature\\Billing\\StoreSubscriptionTest::it_creates_a_subscription_from_a_verified_purchase":8,"Tests\\Feature\\Billing\\StoreSubscriptionTest::applying_the_same_purchase_twice_does_not_duplicate_it":8,"Tests\\Feature\\Billing\\StoreSubscriptionTest::a_purchase_cannot_be_claimed_by_a_second_account":8,"Tests\\Feature\\Billing\\StoreSubscriptionTest::a_store_purchase_supersedes_an_existing_web_subscription":8,"Tests\\Feature\\Billing\\StoreSubscriptionTest::a_refund_stops_access_immediately_even_before_expiry":8,"Tests\\Feature\\Billing\\StoreSubscriptionTest::billing_retry_maps_to_past_due_and_keeps_access":8,"Tests\\Feature\\Billing\\StoreSubscriptionTest::a_cancelled_subscription_keeps_access_until_it_expires":8,"Tests\\Feature\\Billing\\StoreSubscriptionTest::renewal_extends_the_same_subscription":8,"Tests\\Feature\\Billing\\StoreSubscriptionTest::store_subscriptions_expose_where_to_cancel":8},"times":{"Tests\\Feature\\Admin\\AdminAccessTest::a_guest_is_sent_to_the_staff_login_page_not_the_customer_one":0.359,"Tests\\Feature\\Admin\\AdminAccessTest::an_authenticated_customer_cannot_reach_the_admin_panel":3.55,"Tests\\Feature\\Admin\\AdminAccessTest::a_customer_cannot_authenticate_against_the_admin_guard":0.535,"Tests\\Feature\\Admin\\AdminAccessTest::staff_with_the_permission_can_view_the_dashboard":3.727,"Tests\\Feature\\Admin\\AdminAccessTest::staff_without_the_permission_get_403_rather_than_a_redirect":0.217,"Tests\\Feature\\Admin\\AdminAccessTest::a_deactivated_staff_account_is_signed_out":0.034,"Tests\\Feature\\Admin\\AdminAccessTest::a_deactivated_staff_account_cannot_sign_in":0.026,"Tests\\Feature\\Admin\\AdminAccessTest::support_staff_cannot_perform_admin_only_actions":0.016,"Tests\\Feature\\Admin\\AdminAccessTest::an_admin_cannot_grant_themselves_more_permissions":0.022,"Tests\\Feature\\Admin\\AdminAccessTest::a_super_admin_holds_every_permission":0.014,"Tests\\Feature\\Auth\\AuthenticationTest::it_registers_a_customer_and_sends_them_to_verification":5.903,"Tests\\Feature\\Auth\\AuthenticationTest::it_rejects_registration_without_accepting_terms":0.56,"Tests\\Feature\\Auth\\AuthenticationTest::it_rejects_short_passwords":0.018,"Tests\\Feature\\Auth\\AuthenticationTest::it_blocks_registration_when_closed_in_settings":0.16,"Tests\\Feature\\Auth\\AuthenticationTest::it_logs_a_customer_in_with_valid_credentials":0.03,"Tests\\Feature\\Auth\\AuthenticationTest::it_rejects_an_invalid_password":0.024,"Tests\\Feature\\Auth\\AuthenticationTest::it_gives_the_same_error_for_unknown_and_suspended_accounts":0.388,"Tests\\Feature\\Auth\\AuthenticationTest::it_rate_limits_repeated_failed_logins":0.084,"Tests\\Feature\\Auth\\AuthenticationTest::it_logs_out":0.019,"Tests\\Feature\\Auth\\AuthenticationTest::it_does_not_authenticate_on_password_alone_when_two_factor_is_enabled":0.028,"Tests\\Feature\\Auth\\AuthenticationTest::it_completes_login_with_a_valid_totp_code":0.059,"Tests\\Feature\\Auth\\AuthenticationTest::it_rejects_an_invalid_totp_code":0.039,"Tests\\Feature\\Auth\\AuthenticationTest::a_recovery_code_works_once_and_is_then_consumed":0.07,"Tests\\Feature\\Auth\\AuthenticationTest::the_challenge_page_is_unreachable_without_passing_the_password_step":0.012,"Tests\\Feature\\PublicSiteTest::public_pages_render_on_an_empty_database with data set \"home\"":0.048,"Tests\\Feature\\PublicSiteTest::public_pages_render_on_an_empty_database with data set \"features\"":0.03,"Tests\\Feature\\PublicSiteTest::public_pages_render_on_an_empty_database with data set \"locations\"":0.034,"Tests\\Feature\\PublicSiteTest::public_pages_render_on_an_empty_database with data set \"pricing\"":0.03,"Tests\\Feature\\PublicSiteTest::public_pages_render_on_an_empty_database with data set \"download\"":0.029,"Tests\\Feature\\PublicSiteTest::public_pages_render_on_an_empty_database with data set \"faq\"":0.026,"Tests\\Feature\\PublicSiteTest::public_pages_render_on_an_empty_database with data set \"about\"":0.03,"Tests\\Feature\\PublicSiteTest::public_pages_render_on_an_empty_database with data set \"contact\"":0.028,"Tests\\Feature\\PublicSiteTest::public_pages_render_on_an_empty_database with data set \"privacy\"":0.031,"Tests\\Feature\\PublicSiteTest::public_pages_render_on_an_empty_database with data set \"terms\"":0.026,"Tests\\Feature\\PublicSiteTest::public_pages_render_on_an_empty_database with data set \"refund\"":0.04,"Tests\\Feature\\PublicSiteTest::the_privacy_policy_does_not_claim_zero_logs":0.046,"Tests\\Feature\\PublicSiteTest::locations_only_appear_once_a_server_is_actually_online":0.062,"Tests\\Feature\\PublicSiteTest::an_offline_server_removes_its_location_from_the_public_list":0.072,"Tests\\Feature\\PublicSiteTest::a_full_server_does_not_keep_its_location_listed":0.03,"Tests\\Unit\\WireGuardKeyGeneratorTest::it_generates_keys_in_wireguards_format":0.058,"Tests\\Unit\\WireGuardKeyGeneratorTest::the_public_key_is_derived_from_the_private_key":0.005,"Tests\\Unit\\WireGuardKeyGeneratorTest::private_keys_are_clamped_the_way_wg_genkey_clamps_them":0.006,"Tests\\Unit\\WireGuardKeyGeneratorTest::it_generates_distinct_keys":0.01,"Tests\\Unit\\WireGuardKeyGeneratorTest::it_validates_key_format":0.005,"Tests\\Unit\\WireGuardKeyGeneratorTest::the_key_pair_dto_does_not_leak_the_private_key":0.004,"Tests\\Unit\\WireGuardKeyGeneratorTest::preshared_keys_are_32_bytes":0.004,"Tests\\Feature\\Vpn\\IpAllocationTest::it_materialises_a_subnet_excluding_network_broadcast_and_gateway":0.024,"Tests\\Feature\\Vpn\\IpAllocationTest::it_allocates_addresses_in_ascending_numeric_order":0.033,"Tests\\Feature\\Vpn\\IpAllocationTest::it_never_hands_out_the_same_address_twice":0.06,"Tests\\Feature\\Vpn\\IpAllocationTest::it_throws_when_the_pool_is_exhausted":0.086,"Tests\\Feature\\Vpn\\IpAllocationTest::releasing_an_address_returns_it_to_the_pool":0.036,"Tests\\Feature\\Vpn\\IpAllocationTest::it_spans_multiple_pools_on_one_server":0.06,"Tests\\Feature\\Vpn\\IpAllocationTest::it_refuses_to_allocate_outside_a_transaction":0.038,"Tests\\Feature\\Vpn\\IpAllocationTest::it_rejects_a_subnet_wider_than_the_configured_maximum":0.006,"Tests\\Feature\\Vpn\\IpAllocationTest::it_rejects_a_host_address_given_as_a_network":0.005,"Tests\\Feature\\Vpn\\IpAllocationTest::it_rejects_a_subnet_with_no_usable_hosts":0.005,"Tests\\Feature\\Vpn\\IpAllocationTest::it_reports_subnet_membership":0.007,"Tests\\Feature\\Vpn\\NodeApiTest::it_rejects_requests_without_a_token":0.117,"Tests\\Feature\\Vpn\\NodeApiTest::it_rejects_an_invalid_token":0.012,"Tests\\Feature\\Vpn\\NodeApiTest::the_plaintext_token_is_never_stored":0.007,"Tests\\Feature\\Vpn\\NodeApiTest::rotating_the_token_invalidates_the_previous_one":0.012,"Tests\\Feature\\Vpn\\NodeApiTest::a_heartbeat_records_metrics_and_returns_the_state_hash":0.099,"Tests\\Feature\\Vpn\\NodeApiTest::a_heartbeat_brings_an_offline_server_back_online":0.024,"Tests\\Feature\\Vpn\\NodeApiTest::a_heartbeat_does_not_override_maintenance_mode":0.025,"Tests\\Feature\\Vpn\\NodeApiTest::a_node_cannot_replace_an_existing_public_key":0.019,"Tests\\Feature\\Vpn\\NodeApiTest::a_node_may_report_its_public_key_when_none_is_set":0.026,"Tests\\Feature\\Vpn\\NodeApiTest::state_returns_only_active_peers":0.089,"Tests\\Feature\\Vpn\\NodeApiTest::state_never_exposes_client_private_keys":0.063,"Tests\\Feature\\Vpn\\NodeApiTest::the_state_hash_changes_when_the_peer_set_changes":0.042,"Tests\\Feature\\Vpn\\NodeApiTest::the_state_hash_is_stable_when_nothing_changes":0.049,"Tests\\Feature\\Vpn\\NodeApiTest::a_node_only_sees_its_own_peers":0.055,"Tests\\Feature\\Vpn\\NodeApiTest::acknowledging_records_the_applied_hash":0.022,"Tests\\Feature\\Vpn\\NodeApiTest::it_records_reported_usage":0.052,"Tests\\Feature\\Vpn\\NodeApiTest::a_counter_reset_does_not_reduce_recorded_usage":0.058,"Tests\\Feature\\Vpn\\NodeApiTest::a_node_cannot_write_usage_onto_another_nodes_peer":0.106,"Tests\\Feature\\Vpn\\NodeApiTest::the_scheduled_command_marks_stale_servers_offline":0.207,"Tests\\Feature\\Vpn\\NodeApiTest::the_scheduled_command_leaves_maintenance_servers_alone":0.019,"Tests\\Feature\\Vpn\\PeerLifecycleTest::it_creates_a_peer_with_a_lease_and_a_key_pair":0.033,"Tests\\Feature\\Vpn\\PeerLifecycleTest::creating_a_peer_bumps_the_servers_state_version":0.037,"Tests\\Feature\\Vpn\\PeerLifecycleTest::it_generates_a_valid_wireguard_config":0.037,"Tests\\Feature\\Vpn\\PeerLifecycleTest::revoking_a_peer_releases_its_address_and_destroys_key_material":0.041,"Tests\\Feature\\Vpn\\PeerLifecycleTest::rotating_a_device_revokes_the_previous_peer":0.072,"Tests\\Feature\\Vpn\\PeerLifecycleTest::revoking_a_device_revokes_its_peers":0.046,"Tests\\Feature\\Vpn\\PeerLifecycleTest::it_refuses_to_create_a_peer_without_an_active_subscription":0.017,"Tests\\Feature\\Vpn\\PeerLifecycleTest::it_refuses_when_the_subscription_has_lapsed_even_if_the_status_says_active":0.02,"Tests\\Feature\\Vpn\\PeerLifecycleTest::it_refuses_when_the_data_allowance_is_exhausted":0.022,"Tests\\Feature\\Vpn\\PeerLifecycleTest::it_enforces_the_plans_device_limit":0.028,"Tests\\Feature\\Vpn\\PeerLifecycleTest::a_revoked_device_frees_its_slot_immediately":0.026,"Tests\\Feature\\Vpn\\PeerLifecycleTest::disabling_a_user_suspends_peers_but_keeps_their_addresses":0.037,"Tests\\Feature\\Vpn\\PeerLifecycleTest::re_enabling_restores_a_suspended_peer":0.04,"Tests\\Feature\\Vpn\\PeerLifecycleTest::it_reconciles_a_drifted_peer_count":0.042,"Tests\\Feature\\Vpn\\ServerSelectionTest::it_selects_a_healthy_server":0.018,"Tests\\Feature\\Vpn\\ServerSelectionTest::it_never_selects_an_offline_server":0.019,"Tests\\Feature\\Vpn\\ServerSelectionTest::it_never_selects_a_server_in_maintenance":0.017,"Tests\\Feature\\Vpn\\ServerSelectionTest::it_never_selects_a_full_server":0.017,"Tests\\Feature\\Vpn\\ServerSelectionTest::it_never_selects_a_server_whose_heartbeat_is_stale":0.017,"Tests\\Feature\\Vpn\\ServerSelectionTest::it_never_selects_a_server_with_an_exhausted_ip_pool":0.018,"Tests\\Feature\\Vpn\\ServerSelectionTest::it_skips_unhealthy_servers_and_picks_the_healthy_one":0.029,"Tests\\Feature\\Vpn\\ServerSelectionTest::it_prefers_the_least_loaded_server":0.028,"Tests\\Feature\\Vpn\\ServerSelectionTest::it_breaks_load_ties_on_latency":0.031,"Tests\\Feature\\Vpn\\ServerSelectionTest::a_server_without_latency_data_does_not_outrank_a_measured_one":0.031,"Tests\\Feature\\Vpn\\ServerSelectionTest::it_refuses_a_location_the_plan_does_not_allow":0.032,"Tests\\Feature\\Vpn\\ServerSelectionTest::it_allows_a_location_the_plan_explicitly_permits":0.025,"Tests\\Feature\\Vpn\\ServerSelectionTest::has_capacity_reflects_real_availability":0.02,"Tests\\Feature\\Vpn\\IpAllocatorTransactionGuardTest::it_refuses_to_allocate_outside_a_transaction":0.167,"Tests\\Feature\\Vpn\\IpAllocatorTransactionGuardTest::it_allocates_normally_once_wrapped_in_a_transaction":0.235,"Tests\\Feature\\Admin\\VpnManagementTest::it_creates_a_location":0.104,"Tests\\Feature\\Admin\\VpnManagementTest::it_rejects_a_duplicate_city_in_the_same_country":0.022,"Tests\\Feature\\Admin\\VpnManagementTest::it_refuses_to_delete_a_location_that_still_has_servers":0.021,"Tests\\Feature\\Admin\\VpnManagementTest::registering_a_server_starts_it_provisioning_and_shows_the_token_once":0.121,"Tests\\Feature\\Admin\\VpnManagementTest::it_rejects_a_duplicate_endpoint":0.023,"Tests\\Feature\\Admin\\VpnManagementTest::it_rejects_a_malformed_public_key":0.024,"Tests\\Feature\\Admin\\VpnManagementTest::an_operator_cannot_declare_a_dead_server_online":0.024,"Tests\\Feature\\Admin\\VpnManagementTest::an_operator_can_put_a_server_into_maintenance":0.025,"Tests\\Feature\\Admin\\VpnManagementTest::rotating_the_token_is_audited_without_recording_the_token":0.028,"Tests\\Feature\\Admin\\VpnManagementTest::it_refuses_to_remove_a_server_that_still_carries_peers":0.347,"Tests\\Feature\\Admin\\VpnManagementTest::creating_a_pool_materialises_its_addresses":0.182,"Tests\\Feature\\Admin\\VpnManagementTest::it_rejects_a_subnet_wider_than_the_configured_ceiling":0.032,"Tests\\Feature\\Admin\\VpnManagementTest::it_rejects_a_gateway_outside_the_subnet":0.028,"Tests\\Feature\\Admin\\VpnManagementTest::it_refuses_to_delete_a_pool_with_addresses_in_use":0.085,"Tests\\Feature\\Admin\\VpnManagementTest::support_staff_cannot_register_or_modify_servers":1.931,"Tests\\Feature\\Admin\\VpnManagementTest::an_admin_can_manage_servers_but_not_rotate_tokens":3.443,"Tests\\Feature\\Admin\\VpnManagementTest::a_guest_cannot_reach_any_vpn_management_screen":0.04,"Tests\\Feature\\Admin\\VpnManagementTest::an_operator_can_return_a_heartbeating_server_from_maintenance":0.036,"Tests\\Feature\\Customer\\DeviceManagementTest::a_customer_can_create_a_device_and_gets_a_working_config":0.122,"Tests\\Feature\\Customer\\DeviceManagementTest::the_config_download_contains_a_complete_wireguard_profile":0.042,"Tests\\Feature\\Customer\\DeviceManagementTest::a_failed_device_creation_does_not_consume_a_slot":0.037,"Tests\\Feature\\Customer\\DeviceManagementTest::it_enforces_the_device_limit":0.049,"Tests\\Feature\\Customer\\DeviceManagementTest::a_customer_cannot_view_another_customers_device":0.051,"Tests\\Feature\\Customer\\DeviceManagementTest::a_customer_cannot_download_another_customers_config":0.053,"Tests\\Feature\\Customer\\DeviceManagementTest::a_customer_cannot_revoke_or_regenerate_another_customers_device":0.067,"Tests\\Feature\\Customer\\DeviceManagementTest::a_guest_cannot_reach_any_device_route":0.044,"Tests\\Feature\\Customer\\DeviceManagementTest::revoking_a_device_stops_it_connecting_and_frees_the_slot":0.178,"Tests\\Feature\\Customer\\DeviceManagementTest::a_revoked_devices_config_can_no_longer_be_downloaded":0.137,"Tests\\Feature\\Customer\\DeviceManagementTest::regenerating_issues_new_keys_and_invalidates_the_old_config":0.086,"Tests\\Feature\\Customer\\DeviceManagementTest::regenerating_can_move_a_device_to_another_location":0.072,"Tests\\Feature\\Customer\\DeviceManagementTest::a_lapsed_customer_cannot_create_devices_or_download_configs":0.061,"Tests\\Feature\\Customer\\DeviceManagementTest::a_lapsed_customer_can_still_list_and_revoke_devices":5.667,"Tests\\Feature\\Customer\\DeviceManagementTest::portal_pages_render":13.781,"Tests\\Feature\\Customer\\DeviceManagementTest::the_location_picker_only_offers_locations_with_healthy_servers":1.982,"Tests\\Feature\\Billing\\SubscriptionLifecycleTest::subscribing_copies_the_plans_terms_onto_the_subscription":0.014,"Tests\\Feature\\Billing\\SubscriptionLifecycleTest::editing_a_plan_does_not_reprice_existing_subscribers":0.021,"Tests\\Feature\\Billing\\SubscriptionLifecycleTest::a_trial_plan_starts_on_trial":0.035,"Tests\\Feature\\Billing\\SubscriptionLifecycleTest::subscribing_again_supersedes_the_previous_subscription":0.025,"Tests\\Feature\\Billing\\SubscriptionLifecycleTest::renewing_chains_from_the_period_end_not_from_now":0.085,"Tests\\Feature\\Billing\\SubscriptionLifecycleTest::renewing_issues_an_invoice":0.032,"Tests\\Feature\\Billing\\SubscriptionLifecycleTest::renewing_resets_a_metered_allowance":0.028,"Tests\\Feature\\Billing\\SubscriptionLifecycleTest::invoice_numbers_are_sequential_and_unique":0.049,"Tests\\Feature\\Billing\\SubscriptionLifecycleTest::cancelling_keeps_access_until_the_period_the_customer_paid_for_ends":0.015,"Tests\\Feature\\Billing\\SubscriptionLifecycleTest::a_cancelled_subscription_expires_rather_than_renewing":0.288,"Tests\\Feature\\Billing\\SubscriptionLifecycleTest::access_stops_the_moment_a_subscription_lapses_without_waiting_for_the_job":0.02,"Tests\\Feature\\Billing\\SubscriptionLifecycleTest::expiring_suspends_peers_but_keeps_their_addresses":0.135,"Tests\\Feature\\Billing\\SubscriptionLifecycleTest::resubscribing_restores_suspended_peers":0.132,"Tests\\Feature\\Billing\\SubscriptionLifecycleTest::past_due_keeps_access_through_the_grace_window":0.041,"Tests\\Feature\\Billing\\SubscriptionLifecycleTest::the_dry_run_changes_nothing":0.029,"Tests\\Feature\\Billing\\SubscriptionLifecycleTest::the_default_gateway_resolves_through_the_abstraction":0.006,"Tests\\Feature\\Billing\\SubscriptionLifecycleTest::the_manual_gateway_never_claims_to_have_taken_money":0.009,"Tests\\Feature\\Billing\\SubscriptionLifecycleTest::an_unknown_gateway_fails_loudly":0.005,"Tests\\Feature\\Billing\\SubscriptionLifecycleTest::recording_a_payment_writes_a_ledger_entry_and_settles_the_invoice":0.038,"Tests\\Feature\\Admin\\PlanManagementTest::it_creates_a_plan_converting_price_and_data_to_storage_units":0.262,"Tests\\Feature\\Admin\\PlanManagementTest::a_blank_data_limit_means_unmetered":0.023,"Tests\\Feature\\Admin\\PlanManagementTest::a_restricted_plan_stores_its_permitted_locations":0.025,"Tests\\Feature\\Admin\\PlanManagementTest::editing_a_plan_does_not_change_existing_subscribers_terms":0.32,"Tests\\Feature\\Admin\\PlanManagementTest::it_refuses_to_delete_a_plan_with_live_subscribers":0.081,"Tests\\Feature\\Admin\\PlanManagementTest::it_rejects_a_duplicate_slug":0.086,"Tests\\Feature\\Admin\\PlanManagementTest::support_staff_cannot_manage_plans":2.066,"Tests\\Feature\\Admin\\PlanManagementTest::admin_screens_render":3.481,"Tests\\Feature\\Support\\TicketTest::a_customer_can_open_a_ticket":0.283,"Tests\\Feature\\Support\\TicketTest::ticket_references_avoid_visually_ambiguous_characters":0.152,"Tests\\Feature\\Support\\TicketTest::a_customer_cannot_attach_a_device_they_do_not_own":0.04,"Tests\\Feature\\Support\\TicketTest::a_customer_cannot_view_another_customers_ticket":0.032,"Tests\\Feature\\Support\\TicketTest::internal_notes_are_never_shown_to_the_customer":1.68,"Tests\\Feature\\Support\\TicketTest::an_internal_note_does_not_mark_the_ticket_answered":0.028,"Tests\\Feature\\Support\\TicketTest::a_staff_reply_marks_the_ticket_answered_and_claims_it":0.099,"Tests\\Feature\\Support\\TicketTest::a_customer_reply_puts_the_ticket_back_in_the_queue":0.025,"Tests\\Feature\\Support\\TicketTest::replying_to_a_closed_ticket_reopens_it_with_history_intact":0.032,"Tests\\Feature\\Support\\TicketTest::support_can_reply_but_only_managers_can_close_or_reassign":0.068,"Tests\\Feature\\Support\\TicketTest::support_is_reachable_without_an_active_subscription":3.121,"Tests\\Feature\\Support\\TicketTest::message_bodies_are_escaped_not_rendered":0.064,"Tests\\Feature\\Support\\TicketTest::ticket_screens_render":4.542,"Tests\\Feature\\RetentionTest::it_deletes_records_past_their_retention_period":0.072,"Tests\\Feature\\RetentionTest::a_retention_of_zero_means_keep_forever_not_delete_everything":0.077,"Tests\\Feature\\RetentionTest::the_dry_run_deletes_nothing":0.067,"Tests\\Feature\\RetentionTest::retention_is_scheduled_to_run":0.006,"Tests\\Feature\\NotificationTest::expiring_a_subscription_notifies_the_customer":0.041,"Tests\\Feature\\NotificationTest::revoking_a_device_sends_a_security_notice":0.068,"Tests\\Feature\\NotificationTest::it_warns_before_expiry_but_only_when_auto_renew_is_off":0.102,"Tests\\Feature\\NotificationTest::a_dry_run_sends_nothing":0.022,"Tests\\Feature\\NotificationTest::it_uses_an_operators_edited_template_when_one_is_active":0.035,"Tests\\Feature\\NotificationTest::it_falls_back_to_the_built_in_copy_when_no_template_exists":0.023,"Tests\\Feature\\NotificationTest::a_deactivated_template_falls_back_rather_than_sending_nothing":0.034,"Tests\\Feature\\NotificationTest::template_placeholders_are_escaped_and_never_executed_as_code":0.026,"Tests\\Feature\\NotificationTest::seeding_templates_twice_does_not_discard_operator_edits":0.026,"Tests\\Feature\\Admin\\MonitoringAndTemplatesTest::the_monitoring_page_renders_on_an_empty_database":2.189,"Tests\\Feature\\Admin\\MonitoringAndTemplatesTest::it_renders_charts_with_real_data":2.185,"Tests\\Feature\\Admin\\MonitoringAndTemplatesTest::a_server_with_no_recent_samples_says_so_rather_than_drawing_an_empty_chart":0.053,"Tests\\Feature\\Admin\\MonitoringAndTemplatesTest::monitoring_requires_the_permission":0.035,"Tests\\Feature\\Admin\\MonitoringAndTemplatesTest::an_operator_can_edit_a_template":0.31,"Tests\\Feature\\Admin\\MonitoringAndTemplatesTest::the_preview_uses_the_same_escaping_as_a_real_send":1.663,"Tests\\Feature\\Admin\\MonitoringAndTemplatesTest::editing_templates_requires_the_permission":0.048,"Tests\\Feature\\Admin\\MonitoringAndTemplatesTest::template_screens_render":1.104,"Tests\\Feature\\Admin\\MonitoringAndTemplatesTest::a_guest_is_redirected_to_the_staff_login":0.013,"Tests\\Feature\\Api\\ApiV1Test::it_issues_a_token_for_valid_credentials":0.155,"Tests\\Feature\\Api\\ApiV1Test::it_rejects_bad_credentials":0.02,"Tests\\Feature\\Api\\ApiV1Test::the_api_enforces_two_factor_rather_than_bypassing_it":0.05,"Tests\\Feature\\Api\\ApiV1Test::protected_endpoints_reject_unauthenticated_requests":0.183,"Tests\\Feature\\Api\\ApiV1Test::logout_all_revokes_every_token":0.05,"Tests\\Feature\\Api\\ApiV1Test::it_creates_a_device_and_returns_its_config_once":0.325,"Tests\\Feature\\Api\\ApiV1Test::device_listings_never_include_private_keys":0.049,"Tests\\Feature\\Api\\ApiV1Test::a_customer_cannot_read_another_customers_device":0.063,"Tests\\Feature\\Api\\ApiV1Test::exceeding_the_device_limit_returns_403":0.023,"Tests\\Feature\\Api\\ApiV1Test::a_location_with_no_capacity_returns_409_not_500":0.168,"Tests\\Feature\\Api\\ApiV1Test::revoking_works_without_a_live_subscription":0.049,"Tests\\Feature\\Api\\ApiV1Test::it_returns_account_subscription_and_locations":0.081,"Tests\\Feature\\Api\\ApiV1Test::no_subscription_returns_200_with_null_not_404":0.015,"Tests\\Feature\\Api\\ApiV1Test::locations_never_expose_server_details":0.015,"Tests\\Feature\\Api\\ApiV1Test::status_labels_connection_state_as_inferred":0.05,"Tests\\Feature\\Billing\\StoreSubscriptionTest::it_creates_a_subscription_from_a_verified_purchase":0.027,"Tests\\Feature\\Billing\\StoreSubscriptionTest::applying_the_same_purchase_twice_does_not_duplicate_it":0.031,"Tests\\Feature\\Billing\\StoreSubscriptionTest::a_purchase_cannot_be_claimed_by_a_second_account":0.069,"Tests\\Feature\\Billing\\StoreSubscriptionTest::a_store_purchase_supersedes_an_existing_web_subscription":0.026,"Tests\\Feature\\Billing\\StoreSubscriptionTest::a_refund_stops_access_immediately_even_before_expiry":0.092,"Tests\\Feature\\Billing\\StoreSubscriptionTest::billing_retry_maps_to_past_due_and_keeps_access":0.02,"Tests\\Feature\\Billing\\StoreSubscriptionTest::a_cancelled_subscription_keeps_access_until_it_expires":0.018,"Tests\\Feature\\Billing\\StoreSubscriptionTest::renewal_extends_the_same_subscription":0.033,"Tests\\Feature\\Billing\\StoreSubscriptionTest::a_google_upgrade_follows_the_linked_purchase_token":0.026,"Tests\\Feature\\Billing\\StoreSubscriptionTest::an_unmapped_product_throws_rather_than_guessing":0.009,"Tests\\Feature\\Billing\\StoreSubscriptionTest::a_notification_for_an_unknown_transaction_is_ignored_not_fatal":0.014,"Tests\\Feature\\Billing\\StoreSubscriptionTest::store_subscriptions_expose_where_to_cancel":0.025,"Tests\\Feature\\Billing\\StripeCheckoutTest::an_unsigned_webhook_is_rejected":0.18,"Tests\\Feature\\Billing\\StripeCheckoutTest::a_webhook_with_a_wrong_signature_is_rejected":0.022,"Tests\\Feature\\Billing\\StripeCheckoutTest::a_verified_checkout_creates_the_subscription":0.387,"Tests\\Feature\\Billing\\StripeCheckoutTest::a_replayed_checkout_webhook_does_not_duplicate_the_subscription":0.036,"Tests\\Feature\\Billing\\StripeCheckoutTest::an_unknown_event_type_still_returns_200":0.014,"Tests\\Feature\\Billing\\StripeCheckoutTest::a_deleted_subscription_ends_access":0.034,"Tests\\Feature\\Billing\\StripeCheckoutTest::a_paid_invoice_is_recorded_once":0.104,"Tests\\Feature\\Billing\\StripeCheckoutTest::starting_checkout_creates_nothing_locally":0.267,"Tests\\Feature\\Billing\\StripeCheckoutTest::the_success_page_does_not_claim_success_before_the_webhook":2.54,"Tests\\Feature\\Billing\\StripeCheckoutTest::checkout_requires_authentication":0.022,"Tests\\Feature\\Billing\\StripeCheckoutTest::our_scheduler_never_renews_a_stripe_subscription":0.048,"Tests\\Feature\\Billing\\StripeCheckoutTest::our_scheduler_never_renews_a_store_subscription":0.022,"Tests\\Feature\\Security\\MassAssignmentTest::payment_identity_cannot_be_mass_assigned":0.008,"Tests\\Feature\\Security\\MassAssignmentTest::peer_key_material_cannot_be_mass_assigned":0.01,"Tests\\Feature\\Security\\MassAssignmentTest::the_node_agent_token_hash_cannot_be_mass_assigned":0.01,"Tests\\Feature\\Security\\MassAssignmentTest::server_status_cannot_be_mass_assigned":0.011,"Tests\\Feature\\Security\\MassAssignmentTest::key_material_never_appears_in_serialisation":0.007,"Tests\\Feature\\Security\\MassAssignmentTest::user_credentials_never_appear_in_serialisation":0.025,"Tests\\Feature\\Security\\MassAssignmentTest::the_agent_token_hash_never_appears_in_serialisation":0.013}}