Skip to content

Commit

Permalink
More tests
Browse files Browse the repository at this point in the history
  • Loading branch information
sergiupuhalschi-rdx committed Jan 23, 2025
1 parent 736f880 commit dcb2a9a
Showing 1 changed file with 66 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1612,6 +1612,72 @@ mod test_invalid {
);
}

#[test]
fn factor_source_already_present() {
let sut = SUT::sample_strict_with_auth_signing();
sut.add_factor_source_to_primary_threshold(
FactorSourceID::sample_device(),
)
.add_factor_source_to_recovery_override(FactorSourceID::sample_ledger())
.add_factor_source_to_confirmation_override(
FactorSourceID::sample_ledger_other(),
);

let res = sut.validation_for_addition_of_factor_source_to_primary_threshold_for_each(
vec![FactorSourceID::sample_device(),]
);

sut.add_factor_source_to_primary_threshold(
FactorSourceID::sample_device(),
); // did not get added

assert_eq!(
res,
vec![FactorSourceInRoleBuilderValidationStatus::forever_invalid(
RoleKind::Primary,
FactorSourceID::sample_device(),
ForeverInvalidReason::FactorSourceAlreadyPresent
)]
);

assert!(sut.validate().is_none(),);
assert_eq!(sut.status(), SecurityShieldBuilderStatus::Strong);
}

#[test]
fn primary_cannot_have_password_in_override_list() {
let sut = SUT::sample_strict_with_auth_signing();
sut.add_factor_source_to_primary_threshold(
FactorSourceID::sample_device(),
)
.add_factor_source_to_recovery_override(FactorSourceID::sample_ledger())
.add_factor_source_to_confirmation_override(
FactorSourceID::sample_ledger_other(),
);

let is_valid_or_can_be = sut.addition_of_factor_source_of_kind_to_primary_override_is_valid_or_can_be(FactorSourceKind::Password);
let validation_res = sut.validation_for_addition_of_factor_source_to_primary_override_for_each(
vec![FactorSourceID::sample_password(),]
);

sut.add_factor_source_to_primary_override(
FactorSourceID::sample_password(),
); // did not get added

assert!(!is_valid_or_can_be);
assert_eq!(
validation_res,
vec![FactorSourceInRoleBuilderValidationStatus::forever_invalid(
RoleKind::Primary,
FactorSourceID::sample_password(),
ForeverInvalidReason::PrimaryCannotHavePasswordInOverrideList
)]
);

assert!(sut.validate().is_none(),);
assert_eq!(sut.status(), SecurityShieldBuilderStatus::Strong);
}

#[test]
fn single_factor_used_in_primary_must_not_be_used_in_any_other_role_in_recovery(
) {
Expand Down

0 comments on commit dcb2a9a

Please sign in to comment.