horae-tests-0.1.0
checks.x86_64-linux.tests
· build #448
· raw
unpackPhase
1unpacking source archive /nix/store/llxxr0vli80bbrkis6s22mzrvz0y5s4g-source2source root is sourcepatchPhase
3Executing configureCargoCommonVars4decompressing cargo artifacts from /nix/store/p0fga5r55aw5iwdy8h0dpr32lhcczl5i-horae-checks-deps-0.1.0/target.tar.zst to target5patchPhase completed in 3 minutes 8 secondsconfigurePhase
6will append /build/source/.cargo-home/config.toml with contents of /nix/store/i0bj632any4bjpvnl84zc2h7cq8zn0mz-vendor-cargo-deps/config.toml7default configurePhase, nothing to dobuildPhase
8+++ command cargo nextest run -p horae-core --test-threads 489 Compiling proc-macro2 v1.0.10610 Compiling serde_core v1.0.22811 Compiling serde v1.0.22812 Compiling num-traits v0.2.1913 Compiling quote v1.0.4614 Compiling syn v2.0.11815 Compiling serde_derive v1.0.22816 Compiling thiserror-impl v2.0.1817 Compiling uuid v1.23.418 Compiling thiserror v2.0.1819 Compiling chrono v0.4.4520 Compiling horae-core v0.1.0 (/build/source/crates/core)21 Finished `test` profile [unoptimized + debuginfo] target(s) in 2m 06s22 Running [ 00:00:00] 0/121: 3 running, 0 passed, 0 skipped 23 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding24 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget25------------26 Nextest run ID 7485e261-5f22-41bc-bddf-bcdfc6ecd71b with nextest profile: default27 Starting 121 tests across 1 binary28 Running [ 00:00:00] 0/121: 3 running, 0 passed, 0 skipped 29 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding30 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget31 Running [ 00:00:00] 0/121: 3 running, 0 passed, 0 skipped 32 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding33 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget34 Running [ 00:00:00] 0/121: 3 running, 0 passed, 0 skipped 35 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding36 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget37 Running [ 00:00:00] 0/121: 3 running, 0 passed, 0 skipped 38 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding39 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget40 Running [ 00:00:00] 0/121: 3 running, 0 passed, 0 skipped 41 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding42 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget43 Running [ 00:00:00] 0/121: 3 running, 0 passed, 0 skipped 44 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding45 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget46 Running [ 00:00:00] 0/121: 3 running, 0 passed, 0 skipped 47 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding48 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget49 Running [ 00:00:00] 0/121: 3 running, 0 passed, 0 skipped 50 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding51 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget52 Running [ 00:00:00] 0/121: 3 running, 0 passed, 0 skipped 53 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding54 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget55 Running [ 00:00:00] 0/121: 3 running, 0 passed, 0 skipped 56 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding57 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget58 Running [ 00:00:00] 0/121: 3 running, 0 passed, 0 skipped 59 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding60 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget61 Running [ 00:00:00] 0/121: 3 running, 0 passed, 0 skipped 62 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding63 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget64 Running [ 00:00:00] 0/121: 3 running, 0 passed, 0 skipped 65 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding66 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget67 Running [ 00:00:00] 0/121: 3 running, 0 passed, 0 skipped 68 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding69 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget70 Running [ 00:00:00] 0/121: 3 running, 0 passed, 0 skipped 71 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding72 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget73 Running [ 00:00:00] 0/121: 3 running, 0 passed, 0 skipped 74 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding75 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget76 Running [ 00:00:00] 0/121: 3 running, 0 passed, 0 skipped 77 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding78 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget79 Running [ 00:00:00] 0/121: 3 running, 0 passed, 0 skipped 80 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding81 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget82 Running [ 00:00:00] 0/121: 48 running, 0 passed, 0 skipped 83 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding84 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget85 [ 00:00:00] horae-core ::a_single_jump_announces_every_crossed_band86 [ 00:00:00] horae-core jects_invalid_inputs_and_widens_large_values87 [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows88 [ 00:00:00] horae-core ::tests::current_band_is_the_highest_reached89 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once90 [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets91 Running [ 00:00:00] 0/121: 48 running, 0 passed, 0 skipped 92 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding93 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget94 [ 00:00:00] horae-core ::a_single_jump_announces_every_crossed_band95 [ 00:00:00] horae-core jects_invalid_inputs_and_widens_large_values96 [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows97 [ 00:00:00] horae-core ::tests::current_band_is_the_highest_reached98 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once99 [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets100 Running [ 00:00:00] 0/121: 48 running, 0 passed, 0 skipped 101 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding102 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget103 [ 00:00:00] horae-core ::a_single_jump_announces_every_crossed_band104 [ 00:00:00] horae-core jects_invalid_inputs_and_widens_large_values105 [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows106 [ 00:00:00] horae-core ::tests::current_band_is_the_highest_reached107 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once108 [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets109 Running [ 00:00:00] 0/121: 48 running, 0 passed, 0 skipped 110 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding111 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget112 [ 00:00:00] horae-core ::a_single_jump_announces_every_crossed_band113 [ 00:00:00] horae-core jects_invalid_inputs_and_widens_large_values114 [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows115 [ 00:00:00] horae-core ::tests::current_band_is_the_highest_reached116 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once117 [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets118 Running [ 00:00:00] > 6/121: 48 running, 6 passed, 0 skipped 119 [ 00:00:00] horae-core ::a_single_jump_announces_every_crossed_band120 [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows121 [ 00:00:00] horae-core ::tests::current_band_is_the_highest_reached122 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once123 [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets124 [ 00:00:00] horae-core t::tests::no_band_for_zero_or_missing_budget125 [ 00:00:00] horae-core budget::tests::large_values_do_not_overflow126 [ 00:00:00] horae-core eserves_absence_zero_and_exact_large_amounts127 PASS [ 0.046s] horae-core budget::tests::configured_alert_accepts_zero_percent_but_not_zero_budget128 PASS [ 0.351s] horae-core budget::tests::configured_alert_threshold_is_exact_without_rounding129 PASS [ 0.111s] horae-core budget::tests::configured_alert_rejects_invalid_inputs_and_widens_large_values130 PASS [ 0.101s] horae-core duration::tests::minutes_between_is_exact_no_minimum131 PASS [ 0.108s] horae-core duration::tests::parse_rejects_negative_non_finite_and_malformed_values132 PASS [ 0.038s] horae-core importers::harvest::convert::tests::hours_round_trip_against_exporter_transform133 Running [ 00:00:00] > 6/121: 48 running, 6 passed, 0 skipped 134 [ 00:00:00] horae-core ::a_single_jump_announces_every_crossed_band135 [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows136 [ 00:00:00] horae-core ::tests::current_band_is_the_highest_reached137 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once138 [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets139 [ 00:00:00] horae-core t::tests::no_band_for_zero_or_missing_budget140 [ 00:00:00] horae-core budget::tests::large_values_do_not_overflow141 [ 00:00:00] horae-core eserves_absence_zero_and_exact_large_amounts142 Running [ 00:00:00] > 6/121: 48 running, 6 passed, 0 skipped 143 [ 00:00:00] horae-core ::a_single_jump_announces_every_crossed_band144 [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows145 [ 00:00:00] horae-core ::tests::current_band_is_the_highest_reached146 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once147 [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets148 [ 00:00:00] horae-core t::tests::no_band_for_zero_or_missing_budget149 [ 00:00:00] horae-core budget::tests::large_values_do_not_overflow150 [ 00:00:00] horae-core eserves_absence_zero_and_exact_large_amounts151 Running [ 00:00:00] > 6/121: 48 running, 6 passed, 0 skipped 152 [ 00:00:00] horae-core ::a_single_jump_announces_every_crossed_band153 [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows154 [ 00:00:00] horae-core ::tests::current_band_is_the_highest_reached155 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once156 [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets157 [ 00:00:00] horae-core t::tests::no_band_for_zero_or_missing_budget158 [ 00:00:00] horae-core budget::tests::large_values_do_not_overflow159 [ 00:00:00] horae-core eserves_absence_zero_and_exact_large_amounts160 Running [ 00:00:00] > 10/121: 48 running, 6 passed, 0 skipped 161 [ 00:00:00] horae-core ::a_single_jump_announces_every_crossed_band162 [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows163 [ 00:00:00] horae-core ::tests::current_band_is_the_highest_reached164 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once165 [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets166 [ 00:00:00] horae-core t::tests::no_band_for_zero_or_missing_budget167 [ 00:00:00] horae-core budget::tests::large_values_do_not_overflow168 [ 00:00:00] horae-core eserves_absence_zero_and_exact_large_amounts169 PASS [ 0.223s] horae-core duration::tests::parse_preserves_u32_boundary_without_saturating170 PASS [ 0.112s] horae-core budget::tests::over_budget_fires_even_without_a_configured_100_band171 PASS [ 0.119s] horae-core importers::harvest::keys::tests::occurrence_counter_numbers_repeats_from_zero172 PASS [ 0.223s] horae-core client::tests::default_rate_rejects_negative_fractional_cent_overflow_and_invalid_text173 PASS [ 0.145s] horae-core importers::harvest::convert::tests::negative_is_rejected174 Running [ 00:00:00] > 11/121: 48 running, 11 passed, 0 skipped 175 [ 00:00:00] horae-core ::a_single_jump_announces_every_crossed_band176 [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows177 [ 00:00:00] horae-core ::tests::current_band_is_the_highest_reached178 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once179 [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets180 [ 00:00:00] horae-core t::tests::no_band_for_zero_or_missing_budget181 [ 00:00:00] horae-core budget::tests::large_values_do_not_overflow182 [ 00:00:00] horae-core eserves_absence_zero_and_exact_large_amounts183 Running [ 00:00:00] => 20/121: 48 running, 11 passed, 0 skipped 184 [ 00:00:00] horae-core ::a_single_jump_announces_every_crossed_band185 [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows186 [ 00:00:00] horae-core ::tests::current_band_is_the_highest_reached187 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once188 [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets189 [ 00:00:00] horae-core t::tests::no_band_for_zero_or_missing_budget190 [ 00:00:00] horae-core budget::tests::large_values_do_not_overflow191 [ 00:00:00] horae-core eserves_absence_zero_and_exact_large_amounts192 PASS [ 0.233s] horae-core budget::tests::display_percentage_rounds_clamps_and_never_overflows193 PASS [ 0.146s] horae-core importers::harvest::keys::tests::composite_components_do_not_collide194 PASS [ 0.193s] horae-core client::tests::default_rate_preserves_absence_zero_and_exact_large_amounts195 PASS [ 0.212s] horae-core client::tests::profile_rejects_blank_overlong_and_null_names196 PASS [ 0.175s] horae-core budget::tests::large_values_do_not_overflow197 PASS [ 0.151s] horae-core importers::harvest::convert::tests::round_half_up_at_the_boundary198 PASS [ 0.161s] horae-core importers::harvest::convert::tests::money_rounds_third_decimal_half_up199 PASS [ 0.161s] horae-core importers::harvest::convert::tests::money_round_trip_against_exporter_transform200 PASS [ 0.260s] horae-core budget::tests::current_band_is_the_highest_reached201 PASS [ 0.315s] horae-core budget::tests::a_single_jump_announces_every_crossed_band202 PASS [ 0.057s] horae-core importers::harvest::types::tests::import_modes_display_their_wire_names203 PASS [ 0.054s] horae-core importers::harvest::types::tests::reconciles_when_errored_counts_match_collected_errors204 Running [ 00:00:00] => 23/121: 48 running, 23 passed, 0 skipped 205 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once206 [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets207 [ 00:00:00] horae-core t::tests::no_band_for_zero_or_missing_budget208 [ 00:00:00] horae-core ::optional_text_normalizes_only_blank_fields209 [ 00:00:00] horae-core orted_currencies_and_unicode_character_limit210 [ 00:00:00] horae-core ation::tests::format_clamps_negative_to_zero211 [ 00:00:00] horae-core unsupported_currency_and_null_billing_fields212 [ 00:00:00] horae-core duration::tests::format_round_trip213 Running [ 00:00:00] ==> 43/121: 48 running, 43 passed, 0 skipped 214 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once215 [ 00:00:00] horae-core t::tests::no_band_for_zero_or_missing_budget216 [ 00:00:00] horae-core ::optional_text_normalizes_only_blank_fields217 [ 00:00:00] horae-core ation::tests::format_clamps_negative_to_zero218 [ 00:00:00] horae-core duration::tests::format_round_trip219 [ 00:00:00] horae-core s::parse_decimal_rounds_half_minutes_exactly220 [ 00:00:00] horae-core ts_excessive_decimal_precision_and_numerator221 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals222 PASS [ 0.049s] horae-core invoice::tests::discount_allocation_uses_largest_remainder_then_stable_source_order223 PASS [ 0.244s] horae-core importers::harvest::convert::tests::conversion_handles_high_precision_without_intermediate_overflow224 PASS [ 0.252s] horae-core client::tests::profile_accepts_supported_currencies_and_unicode_character_limit225 PASS [ 0.252s] horae-core client::tests::profile_rejects_unsupported_currency_and_null_billing_fields226 PASS [ 0.205s] horae-core importers::harvest::keys::tests::client_key_equal_across_case_and_whitespace227 PASS [ 0.273s] horae-core duration::tests::parse_decimal228 PASS [ 0.263s] horae-core budget::tests::drop_below_a_band_does_not_fire_but_current_resets229 PASS [ 0.334s] horae-core importers::harvest::keys::tests::normalize_matches_sql_harvest_norm_contract230 PASS [ 0.236s] horae-core importers::harvest::convert::tests::conversion_reports_precision_and_numerator_limits231 PASS [ 0.272s] horae-core duration::tests::parse_rejects_colon_overflow_without_panicking232 PASS [ 0.234s] horae-core importers::harvest::convert::tests::garbage_is_rejected233 PASS [ 0.295s] horae-core duration::tests::format_hhmm_pads_minutes234 PASS [ 0.245s] horae-core importers::harvest::convert::tests::conversion_preserves_the_i64_boundary_and_rejects_rounding_past_it235 PASS [ 0.202s] horae-core importers::harvest::keys::tests::normalize_trims_and_case_folds236 PASS [ 0.200s] horae-core importers::harvest::keys::tests::occurrence_counter_keys_are_independent237 PASS [ 0.067s] horae-core invoice::tests::discount_allocation_conserves_header_amount_and_bounds_each_line238 PASS [ 0.312s] horae-core duration::tests::parse_colon239 PASS [ 0.261s] horae-core duration::tests::parse_round_trips_each_minute_in_a_day240 PASS [ 0.075s] horae-core invoice::tests::discount_allocation_handles_empty_zero_and_full_discounts241 PASS [ 0.074s] horae-core invoice::tests::discounted_fee_contribution_leaves_discount_available242 Running [ 00:00:00] ==> 43/121: 48 running, 43 passed, 0 skipped 243 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once244 [ 00:00:00] horae-core t::tests::no_band_for_zero_or_missing_budget245 [ 00:00:00] horae-core ::optional_text_normalizes_only_blank_fields246 [ 00:00:00] horae-core ation::tests::format_clamps_negative_to_zero247 [ 00:00:00] horae-core duration::tests::format_round_trip248 [ 00:00:00] horae-core s::parse_decimal_rounds_half_minutes_exactly249 [ 00:00:00] horae-core ts_excessive_decimal_precision_and_numerator250 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals251 Running [ 00:00:00] ===> 54/121: 48 running, 43 passed, 0 skipped 252 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once253 [ 00:00:00] horae-core t::tests::no_band_for_zero_or_missing_budget254 [ 00:00:00] horae-core ::optional_text_normalizes_only_blank_fields255 [ 00:00:00] horae-core ation::tests::format_clamps_negative_to_zero256 [ 00:00:00] horae-core duration::tests::format_round_trip257 [ 00:00:00] horae-core s::parse_decimal_rounds_half_minutes_exactly258 [ 00:00:00] horae-core ts_excessive_decimal_precision_and_numerator259 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals260 PASS [ 0.230s] horae-core client::tests::optional_text_normalizes_only_blank_fields261 PASS [ 0.120s] horae-core importers::harvest::types::tests::archived_errors_and_new_inline_errors_reconcile_across_batches262 PASS [ 0.317s] horae-core duration::tests::format_clamps_negative_to_zero263 PASS [ 0.129s] horae-core importers::harvest::types::tests::does_not_reconcile_when_an_errored_count_has_no_reported_error264 PASS [ 0.328s] horae-core duration::tests::parse_rejects_excessive_decimal_precision_and_numerator265 PASS [ 0.109s] horae-core invoice::tests::discount_allocation_supports_maximum_representable_subtotal266 PASS [ 0.285s] horae-core importers::harvest::convert::tests::hours_common_values_are_exact267 PASS [ 0.320s] horae-core budget::tests::no_band_for_zero_or_missing_budget268 PASS [ 0.143s] horae-core importers::harvest::types::account_switch_tests::account_switch_requires_binding_and_no_imports_or_active_work269 PASS [ 0.347s] horae-core budget::tests::each_crossing_is_announced_once270 PASS [ 0.293s] horae-core importers::harvest::convert::tests::high_precision_fraction_straddles_the_half_minute_exactly271 PASS [ 0.134s] horae-core invoice::tests::invoice_adjustments_apply_discount_before_non_compounding_taxes272 PASS [ 0.139s] horae-core invoice::tests::discount_allocation_rejects_negative_lines_and_subtotal_overflow273 PASS [ 0.134s] horae-core invoice::tests::invoice_adjustments_reject_negative_subtotal_and_overflow274 PASS [ 0.299s] horae-core importers::harvest::convert::tests::leading_and_trailing_forms_parse275 Running [ 00:00:00] ===> 58/121: 48 running, 58 passed, 0 skipped 276 [ 00:00:00] horae-core duration::tests::format_round_trip277 [ 00:00:00] horae-core s::parse_decimal_rounds_half_minutes_exactly278 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals279 [ 00:00:00] horae-core epresentable_scaled_values_without_panicking280 [ 00:00:00] horae-core onvert::tests::money_common_values_are_exact281 [ 00:00:00] horae-core s::project_key_falls_back_to_client_and_name282 [ 00:00:00] horae-core ts::time_entry_key_distinguishes_and_matches283 [ 00:00:00] horae-core keys::tests::task_key_shared_across_projects284 Running [ 00:00:00] ====> 66/121: 48 running, 58 passed, 0 skipped 285 [ 00:00:00] horae-core duration::tests::format_round_trip286 [ 00:00:00] horae-core s::parse_decimal_rounds_half_minutes_exactly287 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals288 [ 00:00:00] horae-core epresentable_scaled_values_without_panicking289 [ 00:00:00] horae-core onvert::tests::money_common_values_are_exact290 [ 00:00:00] horae-core s::project_key_falls_back_to_client_and_name291 [ 00:00:00] horae-core ts::time_entry_key_distinguishes_and_matches292 [ 00:00:00] horae-core keys::tests::task_key_shared_across_projects293 PASS [ 0.279s] horae-core importers::harvest::keys::tests::task_key_shared_across_projects294 PASS [ 0.283s] horae-core importers::harvest::keys::tests::time_entry_key_distinguishes_and_matches295 PASS [ 0.059s] horae-core project::tests::basics_reject_overlong_code_and_unsupported_currency296 PASS [ 0.395s] horae-core duration::tests::parse_decimal_rounds_half_minutes_exactly297 PASS [ 0.354s] horae-core importers::harvest::convert::tests::money_common_values_are_exact298 PASS [ 0.293s] horae-core importers::harvest::keys::tests::project_key_falls_back_to_client_and_name299 PASS [ 0.365s] horae-core importers::harvest::convert::tests::conversion_rejects_unrepresentable_scaled_values_without_panicking300 PASS [ 0.296s] horae-core importers::harvest::keys::tests::project_key_prefers_code_when_present301 PASS [ 0.380s] horae-core duration::tests::format_round_trip302 Running [ 00:00:00] ====> 67/121: 48 running, 67 passed, 0 skipped 303 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals304 [ 00:00:00] horae-core invoice_adjustments_round_components_half_up305 [ 00:00:00] horae-core invoice::tests::line_amount_90_minutes306 [ 00:00:00] horae-core e_amount_accepts_large_representable_amounts307 [ 00:00:00] horae-core invoice::tests::line_amount_exact_hour308 [ 00:00:00] horae-core invoice::tests::line_amount_half_hour309 [ 00:00:00] horae-core invoice::tests::line_amount_zero_minutes310 [ 00:00:00] horae-core :line_amount_rejects_unrepresentable_results311 Running [ 00:00:00] ====> 68/121: 48 running, 67 passed, 0 skipped 312 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals313 [ 00:00:00] horae-core invoice_adjustments_round_components_half_up314 [ 00:00:00] horae-core invoice::tests::line_amount_90_minutes315 [ 00:00:00] horae-core e_amount_accepts_large_representable_amounts316 [ 00:00:00] horae-core invoice::tests::line_amount_exact_hour317 [ 00:00:00] horae-core invoice::tests::line_amount_half_hour318 [ 00:00:00] horae-core invoice::tests::line_amount_zero_minutes319 [ 00:00:00] horae-core :line_amount_rejects_unrepresentable_results320 PASS [ 0.084s] horae-core project::tests::percentage_preserves_exact_hundredths321 PASS [ 0.212s] horae-core invoice::tests::invoice_adjustments_round_components_half_up322 PASS [ 0.058s] horae-core time_of_day::tests::parse_rejects_out_of_range_and_garbage323 Running [ 00:00:00] ====> 70/121: 48 running, 70 passed, 0 skipped 324 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals325 [ 00:00:00] horae-core invoice::tests::line_amount_90_minutes326 [ 00:00:00] horae-core e_amount_accepts_large_representable_amounts327 [ 00:00:00] horae-core invoice::tests::line_amount_exact_hour328 [ 00:00:00] horae-core invoice::tests::line_amount_half_hour329 [ 00:00:00] horae-core invoice::tests::line_amount_zero_minutes330 [ 00:00:00] horae-core :line_amount_rejects_unrepresentable_results331 [ 00:00:00] horae-core line_amount_rounds_half_cents_up_not_to_even332 Running [ 00:00:00] =====> 82/121: 48 running, 70 passed, 0 skipped 333 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals334 [ 00:00:00] horae-core invoice::tests::line_amount_90_minutes335 [ 00:00:00] horae-core e_amount_accepts_large_representable_amounts336 [ 00:00:00] horae-core invoice::tests::line_amount_exact_hour337 [ 00:00:00] horae-core invoice::tests::line_amount_half_hour338 [ 00:00:00] horae-core invoice::tests::line_amount_zero_minutes339 [ 00:00:00] horae-core :line_amount_rejects_unrepresentable_results340 [ 00:00:00] horae-core line_amount_rounds_half_cents_up_not_to_even341 PASS [ 0.118s] horae-core rounding::tests::identity_when_inc_zero342 PASS [ 0.091s] horae-core time_of_day::tests::clamp_to_day_prevents_crossing_midnight343 PASS [ 0.112s] horae-core rounding::tests::nearest_ties_round_up344 PASS [ 0.112s] horae-core rounding::tests::effective_minutes_respect_frozen_history_including_zero345 PASS [ 0.172s] horae-core project::tests::basics_accept_supported_currencies_and_optional_dates346 PASS [ 0.100s] horae-core state::tests::managers_invoice_open_and_approved_time347 PASS [ 0.119s] horae-core project::tests::percentage_rejects_invalid_precision_range_and_syntax348 PASS [ 0.109s] horae-core state::tests::invoiced_is_final349 PASS [ 0.104s] horae-core state::tests::member_submit_and_reopen350 PASS [ 0.229s] horae-core invoice::tests::line_amount_90_minutes351 PASS [ 0.106s] horae-core time_of_day::tests::format_round_trips352 PASS [ 0.116s] horae-core rounding::tests::up_and_down353 PASS [ 0.232s] horae-core invoice::tests::resolve_rate_cascade354 PASS [ 0.233s] horae-core invoice::tests::line_amount_zero_rate355 PASS [ 0.227s] horae-core money::tests::parse_cents_is_exact_where_a_float_would_drift356 PASS [ 0.230s] horae-core money::tests::format_cents_plain_keeps_sign_below_one_unit357 PASS [ 0.234s] horae-core invoice::tests::line_amount_rejects_unrepresentable_results358 PASS [ 0.232s] horae-core invoice::tests::selected_rate_keeps_zero_and_explicit_missing_project_rate359 Running [ 00:00:00] =====> 88/121: 33 running, 88 passed, 0 skipped 360 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals361 [ 00:00:00] horae-core e_amount_accepts_large_representable_amounts362 [ 00:00:00] horae-core invoice::tests::line_amount_exact_hour363 [ 00:00:00] horae-core invoice::tests::line_amount_half_hour364 [ 00:00:00] horae-core invoice::tests::line_amount_zero_minutes365 [ 00:00:00] horae-core line_amount_rounds_half_cents_up_not_to_even366 [ 00:00:00] horae-core invoice::tests::line_amount_odd_minutes367 [ 00:00:00] horae-core addition_rejects_overflow_in_both_directions368 Running [ 00:00:01] ======> 96/121: 33 running, 88 passed, 0 skipped 369 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals370 [ 00:00:00] horae-core e_amount_accepts_large_representable_amounts371 [ 00:00:00] horae-core invoice::tests::line_amount_exact_hour372 [ 00:00:00] horae-core invoice::tests::line_amount_half_hour373 [ 00:00:00] horae-core invoice::tests::line_amount_zero_minutes374 [ 00:00:00] horae-core line_amount_rounds_half_cents_up_not_to_even375 [ 00:00:00] horae-core invoice::tests::line_amount_odd_minutes376 [ 00:00:00] horae-core addition_rejects_overflow_in_both_directions377 PASS [ 0.250s] horae-core money::tests::addition_retains_currency_checks_and_representable_boundaries378 PASS [ 0.250s] horae-core invoice::tests::selected_rate_mode_ignores_unselected_rate_sources379 PASS [ 0.251s] horae-core money::tests::addition_rejects_overflow_in_both_directions380 PASS [ 0.127s] horae-core time_of_day::tests::parse_reads_24h381 PASS [ 0.130s] horae-core time_of_day::tests::parse_reads_12h_including_edges382 PASS [ 0.254s] horae-core invoice::tests::line_amount_half_hour383 PASS [ 0.149s] horae-core rounding::tests::result_is_multiple_of_inc384 PASS [ 0.276s] horae-core invoice::tests::line_amount_rounds_half_cents_up_not_to_even385 PASS [ 0.284s] horae-core money::tests::format_cents_groups_thousands_and_keeps_sign386 PASS [ 0.289s] horae-core invoice::tests::line_amount_odd_minutes387 PASS [ 0.185s] horae-core state::tests::only_manager_can_approve388 Running [ 00:00:01] ======> 99/121: 22 running, 99 passed, 0 skipped 389 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals390 [ 00:00:00] horae-core e_amount_accepts_large_representable_amounts391 [ 00:00:00] horae-core invoice::tests::line_amount_exact_hour392 [ 00:00:00] horae-core invoice::tests::line_amount_zero_minutes393 [ 00:00:00] horae-core rse_cents_reads_whole_and_fractional_amounts394 [ 00:00:00] horae-core parse_cents_rejects_what_it_cannot_represent395 [ 00:00:00] horae-core se_cents_tolerates_grouping_spaces_and_signs396 [ 00:00:00] horae-core cs_accept_same_day_but_reject_reversed_dates397 Running [ 00:00:01] ======> 101/121: 22 running, 99 passed, 0 skipped 398 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals399 [ 00:00:00] horae-core e_amount_accepts_large_representable_amounts400 [ 00:00:00] horae-core invoice::tests::line_amount_exact_hour401 [ 00:00:00] horae-core invoice::tests::line_amount_zero_minutes402 [ 00:00:00] horae-core rse_cents_reads_whole_and_fractional_amounts403 [ 00:00:00] horae-core parse_cents_rejects_what_it_cannot_represent404 [ 00:00:00] horae-core se_cents_tolerates_grouping_spaces_and_signs405 [ 00:00:00] horae-core cs_accept_same_day_but_reject_reversed_dates406 PASS [ 0.276s] horae-core project::tests::basics_reject_blank_and_overlong_names407 PASS [ 0.312s] horae-core money::tests::parse_cents_rejects_what_it_cannot_represent408 PASS [ 0.350s] horae-core invoice::tests::line_amount_accepts_large_representable_amounts409 PASS [ 0.338s] horae-core invoice::tests::line_amount_zero_minutes410 Running [ 00:00:01] =====> 103/121: 18 running, 103 passed, 0 skipped 411 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals412 [ 00:00:00] horae-core invoice::tests::line_amount_exact_hour413 [ 00:00:00] horae-core rse_cents_reads_whole_and_fractional_amounts414 [ 00:00:00] horae-core se_cents_tolerates_grouping_spaces_and_signs415 [ 00:00:00] horae-core cs_accept_same_day_but_reject_reversed_dates416 [ 00:00:00] horae-core ct_missing_overlong_and_excessive_milestones417 [ 00:00:00] horae-core hedules_validate_amounts_and_milestone_total418 [ 00:00:00] horae-core ts_are_only_available_for_time_and_materials419 Running [ 00:00:01] ======> 108/121: 18 running, 103 passed, 0 skipped 420 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals421 [ 00:00:00] horae-core invoice::tests::line_amount_exact_hour422 [ 00:00:00] horae-core rse_cents_reads_whole_and_fractional_amounts423 [ 00:00:00] horae-core se_cents_tolerates_grouping_spaces_and_signs424 [ 00:00:00] horae-core cs_accept_same_day_but_reject_reversed_dates425 [ 00:00:00] horae-core ct_missing_overlong_and_excessive_milestones426 [ 00:00:00] horae-core hedules_validate_amounts_and_milestone_total427 [ 00:00:00] horae-core ts_are_only_available_for_time_and_materials428 PASS [ 0.321s] horae-core project::tests::fee_schedules_reject_missing_overlong_and_excessive_milestones429 PASS [ 0.312s] horae-core project::tests::monetary_budgets_are_only_available_for_time_and_materials430 PASS [ 0.184s] horae-core types::tests::budget_kind_wire_strings_match_db_enum431 PASS [ 0.361s] horae-core money::tests::parse_cents_reads_whole_and_fractional_amounts432 PASS [ 0.264s] horae-core time_of_day::tests::format_12h_matches_harvest_style433 PASS [ 0.201s] horae-core week::tests::configured_week_can_start_in_the_previous_year434 Running [ 00:00:01] ======> 109/121: 12 running, 109 passed, 0 skipped 435 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals436 [ 00:00:00] horae-core invoice::tests::line_amount_exact_hour437 [ 00:00:00] horae-core se_cents_tolerates_grouping_spaces_and_signs438 [ 00:00:00] horae-core cs_accept_same_day_but_reject_reversed_dates439 [ 00:00:00] horae-core hedules_validate_amounts_and_milestone_total440 [ 00:00:00] horae-core ts::monthly_fee_dates_follow_calendar_months441 [ 00:00:00] horae-core hly_fee_dates_reject_invalid_calendar_inputs442 [ 00:00:00] horae-core yment_terms_support_receipt_and_checked_days443 Running [ 00:00:01] ======> 112/121: 12 running, 109 passed, 0 skipped 444 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals445 [ 00:00:00] horae-core invoice::tests::line_amount_exact_hour446 [ 00:00:00] horae-core se_cents_tolerates_grouping_spaces_and_signs447 [ 00:00:00] horae-core cs_accept_same_day_but_reject_reversed_dates448 [ 00:00:00] horae-core hedules_validate_amounts_and_milestone_total449 [ 00:00:00] horae-core ts::monthly_fee_dates_follow_calendar_months450 [ 00:00:00] horae-core hly_fee_dates_reject_invalid_calendar_inputs451 [ 00:00:00] horae-core yment_terms_support_receipt_and_checked_days452 PASS [ 0.354s] horae-core project::tests::fee_schedules_validate_amounts_and_milestone_total453 PASS [ 0.383s] horae-core money::tests::parse_cents_tolerates_grouping_spaces_and_signs454 PASS [ 0.383s] horae-core project::tests::basics_accept_same_day_but_reject_reversed_dates455 PASS [ 0.230s] horae-core week::tests::maps_any_weekday_to_its_monday456 Running [ 00:00:01] =======> 113/121: 8 running, 113 passed, 0 skipped 457 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals458 [ 00:00:00] horae-core invoice::tests::line_amount_exact_hour459 [ 00:00:00] horae-core ts::monthly_fee_dates_follow_calendar_months460 [ 00:00:00] horae-core hly_fee_dates_reject_invalid_calendar_inputs461 [ 00:00:00] horae-core yment_terms_support_receipt_and_checked_days462 [ 00:00:00] horae-core e_of_day::tests::snap_rounds_to_nearest_step463 [ 00:00:00] horae-core k_contains_each_day_for_all_seven_start_days464 [ 00:00:00] horae-core igured_week_reports_an_unrepresentable_start465 Running [ 00:00:01] =======> 116/121: 8 running, 113 passed, 0 skipped 466 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals467 [ 00:00:00] horae-core invoice::tests::line_amount_exact_hour468 [ 00:00:00] horae-core ts::monthly_fee_dates_follow_calendar_months469 [ 00:00:00] horae-core hly_fee_dates_reject_invalid_calendar_inputs470 [ 00:00:00] horae-core yment_terms_support_receipt_and_checked_days471 [ 00:00:00] horae-core e_of_day::tests::snap_rounds_to_nearest_step472 [ 00:00:00] horae-core k_contains_each_day_for_all_seven_start_days473 [ 00:00:00] horae-core igured_week_reports_an_unrepresentable_start474 PASS [ 0.463s] horae-core invoice::tests::line_amount_exact_hour475 PASS [ 0.255s] horae-core week::tests::configured_week_contains_each_day_for_all_seven_start_days476 PASS [ 0.410s] horae-core project::tests::monthly_fee_dates_follow_calendar_months477 PASS [ 0.308s] horae-core time_of_day::tests::snap_rounds_to_nearest_step478 PASS [ 0.421s] horae-core project::tests::payment_terms_support_receipt_and_checked_days479 Running [ 00:00:01] =======> 118/121: 3 running, 118 passed, 0 skipped 480 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals481 [ 00:00:00] horae-core hly_fee_dates_reject_invalid_calendar_inputs482 [ 00:00:00] horae-core igured_week_reports_an_unrepresentable_start483484485486487488 Running [ 00:00:01] =======> 119/121: 2 running, 119 passed, 0 skipped 489 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals490 [ 00:00:00] horae-core hly_fee_dates_reject_invalid_calendar_inputs491492493494495496497 PASS [ 0.312s] horae-core week::tests::configured_week_reports_an_unrepresentable_start498 Running [ 00:00:01] =======> 119/121: 2 running, 119 passed, 0 skipped 499 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals500 [ 00:00:00] horae-core hly_fee_dates_reject_invalid_calendar_inputs501502503504505506507 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 508 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals509510511512513514515516 PASS [ 0.512s] horae-core project::tests::monthly_fee_dates_reject_invalid_calendar_inputs517 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 518 [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals519520521522523524525526 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 527 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals528529530531532533534535 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 536 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals537538539540541542543544 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 545 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals546547548549550551552553 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 554 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals555556557558559560561562 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 563 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals564565566567568569570571 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 572 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals573574575576577578579580 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 581 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals582583584585586587588589 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 590 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals591592593594595596597598 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 599 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals600601602603604605606607 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 608 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals609610611612613614615616 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 617 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals618619620621622623624625 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 626 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals627628629630631632633634 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 635 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals636637638639640641642643 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 644 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals645646647648649650651652 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 653 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals654655656657658659660661 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 662 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals663664665666667668669670 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 671 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals672673674675676677678679 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 680 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals681682683684685686687688 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 689 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals690691692693694695696697 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 698 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals699700701702703704705706 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 707 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals708709710711712713714715 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 716 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals717718719720721722723724 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 725 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals726727728729730731732733 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 734 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals735736737738739740741742 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 743 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals744745746747748749750751 Running [ 00:00:01] =======> 120/121: 1 running, 120 passed, 0 skipped 752 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals753754755756757758759760 Running [ 00:00:02] =======> 120/121: 1 running, 120 passed, 0 skipped 761 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals762763764765766767768769 Running [ 00:00:02] =======> 120/121: 1 running, 120 passed, 0 skipped 770 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals771772773774775776777778 Running [ 00:00:02] =======> 120/121: 1 running, 120 passed, 0 skipped 779 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals780781782783784785786787 Running [ 00:00:02] =======> 120/121: 1 running, 120 passed, 0 skipped 788 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals789790791792793794795796 Running [ 00:00:02] =======> 120/121: 1 running, 120 passed, 0 skipped 797 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals798799800801802803804805 Running [ 00:00:02] =======> 120/121: 1 running, 120 passed, 0 skipped 806 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals807808809810811812813814 Running [ 00:00:02] =======> 120/121: 1 running, 120 passed, 0 skipped 815 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals816817818819820821822823 Running [ 00:00:02] =======> 120/121: 1 running, 120 passed, 0 skipped 824 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals825826827828829830831832 Running [ 00:00:02] =======> 120/121: 1 running, 120 passed, 0 skipped 833 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals834835836837838839840841 Running [ 00:00:02] =======> 120/121: 1 running, 120 passed, 0 skipped 842 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals843844845846847848849850 PASS [ 1.755s] horae-core importers::harvest::convert::tests::conversion_matches_exact_scaled_rationals851------------852 Summary [ 2.233s] 121 tests run: 121 passed, 0 skipped853 Running [ 00:00:02] ======== 121/121: 1 running, 120 passed, 0 skipped 854 [ 00:00:01] horae-core s::conversion_matches_exact_scaled_rationals855856857858859860861862The files belonging to this database system will be owned by user "nixbld".863This user must also own the server process.864865The database cluster will be initialized with locale "C".866The default text search configuration will be set to "english".867868Data page checksums are disabled.869870fixing permissions on existing directory /build/tmp.RMkjlxiHSp ... ok871creating subdirectories ... ok872selecting dynamic shared memory implementation ... posix873selecting default "max_connections" ... 100874selecting default "shared_buffers" ... 128MB875selecting default time zone ... UTC876creating configuration files ... ok877running bootstrap script ... ok878performing post-bootstrap initialization ... ok879syncing data to disk ... ok880881initdb: warning: enabling "trust" authentication for local connections882initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.883884Success. You can now start the database server using:885886 pg_ctl -D /build/tmp.RMkjlxiHSp -l logfile start887888waiting for server to start.... done889server started890+++ command cargo test -p horae --features server -- --test-threads 48891 Compiling horae v0.1.0 (/build/source/crates/horae)892 Compiling horae-core v0.1.0 (/build/source/crates/core)893 Finished `test` profile [unoptimized + debuginfo] target(s) in 17m 15s894 Running unittests src/main.rs (target/debug/deps/horae-0767924faa118e50)895896running 834 tests897test auth::oidc::tests::deactivated_subject_match_is_denied ... ok898test auth::oidc::tests::first_login_links_subject_via_verified_email ... ok899test auth::oidc::tests::subject_match_logs_in_without_relinking ... ok900test auth::oidc::tests::extra_audiences_are_trusted_only_when_listed ... ok901test auth::oidc::tests::deactivated_email_match_is_denied ... ok902test auth::oidc::tests::no_account_is_denied_not_provisioned ... ok903test auth::oidc::tests::unverified_email_is_not_matched ... ok904test auth::oidc::tests::subject_match_takes_precedence_over_email ... ok905test auth::page::tests::configured_label_is_html_escaped ... ok906test auth::page::tests::dev_variant_offers_the_admin_bypass_and_no_fake_controls ... ok907test auth::page::tests::oidc_variant_uses_the_configured_label_and_hands_off_to_start ... ok908test cli::imports::tests::retry_snapshot_is_compatible_with_missing_and_future_values ... ok909test cli::imports::tests::session_rejects_plaintext_remote_and_credential_bearing_urls ... ok910test cli::imports::tests::missing_session_is_a_structured_configuration_failure ... ok911test cli::imports::tests::session_rejects_public_permissions_and_symlinks ... ok912test config::tests::dev_login_is_refused_off_loopback ... ok913test cli::imports::tests::private_session_accepts_https_and_loopback_only ... ok914test config::tests::without_dev_login_any_bind_is_fine ... ok915test cli::imports::tests::malformed_submission_acknowledgement_retains_its_request_identity ... ok916test cli::tests::remote_import_and_job_commands_accept_the_documented_arguments ... ok917test cli::imports::tests::cancellation_racing_completion_does_not_claim_cancellation_was_requested ... ok918test config::tests::dev_login_is_allowed_on_loopback ... ok919test cli::imports::tests::api_submission_captures_generation_without_retrying_uncertain_acceptance ... ok920test cli::imports::tests::missing_and_mismatched_jobs_fail_without_substitution ... ok921test cli::tests::remote_commands_reject_conflicting_or_unbounded_options ... ok922test cli::tests::environment_probe ... ok923test cli::imports::tests::session_rejects_cookie_header_injection_without_echoing_the_value ... ok924test cli::imports::tests::redirects_are_not_followed_or_exposed_as_server_error_text ... ok925test cli::imports::tests::invalid_csv_files_fail_before_contacting_the_server ... ok926test harvest::pagination_tests::harvest_pagination_total_pages_does_not_overflow ... ok927test config::tests::environment::obsolete_authentication_variables_do_not_configure_the_server ... ok928test harvest::tests::page_window_defaults_and_checked_offsets ... ok929test cli::tests::default_command_rejects_invalid_environment_ports ... ok930test cli::imports::tests::report_marks_confirmed_failed_outcomes_as_incomplete ... ok931test config::tests::environment::environment_probe ... ok932test config::tests::environment::partial_oidc_configuration_remains_disabled_without_a_callback ... ok933test config::tests::environment::empty_environment_has_no_authentication_or_plugin_credentials ... ok934test db::tests::pool_connections_force_custom_plans ... ok935test cli::imports::tests::csv_named_pipe_is_rejected_without_waiting_for_a_writer ... ok936test cli::imports::tests::archived_errors_publish_without_clobbering_and_preserve_the_prior_file_on_failure ... ok937test cli::imports::tests::status_and_wait_distinguish_failed_jobs_from_failed_reads ... ok938test cli::imports::tests::ordinary_json_is_bounded_and_invalid_replies_are_not_echoed ... ok939test importers::harvest::api_source::http::tests::cancelled_backoff_does_not_wait_or_retry ... ok940test cli::tests::default_command_uses_the_same_defaults_and_environment_as_serve ... ok941test importers::harvest::api_source::http::tests::cursor_links_are_authoritative_even_with_null_or_stale_page_numbers ... ok942test config::tests::environment::example_environment_can_configure_all_required_oidc_and_harvest_fields ... ok943test config::tests::environment::job_attempt_limit_uses_the_documented_environment_variable ... ok944test config::tests::environment::mail_environment_requires_a_complete_valid_configuration ... ok945test importers::harvest::api_source::http::tests::missing_next_cursor_is_not_silently_treated_as_completed ... ok946test importers::harvest::api_source::http::tests::pagination_cycle_detection_survives_restarting_after_every_page ... ok947test importers::harvest::api_source::http::tests::rejected_page_does_not_advance_the_cursor ... ok948test importers::harvest::api_source::http::tests::rejects_pagination_outside_the_authenticated_endpoint ... ok949test importers::harvest::api_source::http::tests::persisted_cursor_resumes_with_a_new_client_and_stays_complete_at_eof ... ok950test importers::harvest::api_source::http::tests::resumed_cursor_rejects_untrusted_destinations_and_invalid_state_before_http ... ok951test importers::harvest::api_source::tests::assembled_rows_convert_to_exact_minutes ... ok952test importers::harvest::api_source::tests::assembles_rows_joining_parents_by_id ... ok953test importers::harvest::api_source::tests::hours_render_as_exact_decimals ... ok954test importers::harvest::api_source::tests::http_page_preserves_decimal_values_before_integer_conversion ... ok955test importers::harvest::api_source::tests::json_exponents_expand_exactly_with_bounded_output ... ok956test config::tests::environment::invalid_job_attempt_limits_reject_startup ... ok957test importers::harvest::credentials::tests::bad_key_length_is_rejected ... ok958test config::tests::environment::secure_cookies_use_the_documented_prefixed_variable ... ok959test importers::harvest::api_source::http::tests::http_pages_follow_cursor_and_preserve_headers_and_encoded_filter ... ok960test importers::harvest::api_source::http::tests::http_retries_429_but_never_follows_redirects_or_shortens_long_backoff ... ok961test importers::harvest::api_source::http::tests::http_rejects_oversized_malformed_and_cyclic_pages ... ok962test importers::harvest::credentials::tests::decode_hex_rejects_bad_input ... ok963test importers::harvest::api_source::http::tests::slow_consumer_backpressures_http_and_cancellation_stops_further_pages ... ok964test importers::harvest::credentials::tests::encrypt_then_decrypt_round_trips ... ok965test cli::imports::tests::csv_upload_preserves_bytes_across_stream_chunk_boundaries ... ok966test cli::imports::tests::wait_deadline_caps_a_pending_request_without_cancelling_the_job ... ok967test importers::harvest::credentials::tests::nonce_makes_ciphertext_nondeterministic ... ok968test cli::imports::tests::small_csv_upload_preserves_immediate_authorization_rejections ... ok969test harvest::tests::a_member_cannot_fetch_a_colleagues_entry ... ok970test importers::harvest::credentials::tests::wrong_key_fails_to_decrypt ... ok971test importers::harvest::csv_source::tests::bad_date_becomes_a_row_error_not_a_rejection ... ok972test importers::harvest::csv_source::tests::conflicting_email_aliases_error_only_the_affected_row ... ok973test importers::harvest::csv_source::tests::csv_records_preserve_multiline_unicode_across_single_byte_reads ... ok974test importers::harvest::csv_source::tests::cursor_beyond_upload_is_rejected_without_parsing_rows ... ok975test importers::harvest::csv_source::tests::cursor_resumes_after_multiline_unicode_and_preserves_error_locations ... ok976test importers::harvest::csv_source::tests::delivers_a_row_before_reading_the_rest_of_the_file ... ok977test importers::harvest::csv_source::tests::empty_file_is_rejected ... ok978test importers::harvest::csv_source::tests::identity_columns_are_required_and_cannot_repeat ... ok979test importers::harvest::csv_source::tests::invalid_utf8_errors_one_record_and_continues ... ok980test importers::harvest::csv_source::tests::missing_required_columns_is_rejected ... ok981test importers::harvest::csv_source::tests::names_stay_separate_from_optional_email ... ok982test importers::harvest::csv_source::tests::parse_bool_accepts_yes_variants ... ok983test importers::harvest::csv_source::tests::parses_rows_case_insensitively ... ok984test auth::oidc::tests::linking::deactivation_during_first_link_denies_login ... ok985test importers::harvest::account_switch::tests::queue_acceptance_does_not_wait_for_the_import_session_lock ... ok986test harvest::tests::a_manager_lists_users_with_their_rates ... ok987test auth::oidc::tests::linking::different_subjects_cannot_both_claim_an_unlinked_account ... ok988test harvest::tests::harvest_entry_rates_respect_selected_project_mode ... ok989test importers::harvest::credentials::tests::same_account_reconnect_rotates_encryption_without_resetting_watermarks ... ok990test importers::harvest::credentials::tests::another_account_cannot_replace_credentials_or_watermarks ... ok991test auth::oidc::tests::linking::simultaneous_logins_with_the_same_subject_are_allowed ... ok992test harvest::tests::members_cannot_read_own_project_rates_or_cost_overrides ... ok993test harvest::tests::a_member_cannot_list_users ... ok994test importers::harvest::credentials::tests::unidentified_legacy_provenance_requires_operator_review ... ok995test auth::oidc::tests::linking::existing_subject_wins_over_another_accounts_email ... ok996test harvest::tests::harvest_entry_rates_follow_the_cascade_and_frozen_invoice_line ... ok997test harvest::pagination_tests::harvest_pagination_catalog_links_preserve_filters_and_break_name_ties ... ok998test importers::harvest::account_switch::tests::a_b_a_keeps_old_callbacks_requests_and_retries_fenced ... ok999test importers::harvest::credentials::tests::connection_changes_work_with_a_single_connection_pool ... ok1000test harvest::tests::harvest_marks_unbilled_non_billable_contexts_consistently ... ok1001test importers::harvest::account_switch::tests::successful_change_preserves_business_rows_and_failure_rolls_back_secrets ... ok1002test harvest::tests::a_member_cannot_filter_to_a_colleague ... ok1003test auth::oidc::tests::linking::unverified_email_cannot_link_an_account ... ok1004test importers::harvest::account_switch::tests::running_jobs_block_change_and_old_execution_never_reaches_http ... ok1005test importers::harvest::account_switch::tests::disconnect_and_reconnect_fence_callbacks_but_not_same_account_work ... ok1006test harvest::tests::a_manager_sees_the_whole_org ... ok1007test importers::harvest::credentials::tests::concurrent_first_connections_cannot_bind_different_accounts ... ok1008test harvest::tests::a_member_sees_only_their_own_time_entries ... ok1009test importers::harvest::credentials::tests::disconnect_preserves_identity_and_provenance_for_the_original_account ... ok1010test importers::harvest::credentials::tests::connect_and_disconnect_share_import_exclusion_without_blocking_other_orgs ... ok1011test harvest::tests::harvest_effective_minutes_match_sql_for_open_and_frozen_time ... ok1012test importers::harvest::account_switch::tests::queued_work_and_provenance_block_without_changing_binding ... ok1013test importers::harvest::credentials::tests::migration_binds_existing_connections_without_changing_secrets_or_markers ... ok1014test importers::harvest::account_switch::tests::change_preserves_terminal_history_and_rejects_stale_confirmation ... ok1015test importers::harvest::account_switch::tests::retry_and_change_are_serialized ... ok1016test importers::harvest::credentials::tests::failed_credential_write_does_not_leave_an_account_binding ... ok1017test importers::harvest::engine_tests::csv_streaming::measure_csv_durable_100k ... ignored, 100,000-row durable CSV measurement; run explicitly with --release --nocapture1018test importers::harvest::engine_tests::csv_streaming::measure_csv_durable_large_catalog_100k ... ignored, 100,000-row durable CSV with 5,000 parent sets; run explicitly with --release --nocapture1019test importers::harvest::engine_tests::csv_streaming::measure_csv_streaming_100k ... ignored, 100,000-row CSV measurement; run explicitly with --release --nocapture1020test importers::harvest::engine_tests::csv_streaming::measure_csv_streaming_large_catalog_100k ... ignored, 100,000-row CSV with 5,000 parent sets; run explicitly with --release --nocapture1021test importers::harvest::account_switch::tests::competing_change_and_submission_cannot_both_succeed ... ok1022test importers::harvest::account_switch::tests::competing_callbacks_and_confirmations_have_one_winner ... ok1023test db::tests::reset_empties_the_database_and_reapplies_migrations ... ok1024test importers::harvest::engine_tests::api_connection_checks_work_with_a_single_connection_pool ... ok1025test importers::harvest::engine_tests::bad_records_are_reported_and_run_continues ... ok1026test importers::harvest::engine_tests::api_and_csv_share_the_lock_but_other_organizations_can_import ... ok1027test importers::harvest::engine_tests::csv_streaming::cancelling_a_csv_waiting_for_more_bytes_releases_its_session ... ok1028test importers::harvest::engine_tests::api_sync_adopts_entries_from_a_prior_csv_import ... ok1029test importers::harvest::engine_tests::lookup_cache::cold_query_callsite_on_untraced_thread_is_still_captured ... ok1030test importers::harvest::engine_tests::cancelled_http_waiter_keeps_the_lock_until_its_worker_exits ... ok1031test importers::harvest::engine_tests::csv_ambiguous_names_include_inactive_users_but_unique_email_disambiguates ... ok1032test importers::harvest::engine_tests::csv_name_only_matches_one_org_user_and_reimports_without_duplicates ... ok1033test importers::harvest::engine_tests::csv_streaming::csv_applies_before_eof_but_transport_failure_rolls_back_everything ... ok1034test importers::harvest::engine_tests::edited_entry_still_matched_by_provenance ... ok1035test importers::harvest::engine_tests::cancellation_rolls_back_rows_and_releases_the_import_session ... ok1036test importers::harvest::engine_tests::csv_name_only_dry_run_and_duplicate_occurrences_preserve_history ... ok1037test importers::harvest::engine_tests::dry_run_writes_nothing_and_matches_commit ... ok1038test importers::harvest::engine_tests::failed_source_releases_the_session_and_rolls_back_partial_rows ... ok1039test importers::harvest::engine_tests::distinct_harvest_ids_with_identical_fields_import_as_two ... ok1040test importers::harvest::engine_tests::csv_streaming::csv_sql_backpressure_stops_reading_later_input_rows ... ok1041test importers::harvest::engine_tests::csv_streaming::csv_preview_errors_and_repeated_rows_match_commit_and_reimport ... ok1042test importers::harvest::oauth::tests::authorize_url_carries_state_and_encoded_redirect ... ok1043test importers::harvest::oauth::tests::authorize_url_preserves_query_values_without_injecting_parameters ... ok1044test importers::harvest::oauth_callback_tests::account_policy_failures_return_safe_actionable_conflicts ... ok1045test importers::harvest::oauth_callback_tests::mismatched_state_is_rejected_without_a_code ... ok1046test importers::harvest::oauth_callback_tests::missing_returned_state_is_rejected ... ok1047test importers::harvest::oauth_callback_tests::missing_stored_state_is_rejected ... ok1048test importers::harvest::oauth_callback_tests::provider_error_is_rejected_before_exchange ... ok1049test importers::harvest::oauth_callback_tests::valid_matching_state_yields_the_code ... ok1050test importers::harvest::oauth_callback_tests::valid_state_but_missing_code_is_rejected ... ok1051test importers::harvest::report::tests::archive_metadata_cannot_masquerade_as_a_legacy_or_inconsistent_report ... ok1052test importers::harvest::report::tests::archived_report_round_trips_without_losing_error_accounting ... ok1053test importers::harvest::report::tests::legacy_report_preserves_its_counts_and_error_details ... ok1054test importers::harvest::report::tests::report_rejects_unsupported_and_invalid_versions ... ok1055test importers::harvest::report::tests::serialized_report_has_a_supported_schema_version ... ok1056test importers::harvest::resolve::checkpoint_tests::run_cache_round_trip_preserves_identity_namespaces_and_occurrences ... ok1057test importers::harvest::engine_tests::csv_import_populates_and_is_idempotent ... ok1058test importers::harvest::engine_tests::concurrent_imports_reject_overlap_without_collapsing_repeated_entries ... ok1059test importers::harvest::engine_tests::csv_name_fallback_requires_a_full_unique_name_and_never_overrides_email ... ok1060test importers::harvest::engine_tests::csv_malformed_file_is_rejected_with_no_writes ... ok1061test importers::harvest::credentials::tests::completed_credential_changes_allow_immediate_retries ... ok1062test importers::harvest::engine_tests::lookup_cache::new_run_rechecks_previously_cached_user_for_ambiguity ... ok1063test harvest::pagination_tests::harvest_project_cost_overrides_require_admin_without_fabricated_fallback ... ok1064test importers::harvest::engine_tests::csv_streaming::durable_csv_stale_commit_is_fenced_without_a_heartbeat ... ok1065test importers::harvest::engine_tests::full_import_creates_all_levels_with_exact_minutes ... ok1066test importers::harvest::engine_tests::csv_streaming::durable_csv_cancel_joins_parser_and_preserves_committed_rows ... ok1067test importers::harvest::engine_tests::completed_imports_allow_immediate_retries ... ok1068test importers::harvest::engine_tests::csv_streaming::durable_csv_waits_for_input_without_an_open_transaction ... ok1069test importers::harvest::engine_tests::csv_streaming::durable_csv_report_metadata_is_bounded_after_recovery ... ok1070test importers::harvest::engine_tests::lookup_cache::cached_email_and_full_name_do_not_share_a_namespace ... ok1071test importers::harvest::engine_tests::import_rejects_ambiguous_normalized_email_without_partial_writes ... ok1072test importers::harvest::engine_tests::lookup_cache::lookup_index_migration_preserves_existing_ambiguous_identities ... ok1073test importers::harvest::engine_tests::csv_streaming::durable_csv_preview_resumes_after_a_crash_without_recounting_rows ... ok1074test importers::harvest::engine_tests::lookup_cache::project_task_cache_distinguishes_both_sides_of_the_link ... ok1075test importers::harvest::engine_tests::csv_streaming::durable_csv_preview_crosses_batch_boundaries_without_committing_domain_data ... ok1076test importers::harvest::engine_tests::lookup_cache::cached_project_task_still_validates_each_rows_rate ... ok1077test importers::harvest::engine_tests::csv_streaming::durable_csv_preview_cancel_preserves_simulation_for_manual_retry ... ok1078test importers::harvest::engine_tests::csv_streaming::durable_csv_cancel_preserves_its_completed_batches_for_manual_retry ... ok1079test importers::harvest::engine_tests::csv_streaming::durable_csv_preview_rejects_a_stale_next_batch ... ok1080test importers::harvest::engine_tests::csv_streaming::durable_csv_discards_incomplete_preparation_and_resumes_its_checkpoint ... ok1081test importers::harvest::engine_tests::csv_streaming::durable_csv_resumes_committed_batches_without_recounting_duplicate_rows ... ok1082test importers::harvest::streaming::tests::api_planning_policy_ends_with_the_transaction ... ok1083test importers::harvest::engine_tests::two_identical_csv_rows_import_as_two_entries ... ok1084test importers::harvest::resolve::preview::tests::rejects_foreign_parent_snapshots_before_restoring_any_rows ... ok1085test importers::harvest::engine_tests::lookup_cache::repeated_rows_resolve_each_user_and_project_task_once ... ok1086test importers::harvest::streaming::durable::preview::tests::restoration_omits_unneeded_virtual_entries ... ok1087test importers::harvest::engine_tests::natural_key_reimport_normalizes_whitespace_and_ascii_case ... ok1088test importers::harvest::engine_tests::submission_barrier_blocks_imported_time_entries ... ok1089test importers::harvest::sync_tests::checkpoints::durable_api_preview_finalization_retry_does_not_repeat_completed_downloads ... ok1090test importers::harvest::engine_tests::second_identical_run_creates_nothing ... ok1091test importers::harvest::sync_tests::checkpoints::durable_api_cancellation_preserves_confirmed_pages_for_manual_retry ... ok1092test importers::harvest::engine_tests::reimporting_identical_csv_rows_is_idempotent ... ok1093test importers::harvest::engine_tests::watermark_advances_only_on_commit ... ok1094test importers::harvest::engine_tests::overflowing_decimals_fail_only_their_rows ... ok1095test importers::harvest::sync_tests::api_requires_email_even_when_full_name_matches ... ok1096test importers::harvest::sync_tests::api_rejects_ambiguous_email_without_advancing_watermark ... ok1097test importers::harvest::resolve::preview::tests::checkpoint_restores_known_task_currency_and_keeps_old_currency_unknown ... ok1098test importers::harvest::engine_tests::csv_streaming::durable_csv_reclaimed_lease_cannot_commit_the_next_batch ... ok1099test harvest::pagination_tests::harvest_pagination_router_preserves_session_and_tenant_guards ... ok1100test importers::harvest::sync_tests::scale::api_100k_commit_and_reimport ... ignored, 100,000-entry scale measurement; run explicitly with --release --nocapture1101test importers::harvest::sync_tests::scale::api_100k_dry_run ... ignored, 100,000-entry scale measurement; run explicitly with --release --nocapture1102test importers::harvest::sync_tests::scale::api_durable_100k_commit_and_reimport ... ignored, 100,000-entry durable API measurement; run explicitly with --release --nocapture1103test importers::harvest::sync_tests::scale::api_durable_100k_dry_run ... ignored, 100,000-entry durable API measurement; run explicitly with --release --nocapture1104test importers::harvest::engine_tests::lookup_cache::rolled_back_row_does_not_cache_user_or_project_task ... ok1105test importers::harvest::sync_tests::checkpoints::durable_api_finalization_retry_does_not_repeat_completed_downloads ... ok1106test importers::harvest::sync_tests::checkpoints::durable_api_preview_reclaimed_worker_cannot_checkpoint_its_next_page ... ok1107test importers::harvest::sync_tests::checkpoints::durable_api_resumes_a_partially_downloaded_catalog ... ok1108test importers::harvest::sync_tests::disconnect_and_reconnect_preserves_imported_records_and_exact_identity ... ok1109test importers::harvest::sync_tests::checkpoints::durable_api_preview_cancellation_preserves_confirmed_pages_for_manual_retry ... ok1110test importers::harvest::sync_tests::dry_run_leaves_data_provenance_and_watermark_unchanged ... ok1111test importers::harvest::sync_tests::checkpoints::durable_api_resume_remembers_an_earlier_missing_timestamp ... ok1112test importers::harvest::sync_tests::checkpoints::durable_api_preview_resumes_catalog_download ... ok1113test importers::harvest::sync_tests::checkpoints::durable_api_preview_resumes_pages_without_publishing_domain_data ... ok1114test importers::harvest::sync_tests::checkpoints::durable_api_preview_resume_preserves_row_errors ... ok1115test importers::harvest::sync_tests::checkpoints::durable_api_resume_keeps_earlier_errors_and_does_not_advance_watermark ... ok1116test importers::harvest::sync_tests::checkpoints::durable_api_resumes_committed_pages_and_preserves_the_high_watermark ... ok1117test importers::harvest::sync_tests::checkpoints::durable_api_reclaimed_worker_cannot_commit_its_next_page ... ok1118test importers::harvest::sync_tests::checkpoints::failed_api_preview_publishes_its_last_confirmed_page_report ... ok1119test importers::harvest::sync_tests::exact_api_decimals_survive_preview_commit_and_reimport ... ok1120test importers::harvest::sync_tests::checkpoints::failed_api_commit_publishes_its_last_confirmed_page_report ... ok1121test importers::harvest::sync_tests::checkpoints::durable_api_preview_preserves_adoptions_and_repeated_ids_across_recovery ... ok1122test importers::harvest::sync_tests::missing_source_timestamp_keeps_the_previous_watermark ... ok1123test importers::harvest::sync_tests::missing_client_fallback_and_failed_project_savepoints_do_not_poison_cache ... ok1124test importers::harvest::engine_tests::large_run_reuses_parents_and_reconciles_totals ... ok1125test importers::harvest::sync_tests::failed_rows_are_available_to_the_next_incremental_retry ... ok1126test importers::harvest::sync_tests::invalid_parent_blocks_dependent_time_but_other_catalog_records_survive ... ok1127test importers::harvest::sync_tests::failed_client_propagates_to_project_and_entry_without_placeholder_records ... ok1128test importers::harvest::sync_tests::empty_sync_does_not_invent_a_watermark ... ok1129test importers::harvest::sync_tests::parent_only_dry_run_previews_without_persisting_catalog ... ok1130test importers::harvest::sync_tests::successful_sync_only_marks_the_incrementally_fetched_entity ... ok1131test importers::harvest::sync_tests::paging::later_download_failure_rolls_back_parents_rows_and_watermark ... ok1132test harvest::pagination_tests::harvest_pagination_rejects_invalid_windows_on_every_collection ... ok1133test importers::harvest::sync_tests::parent_catalog_preserves_metadata_and_counts_each_entity_once ... ok1134test importers::harvest::sync_tests::checkpoints::durable_api_resumes_after_a_confirmed_parent_batch ... ok1135test init::tests::init_creates_one_org_and_one_admin_and_nothing_else ... ok1136test importers::harvest::sync_tests::watermark_write_failure_rolls_back_imported_data ... ok1137test importers::harvest::sync_tests::paging::durable_api_stale_commit_cannot_advance_data_or_watermark ... ok1138test importers::harvest::sync_tests::watermark_never_passes_the_start_of_capture ... ok1139test importers::harvest::sync_tests::out_of_range_api_decimals_error_per_row_and_leave_retry_watermark ... ok1140test importers::harvest::sync_tests::parent_only_api_import_creates_catalog_and_reimport_skips_it ... ok1141test importers::harvest::sync_tests::refreshed_tokens_survive_a_dry_run_rollback_in_the_same_import_session ... ok1142test importers::harvest::sync_tests::paging::cancelled_page_consumer_retains_lock_until_worker_exits_and_rolls_back ... ok1143test init::tests::init_refuses_when_an_organization_exists ... ok1144test importers::harvest::sync_tests::checkpoints::durable_api_preview_resumes_after_a_confirmed_parent_batch ... ok1145test jobs::tests::claims_are_atomic_and_expired_leases_recover ... ok1146test jobs::tests::payload_kind_is_stable_and_round_trips ... ok1147test jobs::tests::payload_versions_preserve_legacy_jobs_and_reject_unknown_versions ... ok1148test jobs::tests::outbox_delivery_is_idempotent ... ok1149test jobs::tests::retry_snapshot_does_not_guess_unknown_payloads_or_sources ... ok1150test importers::harvest::sync_tests::paging::durable_api_cancel_waits_for_the_producer_before_acknowledging ... ok1151test jobs::tests::shutdown_deadline_drops_and_joins_in_flight_work ... ok1152test jobs::tests::shutdown_waits_for_in_flight_work ... ok1153test importers::harvest::engine_tests::csv_streaming::csv_measurement_recovers_a_complete_batch_without_recounting ... ok1154test jobs::tests::history_paginates_tied_timestamps_and_rejects_foreign_cursors ... ok1155test jobs::tests::cancellation_and_retry_are_scoped_and_idempotent ... ok1156test importers::harvest::sync_tests::paging::invalid_and_missing_timestamp_rows_cross_page_boundaries_without_advancing ... ok1157test jobs::tests::synthetic_job_uses_the_same_registered_envelope ... ok1158test jobs::tests::api_job_keeps_its_policy_across_duplicate_enqueue_and_manual_retry ... ok1159test models::project_creation::tests::draft_roundtrip_preserves_incomplete_input_without_demo_data ... ok1160test models::project_creation::tests::unauthorized_catalog_cost_is_absent_from_serialized_options ... ok1161test models::project_creation::tests::unknown_draft_fields_are_rejected ... ok1162test jobs::tests::retry_snapshot_matches_status_and_list_without_exposing_payload ... ok1163test jobs::tests::outbox_rollback_does_not_publish_an_event ... ok1164test notifications::tests::cancelling_delivery_kills_the_active_sender ... ok1165test importers::harvest::sync_tests::scale::http_pages_preview_commit_and_reimport ... ok1166test importers::harvest::engine_tests::csv_streaming::durable_csv_preview_matches_existing_and_new_rows_with_one_connection ... ok1167test notifications::tests::mail_configuration_is_disabled_by_default_and_rejects_partial_values ... ok1168test notifications::tests::mail_configuration_requires_an_executable_file_and_safe_sender ... ok1169test jobs::tests::upload_organization_must_match_its_job ... ok1170test notifications::tests::recipient_injection_is_rejected_before_starting_a_process ... ok1171test notifications::tests::rendered_mail_bounds_body_lines_for_long_unicode_and_control_names ... ok1172test notifications::tests::acknowledged_email_is_never_claimed_again ... ok1173test importers::harvest::sync_tests::scale::durable_measurement_finishes_from_its_eof_checkpoint ... ok1174test notifications::tests::sendmail_failure_does_not_expose_program_output ... ok1175test notifications::tests::sendmail_receives_fixed_arguments_and_stable_message_identity ... ok1176test notifications::tests::foreign_notification_payload_is_terminal_and_never_sent ... ok1177test jobs::outbox::tests::worker_delivers_available_events_and_stops_cleanly ... ok1178test notifications::tests::sendmail_timeout_kills_and_reaps_the_child ... ok1179test pages::clients::filters::tests::clearing_query_preserves_selected_currency_and_lifecycle ... ok1180test pages::clients::filters::tests::lifecycle_counts_share_query_and_currency_filters ... ok1181test pages::clients::filters::tests::name_search_ignores_case_and_surrounding_whitespace ... ok1182test pages::clients::filters::tests::preferred_or_visible_project_currency_matches_but_query_still_applies ... ok1183test notifications::tests::verbose_sender_output_is_discarded_without_blocking_delivery ... ok1184test pages::clients::form::tests::absent_billing_authority_never_produces_an_edit_payload ... ok1185test pages::clients::form::tests::ambiguous_creation_errors_require_explicit_recovery ... ok1186test pages::clients::form::tests::invalid_fields_are_not_rewritten_by_validation ... ok1187test pages::clients::form::tests::clearing_a_rate_is_explicit_and_needs_no_currency_confirmation ... ok1188test pages::clients::form::tests::rate_replacement_requires_confirmation_in_the_current_currency ... ok1189test pages::clients::form::tests::untouched_fields_keep_zero_rate_and_original_snapshot ... ok1190test pages::importers::presentation::tests::no_selection_does_not_claim_no_import_history ... ok1191test pages::importers::presentation::tests::source_labels_do_not_guess_unknown_importers ... ok1192test notifications::tests::mail_worker_delivers_only_its_kind_and_drains_cleanly ... ok1193test pages::importers::presentation::tests::summaries_distinguish_zero_skipped_and_mixed_outcomes ... ok1194test pages::invoices::defaults_form::tests::invoice_fields_bound_metadata_by_characters_and_reject_nul ... ok1195test pages::importers::presentation::tests::states_and_phases_have_readable_unknown_fallbacks ... ok1196test pages::importers::presentation::tests::interrupted_report_is_partial_regardless_of_retry_prerequisites ... ok1197test pages::invoices::defaults_form::tests::invoice_fields_reject_invalid_percentages_terms_and_second_tax ... ok1198test pages::invoices::defaults_form::tests::invoice_fields_preserve_receipt_terms_and_empty_optional_percentages ... ok1199test pages::invoices::defaults_form::tests::invoice_fields_preserve_exact_percentages_and_custom_terms ... ok1200test pages::invoices::preparation::fees::tests::refresh_preserves_missing_or_relabelled_edits_until_explicit_removal ... ok1201test pages::invoices::preparation::fees::tests::refresh_keeps_raw_edits_and_does_not_select_new_sources ... ok1202test pages::invoices::preparation::fees::tests::fee_inputs_require_exact_amounts_and_an_explicit_positive_charge ... ok1203test pages::invoices::preparation::tests::invoice_context_selects_only_the_exact_available_client ... ok1204test pages::invoices::preparation::tests::invoice_review_requires_matching_sources_and_valid_values ... ok1205test pages::new_project::basics::tests::a_full_tag_list_still_accepts_a_duplicate ... ok1206test pages::new_project::basics::tests::overlong_tags_are_rejected_without_truncation ... ok1207test pages::new_project::basics::tests::tag_length_counts_characters_instead_of_bytes ... ok1208test pages::new_project::basics::tests::a_batch_that_would_exceed_the_tag_limit_is_rejected ... ok1209test pages::invoices::preparation::tests::unavailable_or_malformed_invoice_context_never_uses_the_first_client ... ok1210test pages::new_project::basics::tests::tags_trim_and_deduplicate_without_changing_existing_spelling ... ok1211test pages::new_project::draft::tests::a_mismatched_acknowledgement_does_not_lose_pending_input ... ok1212test pages::new_project::draft::tests::a_retry_keeps_the_unacknowledged_payload_and_revision ... ok1213test pages::new_project::draft::tests::a_validation_rejection_allows_corrected_input_at_the_same_revision ... ok1214test pages::new_project::draft::tests::an_empty_form_is_not_reported_as_saved ... ok1215test pages::new_project::draft::tests::any_saved_draft_wins_over_context_including_empty_or_matching_client ... ok1216test pages::new_project::draft::tests::resuming_preserves_the_server_identity_and_incomplete_fields ... ok1217test pages::new_project::draft::tests::context_prefills_only_a_new_form_without_fixing_its_currency ... ok1218test pages::new_project::team::tests::adding_everyone_deduplicates_without_replacing_project_overrides ... ok1219test pages::new_project::team::tests::removing_a_member_keeps_an_empty_restricted_task_restricted ... ok1220test pages::new_project::tests::a_rejected_creation_can_be_edited_but_an_uncertain_commit_must_be_retried ... ok1221test pages::new_project::team::tests::exceeding_the_team_limit_does_not_partially_add_people ... ok1222test pages::projects::budget_display_tests::configured_scopes_sum_without_hiding_an_individual_overrun ... ok1223test pages::projects::budget_display_tests::display_preserves_units_sign_and_large_integer_values ... ok1224test pages::projects::budget_display_tests::tag_filter_matches_identity_without_duplicates_or_name_collisions ... ok1225test pages::projects::budget_display_tests::unallocated_zero_and_overflow_budgets_are_not_conflated ... ok1226test pages::new_project::tests::only_known_validation_fields_can_target_a_control ... ok1227test pages::reports::tests::mixed_currencies_are_not_added_even_when_the_numbers_would_overflow ... ok1228test pages::reports::tests::cost_total_uses_organization_currency_across_billing_currencies ... ok1229test pages::reports::tests::monetary_total_overflow_is_visible_instead_of_panicking ... ok1230test pages::reports::tests::redacted_costs_do_not_become_zero_or_partial_totals ... ok1231test pages::timesheet::tests::cal_span_day_shows_only_the_anchor_column ... ok1232test pages::reports::tests::single_currency_totals_are_formatted_and_empty_reports_have_no_amount ... ok1233test pages::timesheet::tests::cal_span_defaults_to_week ... ok1234test pages::timesheet::tests::cal_span_unknown_falls_back_to_week ... ok1235test pages::timesheet::tests::cal_span_url_roundtrips ... ok1236test pages::timesheet::tests::cal_span_week_shows_all_seven_days ... ok1237test pages::timesheet::tests::cal_span_work_week_preserves_date_order_across_weekends ... ok1238test pages::timesheet::tests::cal_span_work_week_shows_monday_to_friday ... ok1239test pages::timesheet::tests::cal_span_work_week_skips_sunday_when_it_is_the_first_column ... ok1240test pages::timesheet::tests::day_col_class_marks_today ... ok1241test pages::timesheet::tests::day_col_class_marks_weekend ... ok1242test pages::timesheet::tests::day_col_class_plain_weekday ... ok1243test pages::timesheet::tests::day_col_class_today_wins_over_weekend ... ok1244test pages::timesheet::tests::invalid_duration_cannot_start_a_timer_save_or_clear_a_cell ... ok1245test pages::timesheet::tests::only_a_blank_duration_can_start_an_eligible_timer ... ok1246test pages::timesheet::tests::timed_lanes_still_widens_overlapping_entries ... ok1247test pages::timesheet::tests::timed_lanes_terminates_on_a_zero_length_entry ... ok1248test pages::timesheet::tests::today_offset_is_none_after_the_week ... ok1249test pages::timesheet::tests::today_offset_is_none_before_the_week ... ok1250test pages::timesheet::tests::today_offset_is_six_on_the_sunday ... ok1251test pages::timesheet::tests::today_offset_is_zero_on_the_monday ... ok1252test pages::timesheet::tests::value_cell_class_empty_wins_over_today ... ok1253test pages::timesheet::tests::value_cell_class_marks_today_when_nonzero ... ok1254test pages::timesheet::tests::weekend_style_follows_the_date_not_the_column_offset ... ok1255test pages::timesheet::tests::weekly_duration_edit_preserves_nine_am_start_notes_and_billability ... ok1256test pages::timesheet::tests::weekly_new_entries_are_untimed_and_explicit_clears_still_work ... ok1257test pages::new_project::billing::tests::budget_errors_target_a_control_that_can_be_corrected ... ok1258test notifications::tests::disabled_mail_worker_does_not_claim_pending_notifications ... ok1259test notifications::tests::revoked_recipient_does_not_receive_a_pending_email ... ok1260test notifications::tests::retry_can_recover_without_changing_message_identity ... ok1261test notifications::tests::failed_email_retries_same_identity_and_eventually_stops ... ok1262test notifications::tests::stale_email_lease_cannot_start_delivery ... ok1263test jobs::tests::outbox_stale_claims_cannot_acknowledge_or_reschedule_delivery ... ok1264test plugin::event::tests::active_transition_fires_only_on_a_real_flip ... ok1265test plugin::event::tests::budget_and_timer_events_serialize ... ok1266test plugin::event::tests::new_events_have_stable_hook_names ... ok1267test plugin::event::tests::project_membership_payload_excludes_private_configuration ... ok1268test plugin::event::tests::role_change_event_carries_previous_role ... ok1269test plugin::event::tests::submission_event_serializes_payload ... ok1270test plugin::event::tests::us2_events_have_stable_hook_names ... ok1271test plugin::database::tests::application_database_owner_is_not_a_plugin_identity ... ok1272test plugin::host::tests::config_lookup::a_set_key_is_returned ... ok1273test plugin::host::tests::config_lookup::an_unset_key_is_none ... ok1274test plugin::database::tests::reader_cannot_switch_into_another_role ... ok1275test plugin::database::tests::reader_accepts_optional_first_party_rounding_helper ... ok1276test plugin::database::tests::reader_cannot_have_access_to_credentials ... ok1277test plugin::database::tests::reader_cannot_execute_security_definer_functions ... ok1278test plugin::database::tests::project_configuration_is_private_even_when_plugin_grants_are_misconfigured ... ok1279test plugin::host::tests::database_tests::unconfigured_sql_never_falls_back_to_application_state ... ok1280test plugin::host::tests::response_shaping::error_json_wraps_the_message ... ok1281test plugin::database::tests::dedicated_reader_is_accepted_but_new_write_grants_are_rejected ... ok1282test plugin::host::tests::response_shaping::http_body_accepts_the_size_limit_and_rejects_larger_responses ... ok1283test plugin::host::tests::response_shaping::http_response_carries_status_and_body ... ok1284test plugin::host::tests::response_shaping::invalid_http_utf8_is_an_error_not_an_empty_success ... ok1285test plugin::host::tests::statement_is_read_only::a_second_statement_is_rejected ... ok1286test plugin::host::tests::statement_is_read_only::a_cte_select_is_allowed ... ok1287test plugin::host::tests::statement_is_read_only::a_write_hidden_behind_a_comment_is_rejected ... ok1288test plugin::host::tests::statement_is_read_only::a_single_trailing_semicolon_is_allowed ... ok1289test plugin::host::tests::statement_is_read_only::plain_select_is_allowed ... ok1290test plugin::host::tests::statement_is_read_only::writes_are_rejected ... ok1291test plugin::host::tests::wrap_select::strips_a_trailing_semicolon_before_wrapping ... ok1292test plugin::host::tests::wrap_select::wraps_as_a_bounded_row_query ... ok1293test plugin::manifest::tests::accepts_all_published_business_events ... ok1294test plugin::manifest::tests::config_defaults_to_empty_when_absent ... ok1295test plugin::manifest::tests::parses_optional_config_table ... ok1296test plugin::manifest::tests::parse_valid_manifest ... ok1297test plugin::manifest::tests::reject_empty_hooks ... ok1298test plugin::manifest::tests::reject_unknown_hook ... ok1299test plugin::database::tests::reader_rejects_unapproved_invoker_functions ... ok1300test plugin::host::tests::database_queries_preserve_parameters_and_rollback_session_settings ... ok1301test plugin::host::tests::database_tests::query_results_are_bounded_without_silent_truncation ... ok1302test plugin::host::tests::database_tests::query_discards_session_advisory_locks ... ok13031304running 1 test1305test plugin::host::tests::database_tests::select_cannot_write_or_gain_application_privileges ... ok1306test plugin::registry::tests::initialization::guest_initializers_have_an_engine_instruction_budget ... ok13071308test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 833 filtered out; finished in 0.43s130913101311running 1 test1312test jobs::tests::failed_csv_preview_retains_confirmed_report_through_history_and_retry ... ok1313test plugin::registry::tests::initialization::guest_initializers_have_an_engine_instruction_budget ... ok13141315test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 833 filtered out; finished in 0.29s131613171318running 1 test1319test plugin::registry::tests::initialization::instruction_budget_is_replenished_for_each_call ... ok1320test plugin::registry::tests::isolation::cancelling_a_waiter_keeps_capacity_reserved_until_the_host_call_exits ... ok1321test plugin::registry::tests::initialization::guest_initializers_have_an_engine_instruction_budget ... ok13221323test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 833 filtered out; finished in 0.21s132413251326running 1 test1327test plugin::registry::tests::isolation::confirmed_dispatch_attempts_other_plugins_after_one_fails ... ok1328test plugin::registry::tests::isolation::confirmed_dispatch_returns_overload_for_retry ... ok1329test plugin::registry::tests::isolation::confirmed_dispatch_returns_plugin_failure_for_retry ... ok1330test plugin::registry::tests::isolation::confirmed_dispatch_waits_for_the_plugin_to_finish ... ok1331test plugin::registry::tests::isolation::different_plugins_share_the_running_call_limit ... ok1332test plugin::registry::tests::isolation::events_execute_outside_the_async_worker ... ok1333test plugin::host::tests::database_tests::wasm_host_uses_the_restricted_connection_on_a_current_thread_runtime ... ok1334test plugin::registry::tests::initialization::guest_initializers_have_an_engine_instruction_budget ... ok13351336test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 833 filtered out; finished in 0.30s13371338test plugin::registry::tests::initialization::guest_initializers_have_an_engine_instruction_budget ... ok1339test plugin::registry::tests::isolation::oversized_event_payloads_are_not_queued ... ok1340test jobs::report::tests::upgrading_legacy_reports_preserves_errors_and_fences_old_attempts ... ok1341test plugin::registry::tests::isolation::pending_capacity_rejects_new_work_without_spawning_tasks ... ok1342test plugin::registry::tests::isolation::widgets_execute_outside_the_async_worker ... ok1343test plugin::registry::tests::load_empty_directory ... ok1344test plugin::registry::tests::load_nonexistent_directory ... ok1345test plugin::registry::tests::isolation::loaded_plugins_cannot_start_with_excessive_memory ... ok1346test plugin::registry::tests::isolation::loaded_plugins_cannot_grow_memory_past_the_limit ... ok1347test reports::bounded::tests::cancelled_export_keeps_its_slot_until_the_renderer_exits ... ok1348test reports::bounded::tests::export_admission_stays_reserved_until_the_body_is_dropped ... ok1349test reports::bounded::tests::export_rendering_runs_off_the_async_worker ... ok1350test reports::bounded::tests::output_budget_checks_writes_and_seeks_without_truncation ... ok1351test plugin::registry::tests::isolation::oversized_wasm_output_is_rejected_before_copying_it ... ok1352test reports::bounded::tests::rendered_output_limit_rejects_oversized_files_and_releases_admission ... ok1353test plugin::registry::tests::collect_widgets_from_echo_plugin ... ok1354test plugin::host::tests::a_query_cannot_disable_its_own_deadline ... ok1355test plugin::registry::tests::load_test_plugins ... ok1356test importers::harvest::sync_tests::scale::durable_api_report_preserves_overflow_errors_after_recovery ... ok1357test plugin::registry::tests::dispatch_event_with_no_subscribers ... ok1358test jobs::report::stream_tests::download_reports_missing_fragments_after_its_buffered_page ... ok1359test reports::bounded::tests::renderer_errors_and_panics_release_admission ... ok1360test reports::bounded::tests::timed_out_export_keeps_its_slot_until_the_renderer_exits ... ok1361test plugin::registry::tests::isolation::a_wasm_timeout_releases_the_worker_and_instance ... ok1362test plugin::registry::tests::dispatch_invoice_sent_to_echo_plugin ... ok1363test reports::limits::tests::measure_bounded_export_limits ... ignored, manual release export measurement; set HORAE_EXPORT_PROBE_DIR for artifacts1364test render::tests::invoice_template_formats_large_minor_units_exactly ... ok1365test plugin::registry::tests::failing_plugin_does_not_block_caller ... ok1366test plugin::registry::tests::dispatch_to_echo_plugin_succeeds ... ok1367test reports::limits::tests::export_queries_are_read_only_and_have_a_database_deadline ... ok1368test harvest::pagination_tests::harvest_project_progress_permissions_cover_counts_pages_and_details ... ok1369test reports::streaming::database_tests::measure_streaming_csv_export ... ignored, Manual release measurement of a 100,000-row CSV download1370test jobs::report::tests::legacy_upgrade_preserves_job_states_and_existing_archives ... ok1371test harvest::pagination_tests::harvest_own_time_omits_private_project_budget_metadata ... ok1372test jobs::outbox::tests::acknowledges_confirmed_delivery_without_reclaiming_it ... ok1373test reports::streaming::database_tests::streamed_projects_preserve_scope_budget_and_tenant_isolation ... ok1374test harvest::pagination_tests::harvest_pagination_empty_and_out_of_range_pages_keep_the_contract has been running for over 60 seconds1375test harvest::pagination_tests::harvest_pagination_malformed_filters_are_client_errors has been running for over 60 seconds1376test harvest::pagination_tests::harvest_pagination_time_entries_keep_the_filtered_set_and_date_ties has been running for over 60 seconds1377test harvest::pagination_tests::harvest_task_access_filters_counts_and_preserves_rate_free_history has been running for over 60 seconds1378test harvest::tests::imported_legacy_rates_survive_retry_in_harvest_list_and_detail has been running for over 60 seconds1379test jobs::tests::final_failure_is_retained_and_manual_retry_gets_a_new_budget ... ok1380test jobs::outbox::tests::invalid_payload_is_not_delivered_and_does_not_leak_into_errors ... ok1381test reports::limits::tests::invoice_exports_show_saved_adjustments_and_exact_large_amounts ... ok1382test reports::streaming::tests::completed_csv_keeps_admission_until_body_drop ... ok1383test reports::streaming::tests::csv_backpressure_and_body_drop_bound_and_cancel_source_reads ... ok1384test reports::streaming::tests::csv_does_not_truncate_a_quoted_unicode_record_larger_than_a_chunk ... ok1385test reports::streaming::tests::csv_emits_a_chunk_before_the_source_finishes ... ok1386test reports::streaming::tests::csv_failure_or_panic_after_a_chunk_is_not_successful_eof ... ok1387test reports::streaming::tests::csv_startup_errors_are_http_errors_and_release_admission ... ok1388test jobs::tests::expired_final_attempt_fails_without_claiming_again ... ok1389test reports::streaming::tests::dropping_csv_during_startup_cancels_the_producer ... ok1390test route::tests::client_detail_preserves_identity_and_highlights_only_clients ... ok1391test route::tests::client_workflow_paths_preserve_context_and_navigation_section ... ok1392test route::tests::edit_project_preserves_identity_and_highlights_only_projects ... ok1393test route::tests::malformed_context_reaches_the_workflow_for_validation_after_recovery ... ok1394test route::tests::new_project_is_static_and_highlights_only_projects ... ok1395test reports::streaming::tests::csv_timeout_interrupts_an_already_started_body ... ok1396test reports::limits::tests::bounded_entries_reject_large_fields_and_combined_text ... ok1397test jobs::report::stream_tests::download_keeps_its_snapshot_when_later_progress_archives_the_inline_tail ... ok1398test reports::streaming::database_tests::streamed_tag_filter_excludes_other_projects_without_duplicating_rows ... ok1399test seed::tests::late_seed_failure_rolls_back_all_demo_data ... ok1400test seed::tests::seed_leaves_an_older_or_partial_demo_unchanged ... ok1401test jobs::tests::synthetic_job_executes_through_claim_and_completion ... ok1402test jobs::tests::cancellation_survives_a_crash_before_the_worker_acknowledges ... ok1403test server_fns::approvals::submission_tests::cancelling_a_submission_releases_its_write_barrier ... ok1404test harvest::tests::imported_legacy_rates_survive_retry_in_harvest_list_and_detail ... ok1405test server_fns::approvals::submission_tests::submission_barrier_allows_shared_writers_for_the_same_user ... ok1406test server_fns::approvals::submission_tests::submission_accepts_the_organizations_sunday_start ... ok1407test seed::tests::seed_refuses_an_initialized_organization_without_writes ... ok1408test jobs::outbox::tests::plugin_failure_retries_with_the_same_event_identity has been running for over 60 seconds1409test jobs::report::stream_tests::download_reads_only_when_consumed_and_releases_its_connection has been running for over 60 seconds1410test jobs::report::tests::report_fragments_survive_until_the_owning_job_expires has been running for over 60 seconds1411test jobs::tests::cancellation_waits_for_the_claimed_execution_before_allowing_retry has been running for over 60 seconds1412test jobs::tests::cleanup_retains_retryable_uploads_and_deletes_expired_jobs has been running for over 60 seconds1413test jobs::tests::concurrent_csv_resubmission_preserves_identity_after_upload_cleanup has been running for over 60 seconds1414test jobs::tests::csv_job_persists_its_policy_with_the_upload has been running for over 60 seconds1415test jobs::tests::expired_lease_cannot_renew_or_commit_using_an_old_transaction_timestamp has been running for over 60 seconds1416test jobs::tests::failed_csv_commit_retains_confirmed_report_through_history_and_retry has been running for over 60 seconds1417test jobs::tests::import_adapters_reject_a_lease_from_another_organization has been running for over 60 seconds1418test jobs::tests::submission_key_cannot_change_api_mode_or_scope ... ok1419test jobs::tests::invalid_policy_cannot_enqueue_a_job_or_upload has been running for over 60 seconds1420test jobs::tests::invalid_stored_payloads_reach_a_terminal_error has been running for over 60 seconds1421test jobs::tests::missing_configuration_records_error_and_requeues has been running for over 60 seconds1422test jobs::tests::missing_csv_upload_records_error_and_requeues has been running for over 60 seconds1423test jobs::tests::outbox_claims_only_the_requested_event_kind has been running for over 60 seconds1424test server_fns::approvals::submission_tests::submission_freezes_the_minutes_after_a_competing_edit ... ok1425test server_fns::approvals::submission_tests::submission_rejects_a_start_that_is_not_the_organizations_week_start ... ok1426test server_fns::approvals::submission_tests::submission_does_not_wait_for_another_users_writer ... ok1427test jobs::tests::outbox_same_kind_consumers_cannot_claim_the_same_lease has been running for over 60 seconds1428test jobs::tests::reclaimed_attempt_rejects_stale_results_even_with_the_same_worker_name has been running for over 60 seconds1429test jobs::tests::missing_configuration_records_error_and_requeues ... ok1430test server_fns::approvals::tests::sees_a_running_timer_inside_the_week ... ok1431test server_fns::approvals::submission_tests::submission_waits_for_a_new_timer_before_checking_the_week ... ok1432test server_fns::approvals::submission_tests::submission_uses_one_pool_connection ... ok1433test jobs::tests::stopped_worker_leaves_queued_jobs_unclaimed has been running for over 60 seconds1434test server_fns::approvals::tests::ignores_stopped_and_out_of_week_timers ... ok1435test jobs::tests::submission_key_cannot_change_csv_bytes_or_mode has been running for over 60 seconds1436test jobs::tests::stopped_worker_leaves_queued_jobs_unclaimed ... ok1437test server_fns::budget_tests::budget_notification_schema_enforces_tenants_and_no_public_access ... ok1438test server_fns::budget_tests::configured_alert_and_outbox_roll_back_together ... ok1439test server_fns::budget_tests::concurrent_budget_checks_have_one_band_claimant ... ok1440test server_fns::budget_tests::configured_alert_recipients_are_active_same_org_managers_and_project_leads ... ok1441test server_fns::budget_tests::configured_alerts_deduplicate_concurrent_checks_and_recrossing ... ok1442test server_fns::budget_tests::configured_budget_does_not_read_foreign_or_legacy_projects ... ok1443test reports::limits::tests::export_size_checks_and_reads_share_a_repeatable_read_snapshot ... ok1444test server_fns::budget_tests::configured_budget_sweep_recovers_missed_checks_without_duplicates ... ok1445test server_fns::budget_tests::configured_alerts_require_enabled_active_project_and_authorized_recipient ... ok1446test server_fns::budget_tests::configured_amount_budget_uses_resolved_rates_and_explicit_zero ... ok1447test server_fns::budget_tests::configured_monthly_budget_excludes_other_months_and_nonbillable_time ... ok1448test server_fns::budget_tests::configured_monthly_budget_includes_leap_day_and_preserves_locked_rounding ... ok1449test server_fns::budget_tests::configured_person_budget_excludes_other_people_and_has_its_own_alert ... ok1450test reports::streaming::database_tests::streamed_timesheet_preserves_csv_escaping_frozen_zero_and_all_filters ... ok1451test server_fns::budget_tests::overview_budget_progress_includes_people_without_an_allowance ... ok1452test server_fns::budget_tests::configured_nonbillable_projects_count_time_without_hidden_checkbox ... ok1453test server_fns::budget_tests::configured_task_fee_budget_respects_billability_and_alert_scope ... ok1454test server_fns::budget_tests::overview_budget_progress_batches_projects_without_mixing_scopes ... ok1455test server_fns::budget_tests::configured_task_and_person_budgets_do_not_share_consumption ... ok1456test server_fns::budget_tests::overview_budget_progress_is_current_period_scoped_and_authorized ... ok1457test server_fns::clients::tests::client_default_rate_prevents_currency_relabelling ... ok1458test server_fns::clients::tests::both_activation_transitions_change_once_and_preserve_details ... ok1459test server_fns::clients::tests::client_details_hide_foreign_missing_and_inactive_actor_records ... ok1460test server_fns::clients::tests::client_default_rate_allows_detail_edits_and_equivalent_currency ... ok1461test server_fns::clients::tests::client_details_distinguish_unset_zero_and_positive_manager_rates ... ok1462test server_fns::clients::tests::client_invoices_hold_authority_until_the_read_finishes ... ok1463test server_fns::clients::tests::client_invoices_keep_exact_client_scope_statuses_and_currencies ... ok1464test server_fns::clients::tests::client_details_keep_catalog_identity_but_omit_member_billing ... ok1465test reports::privacy_tests::project_downloads_follow_progress_visibility ... ok1466test server_fns::clients::tests::currency_edit_rechecks_a_concurrently_added_client_default_rate ... ok1467test server_fns::clients::tests::concurrent_deletion_is_not_an_unchanged_mutation ... ok1468test server_fns::clients::tests::client_invoices_reject_a_winning_concurrent_revocation ... ok1469test server_fns::clients::tests::each_field_changes_once_and_preserves_inactive_status ... ok1470test server_fns::clients::tests::client_summaries_keep_catalog_without_projects_and_count_archived_projects ... ok1471test server_fns::clients::tests::client_summaries_exclude_foreign_clients_and_unreadable_project_currencies ... ok1472test server_fns::clients::tests::client_summaries_follow_existing_progress_visibility_and_revoke_inactive_users ... ok1473test server_fns::clients::tests::client_summaries_reject_a_foreign_actor_even_when_client_org_is_known ... ok1474test server_fns::clients::tests::client_invoices_require_manager_authority_even_without_invoices ... ok1475test reports::streaming::database_tests::streamed_invoice_uses_stored_exact_cents_and_tenant_scoped_metadata ... ok1476test reports::limits::tests::bounded_entries_enforce_the_row_limit_after_all_filters has been running for over 60 seconds1477test reports::limits::tests::bounded_exports_preserve_real_workbooks_and_deterministic_pdf has been running for over 60 seconds1478test reports::limits::tests::bounded_invoice_limits_include_branding_and_preserve_tenant_scope has been running for over 60 seconds1479test reports::limits::tests::bounded_projects_filter_archives_before_size_checks has been running for over 60 seconds1480test reports::limits::tests::fee_exports_preserve_absent_quantities_and_render_a_real_pdf has been running for over 60 seconds1481test reports::limits::tests::tag_filter_applies_before_xlsx_size_checks_and_rendering has been running for over 60 seconds1482test reports::privacy_tests::unauthorized_project_text_does_not_affect_export_size_limits has been running for over 60 seconds1483test reports::streaming::database_tests::a_real_database_error_interrupts_the_csv_body has been running for over 60 seconds1484test reports::streaming::database_tests::dropping_streamed_timesheet_closes_its_database_connection has been running for over 60 seconds1485test reports::streaming::database_tests::streamed_fee_invoice_has_no_fabricated_hours_or_hourly_rate has been running for over 60 seconds1486test reports::streaming::database_tests::streamed_invoice_metadata_and_lines_share_one_snapshot has been running for over 60 seconds1487test reports::streaming::database_tests::streamed_timesheet_exceeds_xlsx_row_limit_without_one_large_body_chunk has been running for over 60 seconds1488test seed::tests::concurrent_init_and_seed_cannot_mix_organizations has been running for over 60 seconds1489test seed::tests::concurrent_initializers_cannot_create_two_organizations has been running for over 60 seconds1490test seed::tests::concurrent_seed_runs_create_only_one_demo has been running for over 60 seconds1491test seed::tests::repeated_seed_preserves_every_row_and_user_edits has been running for over 60 seconds1492test seed::tests::seed_refuses_a_second_organization_even_when_the_demo_exists has been running for over 60 seconds1493test server_fns::clients::tests::profile_currency_change_without_a_rate_keeps_it_unset ... ok1494test server_fns::clients::tests::profile_saves_recheck_manager_org_and_active_actor ... ok1495test server_fns::clients::tests::profile_saves_reject_invalid_input_without_partial_writes ... ok1496test server_fns::clients::tests::profile_create_persists_normalized_identity_and_exact_optional_rate ... ok1497test server_fns::clients::tests::profile_noop_preserves_row_and_returns_no_update_event_signal ... ok1498test server_fns::clients::tests::profile_update_rejects_stale_currency_even_when_the_rate_is_still_unset ... ok1499test server_fns::clients::tests::profile_update_rechecks_financial_snapshot_after_waiting_for_a_concurrent_edit ... ok1500test server_fns::clients::tests::profile_update_rechecks_authority_after_waiting_for_a_concurrent_demotion ... ok1501test server_fns::clients::tests::profile_update_preserves_historical_rows_and_inactive_status ... ok1502test server_fns::importers::authorization_tests::cli_job_endpoints_have_stable_registered_paths ... ok1503test reports::streaming::database_tests::streamed_invoice_metadata_and_lines_share_one_snapshot ... ok1504test server_fns::importers::authorization_tests::report_stress::large_report_streams_over_http_without_buffering_the_archive ... ignored, isolated Linux HTTP/memory stress; run with --release --exact --ignored --nocapture1505test server_fns::importers::authorization_tests::request_bound_import_endpoints_are_not_registered ... ok1506test server_fns::importers::csv_upload::tests::csv_upload_extractor_preserves_raw_bytes ... ok1507test server_fns::importers::csv_upload::tests::csv_upload_requires_its_header_without_reading_the_body ... ok1508test server_fns::importers::tests::concurrent_api_import_returns_a_retryable_conflict ... ok1509test server_fns::clients::tests::missing_and_foreign_clients_are_not_noops ... ok1510test server_fns::importers::tests::submission_identity_rejects_expired_future_and_non_v7_keys ... ok1511test server_fns::importers::tests::csv_route_rejects_invalid_modes_and_headers_without_reading_uploads ... ok1512test server_fns::clients::tests::restoring_a_competing_deactivation_reports_reactivation ... ok1513test server_fns::clients::tests::repeating_a_competing_deactivation_does_not_report_a_transition ... ok1514test server_fns::clients::tests::restoring_values_after_a_competing_edit_reports_a_change ... ok1515test server_fns::clients::tests::profile_update_requires_explicit_rate_intent_for_currency_changes ... ok1516test server_fns::clients::tests::unchanged_edit_preserves_the_row ... ok1517test server_fns::clients::tests::unchanged_activation_preserves_the_row ... ok1518test server_fns::clients::tests::profile_update_rejects_stale_rate_even_when_the_target_currency_is_unchanged ... ok1519test server_fns::clients::tests::repeating_a_competing_edit_does_not_report_a_change ... ok1520test jobs::report::stream_tests::download_reads_only_when_consumed_and_releases_its_connection ... ok1521test server_fns::invoices::fee_tests::concurrent_invoices_claim_a_single_fee_once ... ok1522test server_fns::invoices::fee_tests::draft_fee_edit_rejects_invalid_lines_and_current_unauthorized_actors ... ok1523test server_fns::invoices::fee_tests::fee_occurrence_rejects_cross_organization_project ... ok1524test server_fns::invoices::fee_tests::fee_invoice_does_not_claim_hours_or_another_clients_fee ... ok1525test server_fns::invoices::fee_tests::invoice_line_sources_reject_mixed_sources_and_invented_fee_quantities ... ok1526test server_fns::invoices::fee_tests::fee_total_overflow_rolls_back_occurrences_and_invoice ... ok1527test reports::streaming::database_tests::dropping_streamed_timesheet_closes_its_database_connection ... ok1528test server_fns::invoices::fee_tests::fee_balance_migration_allocates_discount_without_rewriting_invoice_snapshots ... ok1529test server_fns::invoices::fee_tests::milestones_include_unbilled_overdue_fees_but_not_future_fees ... ok1530test server_fns::invoices::fee_tests::monthly_fees_use_calendar_dates_and_skip_already_claimed_months ... ok1531test server_fns::invoices::fee_tests::mixed_time_and_fee_discount_conserves_cents_without_reopening_time ... ok1532test server_fns::invoices::fee_tests::monthly_first_and_fifteenth_respect_partial_period_and_project_end ... ok1533test server_fns::importers::authorization_tests::job_endpoints_enforce_session_role_and_organization has been running for over 60 seconds1534test server_fns::invoices::fee_tests::concurrent_discounted_invoice_retries_return_one_invoice has been running for over 60 seconds1535test harvest::pagination_tests::harvest_task_access_filters_counts_and_preserves_rate_free_history ... ok1536test server_fns::invoices::fee_tests::discounted_fee_leaves_a_balance_and_void_releases_only_its_contribution has been running for over 60 seconds1537test server_fns::invoices::fee_tests::draft_fee_edit_replaces_amount_and_preserves_source_and_retry_identity has been running for over 60 seconds1538test server_fns::invoices::fee_tests::draft_fee_edit_requires_current_balance_and_exact_excess_confirmation has been running for over 60 seconds1539test server_fns::invoices::fee_tests::draft_fee_edit_serializes_retries_and_rejects_stale_revisions has been running for over 60 seconds1540test server_fns::invoices::fee_tests::fee_preview_discount_ties_follow_source_keys_not_display_dates has been running for over 60 seconds1541test server_fns::invoices::fee_tests::fee_preview_keeps_source_identity_and_reports_discounted_draft_balances has been running for over 60 seconds1542test server_fns::invoices::fee_tests::project_fee_context_matches_invoice_balances_and_current_authority ... ok1543test server_fns::invoices::fee_tests::invoice_defaults_apply_to_selected_fees_without_claiming_other_projects has been running for over 60 seconds1544test server_fns::invoices::fee_tests::invoice_preview_does_not_materialize_fees_and_preserves_released_snapshots has been running for over 60 seconds1545test server_fns::invoices::fee_tests::invoice_defaults_apply_to_selected_fees_without_claiming_other_projects ... ok1546test server_fns::invoices::fee_tests::invoice_status_rechecks_authority_after_waiting_for_the_invoice_lock has been running for over 60 seconds1547test server_fns::invoices::fee_tests::prepared_fee_selection_rejects_invalid_values_and_empty_generation has been running for over 60 seconds1548test server_fns::invoices::fee_tests::project_fee_context_keeps_monthly_balances_separate has been running for over 60 seconds1549test server_fns::invoices::fee_tests::reviewed_generation_bills_partial_fees_and_rejects_stale_balances ... ok1550test server_fns::invoices::fee_tests::removing_discount_and_billing_the_remainder_cannot_both_succeed has been running for over 60 seconds1551test server_fns::invoices::fee_tests::reviewed_generation_does_not_materialize_unselected_months ... ok1552test jobs::tests::invalid_stored_payloads_reach_a_terminal_error ... ok1553test jobs::tests::concurrent_csv_resubmission_preserves_identity_after_upload_cleanup ... ok1554test server_fns::invoices::fee_tests::fee_preview_keeps_source_identity_and_reports_discounted_draft_balances ... ok1555test server_fns::invoices::fee_tests::single_fee_can_be_invoiced_without_time ... ok1556test server_fns::invoices::fee_tests::void_releases_fee_identity_without_rewriting_the_original_line ... ok1557test harvest::pagination_tests::harvest_pagination_time_entries_keep_the_filtered_set_and_date_ties ... ok1558test server_fns::invoices::preview::tests::excess_rejects_an_unrepresentable_total_even_when_the_remainder_fits ... ok1559test server_fns::invoices::preview::tests::unselected_fee_currencies_do_not_relabel_or_block_selected_charges ... ok1560test server_fns::invoices::tests::billing_cascade_agrees_across_all_four_levels_including_zero ... ok1561test jobs::outbox::tests::plugin_failure_retries_with_the_same_event_identity ... ok1562test server_fns::invoices::tests::configured_fixed_fee_hours_are_not_invoiced_but_legacy_fees_are_unchanged ... ok1563test server_fns::invoices::tests::configured_project_currency_and_cost_override_keep_their_denominations ... ok1564test reports::limits::tests::bounded_projects_filter_archives_before_size_checks ... ok1565test server_fns::invoices::tests::effective_minutes_migration_preserves_historical_invoice_quantities ... ok1566test server_fns::invoices::tests::effective_minutes_sql_matches_domain_rounding ... ok1567test server_fns::invoices::tests::imported_rates::imported_legacy_project_keeps_exact_rates_and_totals_on_retry ... ok1568test jobs::tests::expired_lease_cannot_renew_or_commit_using_an_old_transaction_timestamp ... ok1569test reports::streaming::database_tests::streamed_fee_invoice_has_no_fabricated_hours_or_hourly_rate ... ok1570test jobs::tests::reclaimed_attempt_rejects_stale_results_even_with_the_same_worker_name ... ok1571test jobs::tests::cancellation_waits_for_the_claimed_execution_before_allowing_retry ... ok1572test server_fns::invoices::tests::invoice_defaults_legacy_insert_preserves_dates_and_exact_total ... ok1573test server_fns::invoices::tests::invoice_defaults_selection_rejects_unavailable_projects_before_claiming ... ok1574test server_fns::invoices::tests::invoice_defaults_validate_all_override_fields ... ok1575test server_fns::invoices::tests::invoice_line_overflow_leaves_time_unbilled ... ok1576test jobs::tests::outbox_same_kind_consumers_cannot_claim_the_same_lease ... ok1577test server_fns::invoices::fee_tests::draft_fee_edit_serializes_retries_and_rejects_stale_revisions ... ok1578test reports::limits::tests::fee_exports_preserve_absent_quantities_and_render_a_real_pdf ... ok1579test seed::tests::seed_refuses_a_second_organization_even_when_the_demo_exists ... ok1580test server_fns::invoices::tests::invoice_defaults_are_invoice_owned_and_only_drafts_are_editable ... ok1581test server_fns::invoices::tests::invoice_total_overflow_leaves_all_time_unbilled ... ok1582test server_fns::invoices::tests::invoice_transitions_reject_invalid_states_and_foreign_organizations ... ok1583test jobs::tests::submission_key_cannot_change_csv_bytes_or_mode ... ok1584test server_fns::invoices::tests::invoiced_amounts_survive_rate_changes_and_void_uses_current_rates ... ok1585test server_fns::invoices::tests::invoiced_billability_survives_later_project_changes ... ok1586test server_fns::invoices::tests::invoicing_leaves_running_time_open ... ok1587test server_fns::invoices::tests::invoice_defaults_conflict_rolls_back_all_claims ... ok1588test server_fns::invoices::tests::invoicing_uses_and_freezes_effective_minutes ... ok1589test server_fns::invoices::tests::only_running_time_does_not_create_an_invoice ... ok1590test server_fns::invoices::tests::mixed_project_currencies_cannot_partially_create_an_invoice ... ok1591test server_fns::invoices::tests::large_invoice_and_reports_agree_without_intermediate_overflow ... ok1592test server_fns::invoices::fee_tests::settled_fee_sources_remain_reviewable_without_automatic_charges ... ok1593test server_fns::invoices::tests::non_billable_context_produces_no_unbilled_amount_on_any_report ... ok1594test server_fns::invoices::tests::project_rate_is_used_by_invoices_reports_and_spend ... ok1595test server_fns::invoices::tests::void_waits_for_a_concurrent_payment_and_then_refuses ... ok1596test server_fns::invoices::tests::void_reopens_time_without_stale_rounding ... ok1597test reports::limits::tests::bounded_exports_preserve_real_workbooks_and_deterministic_pdf ... ok1598test server_fns::organization::tests::each_branding_field_changes_once_including_null_and_empty ... ok1599test server_fns::organization::tests::repeating_a_competing_branding_edit_does_not_report_a_change ... ok1600test server_fns::organization::tests::missing_organization_is_not_an_unchanged_update ... ok1601test server_fns::organization::tests::unchanged_branding_preserves_the_row ... ok1602test server_fns::project_creation::assignment_tests::finalization_reuses_catalog_and_keeps_lead_overrides_local_on_retry ... ok1603test server_fns::invoices::tests::selected_project_rate_modes_agree_across_billing_consumers ... ok1604test reports::privacy_tests::unauthorized_project_text_does_not_affect_export_size_limits ... ok1605test server_fns::organization::tests::restoring_branding_after_a_competing_edit_reports_a_change ... ok1606test server_fns::project_creation::editing::tests::concurrent_edits_have_one_winner_and_association_writes_invalidate_open_forms ... ok1607test server_fns::project_creation::editing::tests::editor_keeps_archived_selected_identities_and_nullable_overrides ... ok1608test server_fns::project_creation::editing::tests::editing_milestones_keeps_invoice_snapshots_and_fee_identities_immutable ... ok1609test server_fns::invoices::tests::invoice_preview_keeps_time_rates_and_defaults_in_one_snapshot ... ok1610test server_fns::project_creation::editing::tests::editor_loads_legacy_values_without_fabricating_a_billing_mode_or_draft ... ok1611test server_fns::project_creation::assignment_tests::invalid_assignment_graphs_leave_no_partial_creation_or_draft_change ... ok1612test server_fns::project_creation::editing::tests::editor_preserves_fee_schedule_and_operational_milestone_ids ... ok1613test server_fns::project_creation::editing::tests::editor_rechecks_tenant_role_and_active_status ... ok1614test server_fns::project_creation::editing::tests::editor_recovers_full_configuration_and_redacts_private_values_after_role_change ... ok1615test server_fns::project_creation::editing::tests::editor_recovers_each_budget_scope_without_turning_absence_into_zero ... ok1616test server_fns::project_creation::editing::tests::foreign_actor_cannot_save_or_retry_another_organizations_edit ... ok1617test jobs::tests::cleanup_retains_retryable_uploads_and_deletes_expired_jobs ... ok1618test server_fns::project_creation::editing::tests::save_edits_the_same_legacy_project_and_never_creates_a_draft_or_configuration ... ok1619test server_fns::project_creation::editing::tests::save_preserves_recorded_time_and_rejects_removing_its_task_or_person ... ok1620test server_fns::project_creation::editing::tests::save_updates_configured_sections_atomically_and_rejects_stale_or_invalid_edits ... ok1621test server_fns::project_creation::editing::tests::saves_recheck_current_authority_and_do_not_repeat_noops ... ok1622test server_fns::project_creation::editing::tests::manager_edit_preserves_private_settings_and_cannot_remove_them_indirectly ... ok1623test server_fns::project_creation::tests::billing_schema_rejects_partial_fee_schedules ... ok1624test server_fns::project_creation::tests::client_dialog_validates_details_and_persists_an_explicit_zero_rate ... ok1625test server_fns::project_creation::editing::tests::task_catalog_and_graph_changes_roll_back_together_on_duplicate_resolution ... ok1626test server_fns::project_creation::tests::creation_actor_is_revalidated_inside_the_transaction ... ok1627test server_fns::project_creation::tests::creation_client_must_be_active_and_in_the_same_organization ... ok1628test server_fns::invoices::fee_tests::reviewed_generation_requires_exact_excess_and_current_authority ... ok1629test server_fns::project_creation::tests::draft_validation_preserves_incomplete_input_but_bounds_its_size ... ok1630test server_fns::project_creation::tests::creation_options_are_scoped_bounded_and_redact_manager_costs ... ok1631test server_fns::project_creation::tests::final_validation_checks_invoice_defaults_and_scoped_budget_totals ... ok1632test server_fns::project_creation::tests::final_validation_preserves_exact_budgets_and_rejects_unavailable_email ... ok1633test server_fns::project_creation::tests::final_validation_requires_complete_fee_schedules_and_distinct_entities ... ok1634test server_fns::project_creation::tests::final_validation_requires_real_details_and_ignores_hidden_type_settings ... ok1635test server_fns::project_creation::tests::draft_save_retries_do_not_overwrite_a_newer_revision ... ok1636test server_fns::project_creation::tests::draft_schema_enforces_one_current_draft_per_creator ... ok1637test server_fns::project_creation::tests::draft_schema_rejects_foreign_creator_and_completed_project ... ok1638test server_fns::project_creation::tests::draft_ownership_discard_and_role_changes_are_enforced ... ok1639test server_fns::project_creation::tests::managers_cannot_store_administrator_notes_or_costs_in_a_draft ... ok1640test server_fns::project_creation::tests::draft_schema_rejects_oversize_payload_and_invalid_revision ... ok1641test server_fns::project_creation::tests::existing_projects_have_no_implicit_new_billing_configuration ... ok1642test server_fns::invoices::tests::invoice_defaults_apply_exact_adjustments_and_payment_terms ... ok1643test server_fns::project_creation::tests::finalization_persists_task_access_and_project_only_financial_overrides ... ok1644test server_fns::invoices::fee_tests::reviewed_generation_rejects_changed_time_before_claiming_it has been running for over 60 seconds1645test server_fns::project_creation::tests::invalid_task_rolls_back_project_and_keeps_the_draft ... ok1646test server_fns::project_creation::validation::tests::assignment_rejections_identify_the_invalid_row ... ok1647test server_fns::project_creation::validation::tests::basic_rejections_identify_the_field_without_echoing_input ... ok1648test server_fns::project_creation::validation::tests::billing_rejections_identify_the_active_control ... ok1649test server_fns::project_creation::validation::tests::inactive_billing_inputs_remain_in_the_draft_without_blocking_creation ... ok1650test server_fns::project_creation::validation::tests::invoice_rejections_identify_the_field_without_echoing_input ... ok1651test server_fns::project_creation::validation::tests::milestone_rejections_target_the_invalid_row_by_identity ... ok1652test server_fns::project_creation::validation::tests::non_billable_projects_ignore_hidden_invoice_inputs ... ok1653test server_fns::project_creation::validation::tests::task_name_and_access_rejections_identify_the_invalid_row ... ok1654test server_fns::project_creation::tests::finalization_rechecks_client_role_revision_and_rate_currency ... ok1655test server_fns::project_creation::tests::finalize_is_atomic_and_repeated_submission_returns_one_project ... ok1656test server_fns::project_creation::tests::missing_draft_responses_do_not_disclose_foreign_ownership ... ok1657test server_fns::project_creation::tests::selected_catalog_bounds_requests_and_excludes_inactive_people ... ok1658test server_fns::projects::bulk_tests::bulk_ids_validate_before_writes_and_normalize_duplicates ... ok1659test server_fns::invoices::fee_tests::prepared_fee_selection_rejects_invalid_values_and_empty_generation ... ok1660test server_fns::project_creation::tests::selected_client_lookup_is_scoped_and_keeps_archived_identity ... ok1661test server_fns::project_creation::tests::selected_catalog_is_scoped_deduplicated_and_redacts_manager_costs ... ok1662test server_fns::project_creation::tests::simultaneous_draft_updates_have_one_winner ... ok1663test server_fns::projects::bulk_tests::bulk_database_failure_rolls_back_earlier_changes ... ok1664test server_fns::projects::bulk_tests::bulk_accepts_one_hundred_projects_and_mixed_status_noops ... ok1665test server_fns::projects::bulk_tests::bulk_missing_or_foreign_project_rolls_back_earlier_changes ... ok1666test server_fns::projects::bulk_tests::bulk_reversed_overlapping_batches_finish_without_deadlock ... ok1667test server_fns::projects::bulk_tests::bulk_preserves_invoiced_history_assignments_and_spend ... ok1668test jobs::tests::outbox_claims_only_the_requested_event_kind ... ok1669test server_fns::projects::bulk_tests::bulk_status_preserves_details_history_and_noop_versions ... ok1670test server_fns::projects::mutation_tests::project::configured_edits_recheck_settings_after_waiting_for_the_project ... ok1671test server_fns::projects::mutation_tests::project::both_activation_transitions_preserve_details_and_change_once ... ok1672test server_fns::projects::mutation_tests::project::concurrent_deletion_is_rejected_by_both_mutations ... ok1673test server_fns::projects::mutation_tests::project::budgets_and_rates_distinguish_null_zero_and_normalized_values ... ok1674test server_fns::invoices::fee_tests::draft_fee_edit_requires_current_balance_and_exact_excess_confirmation ... ok1675test server_fns::projects::mutation_tests::project::configured_edits_preserve_non_hourly_billing ... ok1676test server_fns::projects::mutation_tests::project::configured_edits_preserve_compatible_changes_and_idempotence ... ok1677test server_fns::projects::mutation_tests::project::configured_edits_reject_incompatible_financial_changes_atomically ... ok1678test server_fns::projects::mutation_tests::project::inactive_project_edits_preserve_identity_and_reject_implicit_migrations ... ok1679test server_fns::projects::mutation_tests::project::missing_and_foreign_rows_are_not_noops ... ok1680test server_fns::projects::mutation_tests::project::invalid_project_fields_leave_the_row_unchanged ... ok1681test server_fns::projects::mutation_tests::project::repeating_a_competing_deactivation_reports_no_transition ... ok1682test jobs::tests::import_adapters_reject_a_lease_from_another_organization ... ok1683test server_fns::projects::mutation_tests::project::restoring_a_competing_deactivation_reports_reactivation ... ok1684test server_fns::projects::mutation_tests::project::repeating_a_competing_edit_requires_a_fresh_revision ... ok1685test server_fns::projects::mutation_tests::project::restoring_a_competing_edit_does_not_overwrite_the_other_session ... ok1686test jobs::tests::invalid_policy_cannot_enqueue_a_job_or_upload ... ok1687test server_fns::projects::mutation_tests::task::rate_edits_set_currency_without_relabelling_renames_or_noops ... ok1688test server_fns::projects::mutation_tests::task::repeating_a_competing_edit_does_not_report_a_change ... ok1689test server_fns::projects::mutation_tests::task::repeating_a_competing_deactivation_reports_no_transition ... ok1690test server_fns::projects::mutation_tests::task::each_detail_field_changes_once_and_preserves_inactive_status ... ok1691test server_fns::projects::mutation_tests::task::concurrent_deletion_returns_not_found_for_both_mutations ... ok1692test server_fns::projects::mutation_tests::project::unchanged_activation_preserves_the_row ... ok1693test server_fns::projects::mutation_tests::project::unchanged_edit_preserves_the_row ... ok1694test server_fns::projects::mutation_tests::task::missing_and_foreign_rows_are_not_noops ... ok1695test server_fns::projects::mutation_tests::task::both_activation_transitions_preserve_details_and_change_once ... ok1696test server_fns::projects::privacy_tests::private_progress_does_not_prevent_tracking_or_reveal_financial_fields ... ok1697test server_fns::projects::privacy_tests::project_members_and_leads_receive_progress_without_rates ... ok1698test server_fns::projects::mutation_tests::task::unchanged_edit_preserves_the_row ... ok1699test server_fns::projects::privacy_tests::client_project_filter_preserves_progress_access_and_rate_redaction ... ok1700test server_fns::projects::privacy_tests::project_reads_use_current_authority_and_reject_foreign_scope ... ok1701test server_fns::projects::mutation_tests::task::restoring_a_competing_deactivation_reports_reactivation ... ok1702test server_fns::projects::privacy_tests::legacy_members_retain_progress_without_new_settings ... ok1703test server_fns::projects::mutation_tests::task::unchanged_activation_preserves_the_row ... ok1704test server_fns::projects::mutation_tests::task::restoring_a_competing_edit_reports_a_change ... ok1705test server_fns::invoices::fee_tests::project_fee_context_keeps_monthly_balances_separate ... ok1706test server_fns::projects::privacy_tests::outsiders_and_inactive_viewers_have_no_project_reads ... ok1707test server_fns::invoices::fee_tests::zero_fee_is_invoiced_once_until_voided has been running for over 60 seconds1708test server_fns::projects::tests::enabling_is_tenant_scoped_even_for_existing_links_and_preserves_overrides ... ok1709test server_fns::projects::privacy_tests::revoked_membership_preserves_only_own_historical_tracking_identity ... ok1710test server_fns::projects::tests::enabling_tasks_rejects_explicit_rates_unused_by_the_project ... ok1711test server_fns::projects::tests::creating_a_project_task_enables_it_with_its_defaults ... ok1712test server_fns::projects::tests::project_rate_distinguishes_inheritance_zero_and_exact_amounts ... ok1713test server_fns::projects::tests::enabling_tasks_rejects_incompatible_catalog_currency ... ok1714test server_fns::projects::tests::assignments_are_scoped_to_the_viewers_organization ... ok1715test server_fns::projects::tests::managers_and_admins_can_read_assignment_rates ... ok1716test server_fns::projects::tests::enabling_tasks_rejects_invalid_or_wrong_currency_explicit_rates_without_linking ... ok1717test server_fns::projects::tests::failed_project_task_creation_leaves_no_orphan_task ... ok1718test server_fns::projects::details_tests::project_details_and_tags_follow_current_progress_and_private_permissions ... ok1719test server_fns::projects::tests::enabling_tasks_accepts_exact_project_currency_rates_and_preserves_existing_links ... ok1720test server_fns::time_entries::tests::a_limit_bounds_a_listing_on_its_own ... ok1721test server_fns::projects::tests::enabling_tasks_only_inherits_rates_used_by_configured_projects ... ok1722test server_fns::projects::tests::project_rate_helper_has_no_public_execute_grant ... ok1723test server_fns::projects::tests::members_can_list_identities_but_not_assignment_rates ... ok1724test server_fns::projects::tests::project_rate_sql_matches_rust_for_missing_zero_and_present_sources ... ok1725test server_fns::time_entries::tests::an_unlimited_listing_needs_both_ends_of_the_range ... ok1726test reports::streaming::database_tests::a_real_database_error_interrupts_the_csv_body ... ok1727test server_fns::time_entries::tests::clamps_duration_against_the_snapped_start ... ok1728test server_fns::projects::tests::unknown_catalog_currency_requires_explicit_configured_rates_but_preserves_legacy ... ok1729test server_fns::time_entries::tests::a_reorder_rejects_foreign_missing_timed_and_duplicate_ids ... ok1730test server_fns::time_entries::tests::admin_may_log_time_without_assignment ... ok1731test server_fns::time_entries::tests::an_open_entry_can_move_into_a_day_with_locked_time ... ok1732test server_fns::time_entries::tests::assigned_member_may_log_time ... ok1733test server_fns::time_entries::tests::a_running_timer_cannot_be_moved_to_another_day ... ok1734test server_fns::time_entries::tests::concurrent_timer_starts_insert_exactly_one_entry ... ok1735test server_fns::time_entries::tests::rejects_out_of_range_start ... ok1736test server_fns::time_entries::tests::snaps_unaligned_start_to_the_grid ... ok1737test server_fns::invoices::fee_tests::reviewed_generation_rejects_changed_time_before_claiming_it ... ok1738test server_fns::invoices::tests::imported_rates::imported_task_rates_require_matching_currency_only_for_new_configured_links has been running for over 60 seconds1739test server_fns::time_entries::tests::moving_locked_time_rejects_the_entire_reorder ... ok1740test server_fns::time_entries::tests::edits_preserve_archived_time_but_cannot_override_non_billability ... ok1741test server_fns::time_entries::tests::untimed_start_is_left_untouched ... ok1742test server_fns::time_entries::tests::inactive_project_cannot_accept_new_time_even_for_admin ... ok1743test server_fns::time_entries::tests::new_time_and_picker_require_a_project_task_link ... ok1744test server_fns::time_entries::tests::submission_barrier_blocks_edits_and_cross_week_reorders ... ok1745test server_fns::invoices::tests::imported_rates::rejected_import_rate_does_not_poison_the_next_row_or_its_catalog_rate has been running for over 60 seconds1746test server_fns::time_entries::tests::submission_barrier_blocks_manual_entries_and_timer_starts ... ok1747test server_fns::time_entries::tests::new_time_and_picker_reject_inactive_or_foreign_contexts ... ok1748test server_fns::time_entries::tests::new_time_uses_effective_billability_for_manual_entries_and_timers ... ok1749test server_fns::time_entries::tests::unassigned_member_is_forbidden ... ok1750test server_fns::projects::details_tests::project_details_only_offer_task_rate_currency_to_current_managers ... ok1751test server_fns::time_entries::update_tests::competing_identical_edit_is_a_noop_after_the_first_commit ... ok1752test server_fns::time_entries::update_tests::competing_edit_that_restores_old_values_still_reports_a_change ... ok1753test server_fns::time_entries::update_tests::concurrent_lock_or_delete_is_rechecked_before_editing ... ok1754test server_fns::time_entries::update_tests::each_editable_field_changes_once_including_nulls ... ok1755test server_fns::time_entries::update_tests::effective_billability_noop_preserves_the_row ... ok1756test server_fns::time_entries::update_tests::missing_foreign_and_locked_entries_are_not_noops ... ok1757test server_fns::time_entries::update_tests::normalized_noop_preserves_the_row_and_updated_at ... ok1758test server_fns::time_entries::update_tests::restricted_reordering_rejects_the_whole_batch ... ok1759test server_fns::invoices::fee_tests::draft_fee_edit_replaces_amount_and_preserves_source_and_retry_identity ... ok1760test server_fns::time_entries::update_tests::restricted_empty_task_rejects_picker_manual_and_timer_starts ... ok1761test server_fns::time_entries::update_tests::restricted_task_rejects_reschedule_and_delete ... ok1762test server_fns::time_entries::update_tests::restricted_empty_task_rejects_changes_and_noop_edits ... ok1763test server_fns::invoices::tests::invoice_defaults_edit_rechecks_status_after_waiting_for_a_concurrent_send has been running for over 60 seconds1764test server_fns::time_entries::update_tests::restriction_changes_are_rechecked_before_manual_or_timer_insertion ... ok1765test server_fns::users::tests::concurrency::demotion_and_deactivation_keep_an_active_admin ... ok1766test server_fns::time_entries::update_tests::task_grant_revocation_committed_during_an_edit_is_rechecked ... ok1767test server_fns::users::tests::hide_rates_clears_both_rate_fields ... ok1768test server_fns::invoices::tests::imported_rates::imported_task_rates_require_matching_currency_only_for_new_configured_links ... ok1769test server_fns::time_entries::update_tests::revoked_grant_does_not_trap_an_own_running_timer ... ok1770test server_fns::users::tests::concurrency::concurrent_demotions_keep_an_active_admin ... ok1771test server_fns::time_entries::update_tests::revoked_timer_stop_preserves_the_open_state_guard ... ok1772test server_fns::users::tests::concurrency::access_changes_cannot_target_another_organization ... ok1773test server_fns::users::tests::concurrency::deactivation_and_demotion_keep_an_active_admin ... ok1774test server_fns::users::tests::concurrency::concurrent_deactivations_keep_an_active_admin ... ok1775test server_fns::time_entries::update_tests::task_grants_allow_tracking_and_archived_history_for_every_role ... ok1776test server_fns::users::tests::concurrency::unchanged_admin_access_is_allowed ... ok1777test server_fns::users::tests::concurrency::the_last_admin_cannot_be_demoted_or_deactivated ... ok1778test jobs::report::tests::report_fragments_survive_until_the_owning_job_expires ... ok1779test server_fns::invoices::fee_tests::zero_fee_is_invoiced_once_until_voided ... ok1780test server_fns::invoices::tests::invoice_preview_matches_generation_without_claiming_time has been running for over 60 seconds1781test server_fns::projects::details_tests::unlinked_and_private_project_tags_do_not_leak_into_filters ... ok1782test server_fns::invoices::tests::invoice_preview_rejects_large_results_instead_of_truncating_them has been running for over 60 seconds1783test seed::tests::repeated_seed_preserves_every_row_and_user_edits ... ok1784test server_fns::project_creation::import_tests::imported_catalog_rate_cannot_be_relabelled_as_workspace_currency ... ok1785test jobs::tests::missing_csv_upload_records_error_and_requeues ... ok1786test server_fns::invoices::fee_tests::fee_preview_discount_ties_follow_source_keys_not_display_dates ... ok1787test server_fns::invoices::tests::invoice_preview_requires_explicit_resolution_and_scopes_selected_projects has been running for over 60 seconds1788test server_fns::invoices::fee_tests::invoice_preview_does_not_materialize_fees_and_preserves_released_snapshots ... ok1789test server_fns::project_creation::editing::tests::editor_load_uses_current_role_across_all_billing_configurations has been running for over 60 seconds1790test server_fns::project_creation::import_tests::imports_preserve_finalized_project_configuration_and_restricted_access has been running for over 60 seconds1791test server_fns::importers::authorization_tests::job_endpoints_enforce_session_role_and_organization ... ok1792test server_fns::project_creation::editing::tests::editor_load_uses_current_role_across_all_billing_configurations ... ok1793test reports::limits::tests::tag_filter_applies_before_xlsx_size_checks_and_rendering ... ok1794test server_fns::invoices::fee_tests::removing_discount_and_billing_the_remainder_cannot_both_succeed ... ok1795test server_fns::invoices::tests::invoice_preview_requires_explicit_resolution_and_scopes_selected_projects ... ok1796test server_fns::invoices::tests::invoice_defaults_edit_rechecks_status_after_waiting_for_a_concurrent_send ... ok1797test server_fns::invoices::fee_tests::invoice_status_rechecks_authority_after_waiting_for_the_invoice_lock ... ok1798test jobs::tests::csv_job_persists_its_policy_with_the_upload ... ok1799test server_fns::invoices::fee_tests::concurrent_discounted_invoice_retries_return_one_invoice ... ok1800test jobs::tests::failed_csv_commit_retains_confirmed_report_through_history_and_retry ... ok1801test reports::limits::tests::bounded_entries_enforce_the_row_limit_after_all_filters ... ok1802test harvest::pagination_tests::harvest_pagination_empty_and_out_of_range_pages_keep_the_contract ... ok1803test server_fns::reports::tests::same_names_keep_separate_groups_for_every_dimension ... ok1804test server_fns::invoices::tests::imported_rates::rejected_import_rate_does_not_poison_the_next_row_or_its_catalog_rate ... ok1805test server_fns::reports::tests::filters_and_renames_keep_report_identity_and_totals has been running for over 60 seconds1806test server_fns::reports::tests::manager_report_omits_groups_containing_private_project_costs has been running for over 60 seconds1807test server_fns::reports::tests::report_uses_current_active_actor_and_tenant_for_every_filter has been running for over 60 seconds1808test seed::tests::concurrent_init_and_seed_cannot_mix_organizations ... ok1809test server_fns::reports::tests::shared_person_and_task_are_partitioned_by_currency has been running for over 60 seconds1810test server_fns::reports::tests::tag_filters_keep_report_dimensions_and_details_in_sync has been running for over 60 seconds1811test server_fns::reports::tests::report_uses_current_active_actor_and_tenant_for_every_filter ... ok1812test reports::streaming::database_tests::streamed_timesheet_exceeds_xlsx_row_limit_without_one_large_body_chunk ... ok1813test seed::tests::concurrent_seed_runs_create_only_one_demo ... ok1814test server_fns::reports::tests::filters_and_renames_keep_report_identity_and_totals ... ok1815test server_fns::reports::tests::tag_filters_keep_report_dimensions_and_details_in_sync ... ok1816test harvest::pagination_tests::harvest_pagination_malformed_filters_are_client_errors ... ok1817test server_fns::project_creation::import_tests::imports_preserve_finalized_project_configuration_and_restricted_access ... ok1818test server_fns::reports::tests::shared_person_and_task_are_partitioned_by_currency ... ok1819test reports::limits::tests::bounded_invoice_limits_include_branding_and_preserve_tenant_scope ... ok1820test seed::tests::concurrent_initializers_cannot_create_two_organizations ... ok1821test server_fns::reports::tests::manager_report_omits_groups_containing_private_project_costs ... ok1822test server_fns::invoices::tests::invoice_preview_matches_generation_without_claiming_time ... ok1823test server_fns::invoices::fee_tests::discounted_fee_leaves_a_balance_and_void_releases_only_its_contribution ... ok1824test server_fns::invoices::tests::invoice_preview_rejects_large_results_instead_of_truncating_them ... ok18251826test result: ok. 823 passed; 0 failed; 11 ignored; 0 measured; 0 filtered out; finished in 451.65s18271828 Running tests/admin_shell.rs (target/debug/deps/admin_shell-cfc9086f36db03ff)18291830running 5 tests1831test pending_user_does_not_mount_admin_content ... ok1832test failed_user_does_not_mount_admin_content ... ok1833test resolved_admin_mounts_the_workspace_and_outlet ... ok1834test retry_waits_for_fresh_authorization_then_recovers ... ok1835test members_and_managers_never_mount_admin_content ... ok18361837test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s18381839 Running tests/cli_imports.rs (target/debug/deps/cli_imports-a04e6afe2c98a764)18401841running 5 tests1842test invalid_remote_arguments_have_a_machine_readable_exit ... ok1843test remote_configuration_errors_are_json_and_do_not_load_server_configuration ... ok1844test interrupting_the_executable_waiter_keeps_job_identity_and_never_sends_cancel ... ok1845test executable_commands_use_the_documented_authenticated_wire_contract ... ok1846test executable_wait_and_failure_exit_codes_match_the_json_contract ... ok18471848test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.01s18491850 Running tests/cli_restart.rs (target/debug/deps/cli_restart-f50f4c5a4a29569a)18511852running 1 test1853test detached_csv_recovers_after_the_server_process_is_killed ... ok18541855test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.22s18561857 Running tests/detail_navigation.rs (target/debug/deps/detail_navigation-3cf2134fea69a004)18581859running 44 tests1860test invoices::preparation::tests::invoice_review_requires_matching_sources_and_valid_values ... ok1861test invoices::preparation::tests::invoice_context_selects_only_the_exact_available_client ... ok1862test invoices::preparation::tests::unavailable_or_malformed_invoice_context_never_uses_the_first_client ... ok1863test clients::form::tests::absent_billing_authority_never_produces_an_edit_payload ... ok1864test clients::form::tests::ambiguous_creation_errors_require_explicit_recovery ... ok1865test clients::filters::tests::lifecycle_counts_share_query_and_currency_filters ... ok1866test clients::filters::tests::preferred_or_visible_project_currency_matches_but_query_still_applies ... ok1867test clients::filters::tests::clearing_query_preserves_selected_currency_and_lifecycle ... ok1868test invoices::preparation::fees::tests::refresh_preserves_missing_or_relabelled_edits_until_explicit_removal ... ok1869test projects::budget_display_tests::tag_filter_matches_identity_without_duplicates_or_name_collisions ... ok1870test invoices::preparation::fees::tests::fee_inputs_require_exact_amounts_and_an_explicit_positive_charge ... ok1871test invoices::defaults_form::tests::invoice_fields_bound_metadata_by_characters_and_reject_nul ... ok1872test invoices::defaults_form::tests::invoice_fields_reject_invalid_percentages_terms_and_second_tax ... ok1873test invoices::defaults_form::tests::invoice_fields_preserve_receipt_terms_and_empty_optional_percentages ... ok1874test clients::filters::tests::name_search_ignores_case_and_surrounding_whitespace ... ok1875test invoices::preparation::fees::tests::refresh_keeps_raw_edits_and_does_not_select_new_sources ... ok1876test clients::form::tests::clearing_a_rate_is_explicit_and_needs_no_currency_confirmation ... ok1877test clients::form::tests::untouched_fields_keep_zero_rate_and_original_snapshot ... ok1878test clients::form::tests::invalid_fields_are_not_rewritten_by_validation ... ok1879test project_creation::tests::unauthorized_catalog_cost_is_absent_from_serialized_options ... ok1880test clients::form::tests::rate_replacement_requires_confirmation_in_the_current_currency ... ok1881test project_creation::tests::unknown_draft_fields_are_rejected ... ok1882test projects::budget_display_tests::configured_scopes_sum_without_hiding_an_individual_overrun ... ok1883test projects::budget_display_tests::display_preserves_units_sign_and_large_integer_values ... ok1884test projects::budget_display_tests::unallocated_zero_and_overflow_budgets_are_not_conflated ... ok1885test invoices::defaults_form::tests::invoice_fields_preserve_exact_percentages_and_custom_terms ... ok1886test project_creation::tests::draft_roundtrip_preserves_incomplete_input_without_demo_data ... ok1887test invoice_detail_shows_saved_adjustments_and_payment_metadata ... ok1888test client_project_totals_failure_does_not_invent_zero_or_hide_project_links ... ok1889test client_project_failure_preserves_billing_and_invoices ... ok1890test client_detail_links_use_current_client_and_preserve_member_boundaries ... ok1891test navigating_between_invoice_ids_loads_the_current_invoice ... ok1892test client_navigation_cancels_previous_pending_invoice_panel ... ok1893test client_detail_distinguishes_unset_rate_from_known_zero_project_totals ... ok1894test failed_client_invoices_keep_identity_and_projects_without_claiming_empty_results ... ok1895test pending_or_failed_client_navigation_never_shows_previous_identity_or_work ... ok1896test member_client_detail_never_requests_invoices_or_displays_default_rates ... ok1897test pending_or_failed_navigation_never_shows_the_previous_invoice ... ok1898test empty_project_list_links_to_the_importer_route ... ok1899test project_creation_links_use_the_static_new_project_route ... ok1900test navigating_between_project_ids_loads_current_assignments_and_tasks ... ok1901test client_detail_navigation_loads_current_identity_billing_and_work ... ok1902test pending_or_failed_project_details_never_show_previous_metadata ... ok1903test pending_or_failed_project_assignments_never_show_previous_assignments ... ok19041905test result: ok. 44 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.29s19061907 Running tests/import_jobs_ui.rs (target/debug/deps/import_jobs_ui-f2067de91ab3ab7c)19081909running 35 tests1910test importers::presentation::tests::source_labels_do_not_guess_unknown_importers ... ok1911test importers::presentation::tests::states_and_phases_have_readable_unknown_fallbacks ... ok1912test importers::presentation::tests::summaries_distinguish_zero_skipped_and_mixed_outcomes ... ok1913test importers::presentation::tests::no_selection_does_not_claim_no_import_history ... ok1914test importers::presentation::tests::interrupted_report_is_partial_regardless_of_retry_prerequisites ... ok1915test submission_displays_its_acknowledged_state_before_status_polling_returns ... ok1916test progress_uses_observed_counts_and_readable_phase_without_an_eta ... ok1917test history_can_page_back_and_return_to_the_latest_imports ... ok1918test stale_confirmation_keeps_the_dialog_and_shows_the_error ... ok1919test retry_errors_are_visible_and_success_restarts_monitoring ... ok1920test unselected_connected_importer_does_not_claim_an_empty_history ... ok1921test pending_connect_is_single_submission_and_failure_keeps_a_recovery_action ... ok1922test missing_job_stops_polling_and_explains_that_status_is_unavailable ... ok1923test navigating_away_invalidates_a_pending_preview_confirmation ... ok1924test account_change_is_busy_then_reports_recoverable_authorization_failure ... ok1925test history_failure_can_be_refreshed_and_restores_an_active_job ... ok1926test selecting_another_job_drops_the_previous_pending_status_request ... ok1927test cancellation_errors_are_visible_and_acceptance_does_not_acknowledge_completion ... ok1928test reopening_importer_restores_queued_and_running_jobs_from_history ... ok1929test newly_submitted_failed_preview_cannot_be_confirmed ... ok1930test connection_management_groups_actions_and_never_promises_automatic_repair ... ok1931test historical_preview_is_read_only_and_selecting_another_job_clears_it ... ok1932test connection_picker_distinguishes_loading_unavailable_and_unconfigured ... ok1933test blocked_retry_keeps_partial_reports_and_explains_the_missing_prerequisite ... ok1934test replacing_a_file_during_preview_does_not_change_the_committed_source ... ok1935test account_change_explains_every_blocker ... ok1936test configured_unbound_connection_explains_read_only_access ... ok1937test failed_poll_can_resume_without_replaying_its_old_error ... ok1938test archived_report_shows_total_errors_and_a_job_scoped_download ... ok1939test account_change_confirmation_can_cancel_without_mutation_in_both_binding_states ... ok1940test api_preview_confirmation_is_bound_to_the_original_account_generation ... ok1941test failed_and_cancelled_history_shows_partial_outcomes_without_success_actions ... ok1942test connection_actions_prevent_duplicate_submissions_and_keep_errors_local ... ok1943test history_labels_selection_and_unknown_metadata_are_readable ... ok1944test result_copy_distinguishes_preview_zero_skipped_and_mixed_outcomes ... ok19451946test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.39s19471948 Running tests/integration.rs (target/debug/deps/integration-a2529603f2384e01)19491950running 36 tests1951test submitted_entries_cannot_be_updated ... ok1952test admin_changes_user_role ... ok1953test invoicing_update_skips_already_invoiced_entries ... ok1954test unassigned_user_cannot_create_entry ... ok1955test void_invoice_restores_entries ... ok1956test role_gating_member_vs_manager_vs_admin ... ok1957test project_spend_grouped_in_sql_matches_the_rust_fold ... ok1958test stopping_timer_records_start_minute ... ok1959test duplicate_invoice_numbers_rejected ... ok1960test deactivated_user_blocked_and_history_preserved ... ok1961test resubmit_after_approve_is_refused ... ok1962test rate_resolution_cascade ... ok1963test new_task_becomes_loggable_on_project ... ok1964test stop_timer_refuses_entry_that_left_open ... ok1965test reschedule_moves_open_entry_and_rejects_locked ... ok1966test one_timer_per_user_enforced ... ok1967test reject_after_approve_reopens_entries ... ok1968test submit_week_with_running_timer_is_refused ... ok1969test timer_start_stop_records_minutes ... ok1970test approval_hours_aggregate_billable_within_period ... ok1971test reorder_untimed_orders_and_moves_across_days ... ok1972test inactive_project_hidden_from_picker_but_kept_on_history ... ok1973test last_active_admin_cannot_be_removed ... ok1974test admin_creates_user_and_duplicate_rejected ... ok1975test start_minute_round_trips_and_is_constrained ... ok1976test approval_workflow_approve_and_reject ... ok1977test approved_entries_are_invoiceable ... ok1978test totals_unaffected_by_start_minute ... ok1979test a_second_running_timer_is_refused_by_the_insert ... ok1980test invoiced_entries_cannot_be_rebilled ... ok1981test the_long_timer_sweep_claims_each_timer_once ... ok1982test rounding_applied_on_submit ... ok1983test line_amount_cents_sql_and_rust_reject_final_overflow ... ok1984test generate_invoice_totals_match has been running for over 60 seconds1985test line_amount_cents_sql_matches_rust has been running for over 60 seconds1986test timer_under_a_minute_records_zero has been running for over 60 seconds1987test generate_invoice_totals_match ... ok1988test timer_under_a_minute_records_zero ... ok1989test line_amount_cents_sql_matches_rust ... ok19901991test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 64.71s19921993 Running tests/new_project_screen.rs (target/debug/deps/new_project_screen-e6235a8dbe701f5c)19941995running 45 tests1996test new_project::tests::a_rejected_creation_can_be_edited_but_an_uncertain_commit_must_be_retried ... ok1997test new_project::basics::tests::a_batch_that_would_exceed_the_tag_limit_is_rejected ... ok1998test new_project::basics::tests::overlong_tags_are_rejected_without_truncation ... ok1999test new_project::team::tests::exceeding_the_team_limit_does_not_partially_add_people ... ok2000test new_project::draft::tests::context_prefills_only_a_new_form_without_fixing_its_currency ... ok2001test new_project::draft::tests::a_validation_rejection_allows_corrected_input_at_the_same_revision ... ok2002test new_project::team::tests::removing_a_member_keeps_an_empty_restricted_task_restricted ... ok2003test new_project::team::tests::adding_everyone_deduplicates_without_replacing_project_overrides ... ok2004test new_project::draft::tests::any_saved_draft_wins_over_context_including_empty_or_matching_client ... ok2005test new_project::draft::tests::resuming_preserves_the_server_identity_and_incomplete_fields ... ok2006test new_project::draft::tests::an_empty_form_is_not_reported_as_saved ... ok2007test shared_input_without_options_keeps_its_original_class_and_external_label ... ok2008test new_project::basics::tests::tags_trim_and_deduplicate_without_changing_existing_spelling ... ok2009test new_project::draft::tests::a_retry_keeps_the_unacknowledged_payload_and_revision ... ok2010test new_project::draft::tests::a_mismatched_acknowledgement_does_not_lose_pending_input ... ok2011test new_project::basics::tests::a_full_tag_list_still_accepts_a_duplicate ... ok2012test new_project::basics::tests::tag_length_counts_characters_instead_of_bytes ... ok2013test an_input_can_link_its_validation_error_without_changing_its_value_or_class ... ok2014test navigation_icons_keep_default_dimensions_and_allow_opt_in_sizing ... ok2015test checkbox_error_identity_is_opt_in_without_changing_its_behavior ... ok2016test compact_input_adds_utilities_and_accessible_name_without_losing_native_state ... ok2017test textarea_and_selector_error_links_are_opt_in_and_preserve_controls ... ok2018test project_creation::tests::draft_roundtrip_preserves_incomplete_input_without_demo_data ... ok2019test new_project::billing::tests::budget_errors_target_a_control_that_can_be_corrected ... ok2020test time_and_materials_restores_project_rate_and_budget_without_enabling_unconfigured_email ... ok2021test client_and_currency_use_labelled_form_dropdowns ... ok2022test empty_form_has_labelled_fields_no_demo_data_and_no_spurious_save ... ok2023test project_creation::tests::unauthorized_catalog_cost_is_absent_from_serialized_options ... ok2024test project_creation::tests::unknown_draft_fields_are_rejected ... ok2025test new_project::tests::only_known_validation_fields_can_target_a_control ... ok2026test administrative_notes_only_render_for_an_authorized_editor ... ok2027test recovered_tags_use_the_shared_inline_chip_field_without_saving ... ok2028test recovered_tasks_and_people_outside_the_catalog_page_keep_their_identity ... ok2029test assignment_controls_reuse_searchable_picker_and_compact_task_entry ... ok2030test nonbillable_budget_picker_omits_fee_modes ... ok2031test a_real_code_suggestion_does_not_replace_recovered_input ... ok2032test planning_dates_restore_readable_shared_calendar_fields_without_saving ... ok2033test recovered_client_outside_the_catalog_page_keeps_its_currency_and_name ... ok2034test nonbillable_hides_fee_rate_and_invoice_controls_without_erasing_the_draft ... ok2035test billing_and_visibility_keep_native_radios_inside_designed_option_cards ... ok2036test edit_prefills_legacy_currency_and_type_without_reading_or_saving_a_draft ... ok2037test invoice_defaults_restore_custom_terms_and_named_second_tax ... ok2038test fixed_fee_restores_each_schedule_and_never_shows_hourly_rate_controls ... ok2039test tasks_and_team_restore_scoped_settings_without_exposing_costs_to_managers ... ok2040test task_rate_placeholders_use_source_currency_not_workspace_currency ... ok20412042test result: ok. 45 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.62s20432044 Running tests/timer_widget.rs (target/debug/deps/timer_widget-c2ad097755860161)20452046running 1 test2047test timer_names_reuse_lookups_and_follow_resource_changes ... ok20482049test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s20502051 Running tests/trigger_utilities.rs (target/debug/deps/trigger_utilities-3dff9138a2d8947c)20522053running 8 tests2054test compact_mixed_checkbox_keeps_an_accessible_name ... ok2055test combobox_keeps_compact_defaults ... ok2056test menu_keeps_compact_defaults ... ok2057test checkbox_keeps_labelled_unchecked_defaults ... ok2058test disabled_checked_checkbox_is_natively_disabled ... ok2059test combobox_composes_trigger_utilities ... ok2060test menu_composes_trigger_utilities ... ok2061test menu_can_disable_its_native_trigger ... ok20622063test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s20642065waiting for server to shut down.... done2066server stopped2067buildPhase completed in 28 minutes 59 seconds