fix(connector): fix wordline tests and visa card issuer support (#688)

This commit is contained in:
Arjun Karthik
2023-02-28 18:27:43 +05:30
committed by GitHub
parent 5449ce463b
commit d0c9dded8b
3 changed files with 16 additions and 7 deletions

View File

@ -1,5 +1,6 @@
use std::collections::HashMap; use std::collections::HashMap;
use common_utils::pii;
use error_stack::{report, IntoReport, ResultExt}; use error_stack::{report, IntoReport, ResultExt};
use masking::Secret; use masking::Secret;
use once_cell::sync::Lazy; use once_cell::sync::Lazy;
@ -212,7 +213,11 @@ impl CardData for api::Card {
Secret::new(year[year.len() - 2..].to_string()) Secret::new(year[year.len() - 2..].to_string())
} }
fn get_card_issuer(&self) -> Result<CardIssuer, Error> { fn get_card_issuer(&self) -> Result<CardIssuer, Error> {
get_card_issuer(self.card_number.peek().clone().as_str()) let card: Secret<String, pii::CardNumber> = self
.card_number
.clone()
.map(|card| card.split_whitespace().collect());
get_card_issuer(card.peek().clone().as_str())
} }
} }

View File

@ -127,6 +127,7 @@ impl TryFrom<utils::CardIssuer> for Gateway {
utils::CardIssuer::AmericanExpress => Ok(Self::Amex), utils::CardIssuer::AmericanExpress => Ok(Self::Amex),
utils::CardIssuer::Master => Ok(Self::MasterCard), utils::CardIssuer::Master => Ok(Self::MasterCard),
utils::CardIssuer::Discover => Ok(Self::Discover), utils::CardIssuer::Discover => Ok(Self::Discover),
utils::CardIssuer::Visa => Ok(Self::Visa),
_ => Err(errors::ConnectorError::NotSupported { _ => Err(errors::ConnectorError::NotSupported {
payment_method: format!("{issuer}"), payment_method: format!("{issuer}"),
connector: "worldline", connector: "worldline",

View File

@ -98,7 +98,7 @@ async fn should_requires_manual_authorization() {
enums::CaptureMethod::Manual, enums::CaptureMethod::Manual,
); );
let response = WorldlineTest {} let response = WorldlineTest {}
.make_payment(authorize_data, WorldlineTest::get_payment_info()) .authorize_payment(authorize_data, WorldlineTest::get_payment_info())
.await; .await;
assert_eq!(response.unwrap().status, enums::AttemptStatus::Authorized); assert_eq!(response.unwrap().status, enums::AttemptStatus::Authorized);
} }
@ -133,7 +133,10 @@ async fn should_throw_not_implemented_for_unsupported_issuer() {
.await; .await;
assert_eq!( assert_eq!(
*response.unwrap_err().current_context(), *response.unwrap_err().current_context(),
errors::ConnectorError::NotImplemented(String::from("Payment Method")) errors::ConnectorError::NotSupported {
payment_method: "Maestro".to_string(),
connector: "worldline"
}
) )
} }
@ -195,7 +198,7 @@ async fn should_sync_manual_auth_payment() {
enums::CaptureMethod::Manual, enums::CaptureMethod::Manual,
); );
let response = connector let response = connector
.make_payment(authorize_data, WorldlineTest::get_payment_info()) .authorize_payment(authorize_data, WorldlineTest::get_payment_info())
.await .await
.unwrap(); .unwrap();
assert_eq!(response.status, enums::AttemptStatus::Authorized); assert_eq!(response.status, enums::AttemptStatus::Authorized);
@ -261,7 +264,7 @@ async fn should_capture_authorized_payment() {
enums::CaptureMethod::Manual, enums::CaptureMethod::Manual,
); );
let response = connector let response = connector
.make_payment(authorize_data, WorldlineTest::get_payment_info()) .authorize_payment(authorize_data, WorldlineTest::get_payment_info())
.await .await
.unwrap(); .unwrap();
assert_eq!(response.status, enums::AttemptStatus::Authorized); assert_eq!(response.status, enums::AttemptStatus::Authorized);
@ -300,7 +303,7 @@ async fn should_cancel_unauthorized_payment() {
enums::CaptureMethod::Manual, enums::CaptureMethod::Manual,
); );
let response = connector let response = connector
.make_payment(authorize_data, WorldlineTest::get_payment_info()) .authorize_payment(authorize_data, WorldlineTest::get_payment_info())
.await .await
.unwrap(); .unwrap();
assert_eq!(response.status, enums::AttemptStatus::Authorized); assert_eq!(response.status, enums::AttemptStatus::Authorized);
@ -360,7 +363,7 @@ async fn should_fail_refund_with_invalid_payment_status() {
enums::CaptureMethod::Manual, enums::CaptureMethod::Manual,
); );
let response = connector let response = connector
.make_payment(authorize_data, WorldlineTest::get_payment_info()) .authorize_payment(authorize_data, WorldlineTest::get_payment_info())
.await .await
.unwrap(); .unwrap();
assert_eq!(response.status, enums::AttemptStatus::Authorized); assert_eq!(response.status, enums::AttemptStatus::Authorized);