Skip to content

Commit

Permalink
Some refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
dmitrylavrenov committed Sep 16, 2024
1 parent ac66104 commit 6ac7f94
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 33 deletions.
31 changes: 15 additions & 16 deletions crates/robonode-client/src/authenticate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ mod tests {
),
];

for case in cases {
for (status_code, body, expected_error) in cases {
let mock_server = MockServer::start().await;

let sample_request = AuthenticateRequest {
Expand All @@ -258,7 +258,7 @@ mod tests {
};

let response =
ResponseTemplate::new(case.0).set_body_json(mkerr_before_2023_05(case.1));
ResponseTemplate::new(status_code).set_body_json(mkerr_before_2023_05(body));

Mock::given(matchers::method("POST"))
.and(matchers::path("/authenticate"))
Expand All @@ -273,7 +273,7 @@ mod tests {
};

let actual_error = client.authenticate(sample_request).await.unwrap_err();
assert_matches!(actual_error, Error::Call(err) if err == case.2);
assert_matches!(actual_error, Error::Call(err) if err == expected_error);
}
}

Expand All @@ -288,55 +288,54 @@ mod tests {
(
StatusCode::BAD_REQUEST,
"AUTHENTICATE_INVALID_LIVENESS_DATA",
AuthenticateError::InvalidLivenessData,
ResponseIncludesBlob::No,
AuthenticateError::InvalidLivenessData,
),
(
StatusCode::NOT_FOUND,
"AUTHENTICATE_PERSON_NOT_FOUND",
AuthenticateError::PersonNotFound,
ResponseIncludesBlob::Yes,
AuthenticateError::PersonNotFound,
),
(
StatusCode::FORBIDDEN,
"AUTHENTICATE_FACE_SCAN_REJECTED",
AuthenticateError::FaceScanRejected,
ResponseIncludesBlob::Yes,
AuthenticateError::FaceScanRejected,
),
(
StatusCode::FORBIDDEN,
"AUTHENTICATE_SIGNATURE_INVALID",
AuthenticateError::SignatureInvalid,
ResponseIncludesBlob::Yes,
AuthenticateError::SignatureInvalid,
),
(
StatusCode::INTERNAL_SERVER_ERROR,
"LOGIC_INTERNAL_ERROR",
AuthenticateError::LogicInternal,
ResponseIncludesBlob::Yes,
AuthenticateError::LogicInternal,
),
(
StatusCode::BAD_REQUEST,
"MY_ERR_CODE",
AuthenticateError::UnknownCode("MY_ERR_CODE".to_owned()),
ResponseIncludesBlob::No,
AuthenticateError::UnknownCode("MY_ERR_CODE".to_owned()),
),
];

for case in cases {
for (status_code, body, response_includes_blob, expected_error) in cases {
let mock_server = MockServer::start().await;

let sample_request = AuthenticateRequest {
liveness_data: b"dummy liveness data",
liveness_data_signature: b"123",
};

let response = match case.3 {
ResponseIncludesBlob::Yes => {
ResponseTemplate::new(case.0).set_body_json(mkerr(case.1, "scan result blob"))
}
let response = match response_includes_blob {
ResponseIncludesBlob::Yes => ResponseTemplate::new(status_code)
.set_body_json(mkerr(body, "scan result blob")),
ResponseIncludesBlob::No => {
ResponseTemplate::new(case.0).set_body_json(mkerr_before_2023_05(case.1))
ResponseTemplate::new(status_code).set_body_json(mkerr_before_2023_05(body))
}
};

Expand All @@ -353,7 +352,7 @@ mod tests {
};

let actual_error = client.authenticate(sample_request).await.unwrap_err();
assert_matches!(actual_error, Error::Call(err) if err == case.2);
assert_matches!(actual_error, Error::Call(err) if err == expected_error);
}
}

Expand Down
33 changes: 16 additions & 17 deletions crates/robonode-client/src/enroll.rs
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ mod tests {
),
];

for case in cases {
for (status_code, body, expected_error) in cases {
let mock_server = MockServer::start().await;

let sample_request = EnrollRequest {
Expand All @@ -212,7 +212,7 @@ mod tests {
};

let response =
ResponseTemplate::new(case.0).set_body_json(mkerr_before_2023_05(case.1));
ResponseTemplate::new(status_code).set_body_json(mkerr_before_2023_05(body));

Mock::given(matchers::method("POST"))
.and(matchers::path("/enroll"))
Expand All @@ -227,7 +227,7 @@ mod tests {
};

let actual_error = client.enroll(sample_request).await.unwrap_err();
assert_matches!(actual_error, Error::Call(err) if err == case.2);
assert_matches!(actual_error, Error::Call(err) if err == expected_error);
}
}

Expand All @@ -242,48 +242,48 @@ mod tests {
(
StatusCode::BAD_REQUEST,
"ENROLL_INVALID_PUBLIC_KEY",
EnrollError::InvalidPublicKey,
ResponseIncludesBlob::No,
EnrollError::InvalidPublicKey,
),
(
StatusCode::BAD_REQUEST,
"ENROLL_INVALID_LIVENESS_DATA",
EnrollError::InvalidLivenessData,
ResponseIncludesBlob::No,
EnrollError::InvalidLivenessData,
),
(
StatusCode::FORBIDDEN,
"ENROLL_FACE_SCAN_REJECTED",
EnrollError::FaceScanRejected,
ResponseIncludesBlob::Yes,
EnrollError::FaceScanRejected,
),
(
StatusCode::CONFLICT,
"ENROLL_PUBLIC_KEY_ALREADY_USED",
EnrollError::PublicKeyAlreadyUsed,
ResponseIncludesBlob::No,
EnrollError::PublicKeyAlreadyUsed,
),
(
StatusCode::CONFLICT,
"ENROLL_PERSON_ALREADY_ENROLLED",
EnrollError::PersonAlreadyEnrolled,
ResponseIncludesBlob::Yes,
EnrollError::PersonAlreadyEnrolled,
),
(
StatusCode::INTERNAL_SERVER_ERROR,
"LOGIC_INTERNAL_ERROR",
EnrollError::LogicInternal,
ResponseIncludesBlob::Yes,
EnrollError::LogicInternal,
),
(
StatusCode::BAD_REQUEST,
"MY_ERR_CODE",
EnrollError::UnknownCode("MY_ERR_CODE".to_owned()),
ResponseIncludesBlob::No,
EnrollError::UnknownCode("MY_ERR_CODE".to_owned()),
),
];

for case in cases {
for (status_code, body, response_includes_blob, expected_error) in cases {
let mock_server = MockServer::start().await;

let sample_request = EnrollRequest {
Expand All @@ -292,12 +292,11 @@ mod tests {
public_key: b"123",
};

let response = match case.3 {
ResponseIncludesBlob::Yes => {
ResponseTemplate::new(case.0).set_body_json(mkerr(case.1, "scan result blob"))
}
let response = match response_includes_blob {
ResponseIncludesBlob::Yes => ResponseTemplate::new(status_code)
.set_body_json(mkerr(body, "scan result blob")),
ResponseIncludesBlob::No => {
ResponseTemplate::new(case.0).set_body_json(mkerr_before_2023_05(case.1))
ResponseTemplate::new(status_code).set_body_json(mkerr_before_2023_05(body))
}
};

Expand All @@ -314,7 +313,7 @@ mod tests {
};

let actual_error = client.enroll(sample_request).await.unwrap_err();
assert_matches!(actual_error, Error::Call(err) if err == case.2);
assert_matches!(actual_error, Error::Call(err) if err == expected_error);
}
}

Expand Down

0 comments on commit 6ac7f94

Please sign in to comment.