1
0
mirror of https://github.com/bitwarden/server.git synced 2024-11-23 12:25:16 +01:00

fix tests

This commit is contained in:
Jonas Hendrickx 2024-11-19 16:40:18 +01:00
parent 5a27e8e06c
commit 8fedd646c3
2 changed files with 34 additions and 13 deletions

View File

@ -3,6 +3,7 @@ using Bit.Core.AdminConsole.Entities.Provider;
using Bit.Core.Billing.Constants; using Bit.Core.Billing.Constants;
using Bit.Core.Billing.Models; using Bit.Core.Billing.Models;
using Bit.Core.Billing.Models.Business; using Bit.Core.Billing.Models.Business;
using Bit.Core.Billing.Services;
using Bit.Core.Entities; using Bit.Core.Entities;
using Bit.Core.Enums; using Bit.Core.Enums;
using Bit.Core.Exceptions; using Bit.Core.Exceptions;
@ -32,6 +33,7 @@ public class StripePaymentService : IPaymentService
private readonly IStripeAdapter _stripeAdapter; private readonly IStripeAdapter _stripeAdapter;
private readonly IGlobalSettings _globalSettings; private readonly IGlobalSettings _globalSettings;
private readonly IFeatureService _featureService; private readonly IFeatureService _featureService;
private readonly ITaxService _taxService;
public StripePaymentService( public StripePaymentService(
ITransactionRepository transactionRepository, ITransactionRepository transactionRepository,
@ -40,7 +42,8 @@ public class StripePaymentService : IPaymentService
IStripeAdapter stripeAdapter, IStripeAdapter stripeAdapter,
Braintree.IBraintreeGateway braintreeGateway, Braintree.IBraintreeGateway braintreeGateway,
IGlobalSettings globalSettings, IGlobalSettings globalSettings,
IFeatureService featureService) IFeatureService featureService,
ITaxService taxService)
{ {
_transactionRepository = transactionRepository; _transactionRepository = transactionRepository;
_logger = logger; _logger = logger;
@ -49,6 +52,7 @@ public class StripePaymentService : IPaymentService
_btGateway = braintreeGateway; _btGateway = braintreeGateway;
_globalSettings = globalSettings; _globalSettings = globalSettings;
_featureService = featureService; _featureService = featureService;
_taxService = taxService;
} }
public async Task<string> PurchaseOrganizationAsync(Organization org, PaymentMethodType paymentMethodType, public async Task<string> PurchaseOrganizationAsync(Organization org, PaymentMethodType paymentMethodType,
@ -112,6 +116,20 @@ public class StripePaymentService : IPaymentService
Subscription subscription; Subscription subscription;
try try
{ {
if (taxInfo.TaxIdNumber != null && taxInfo.TaxIdType == null)
{
taxInfo.TaxIdType = _taxService.GetStripeTaxCode(taxInfo.BillingAddressCountry,
taxInfo.TaxIdNumber);
if (taxInfo.TaxIdType == null)
{
_logger.LogWarning("Could not infer tax ID type in country '{Country}' with tax ID '{TaxID}'.",
taxInfo.BillingAddressCountry,
taxInfo.TaxIdNumber);
throw new BadRequestException("billingTaxIdTypeInferenceError");
}
}
var customerCreateOptions = new CustomerCreateOptions var customerCreateOptions = new CustomerCreateOptions
{ {
Description = org.DisplayBusinessName(), Description = org.DisplayBusinessName(),
@ -146,12 +164,9 @@ public class StripePaymentService : IPaymentService
City = taxInfo?.BillingAddressCity, City = taxInfo?.BillingAddressCity,
State = taxInfo?.BillingAddressState, State = taxInfo?.BillingAddressState,
}, },
TaxIdData = taxInfo?.HasTaxId != true TaxIdData = taxInfo.HasTaxId
? null ? [new CustomerTaxIdDataOptions { Type = taxInfo.TaxIdType, Value = taxInfo.TaxIdNumber }]
: : null
[
new CustomerTaxIdDataOptions { Type = taxInfo.TaxIdType, Value = taxInfo.TaxIdNumber, }
],
}; };
customerCreateOptions.AddExpand("tax"); customerCreateOptions.AddExpand("tax");

View File

@ -77,7 +77,8 @@ public class StripePaymentServiceTests
c.Address.Line2 == taxInfo.BillingAddressLine2 && c.Address.Line2 == taxInfo.BillingAddressLine2 &&
c.Address.City == taxInfo.BillingAddressCity && c.Address.City == taxInfo.BillingAddressCity &&
c.Address.State == taxInfo.BillingAddressState && c.Address.State == taxInfo.BillingAddressState &&
c.TaxIdData == null c.TaxIdData.First().Value == taxInfo.TaxIdNumber &&
c.TaxIdData.First().Type == taxInfo.TaxIdType
)); ));
await stripeAdapter.Received().SubscriptionCreateAsync(Arg.Is<Stripe.SubscriptionCreateOptions>(s => await stripeAdapter.Received().SubscriptionCreateAsync(Arg.Is<Stripe.SubscriptionCreateOptions>(s =>
@ -134,7 +135,8 @@ public class StripePaymentServiceTests
c.Address.Line2 == taxInfo.BillingAddressLine2 && c.Address.Line2 == taxInfo.BillingAddressLine2 &&
c.Address.City == taxInfo.BillingAddressCity && c.Address.City == taxInfo.BillingAddressCity &&
c.Address.State == taxInfo.BillingAddressState && c.Address.State == taxInfo.BillingAddressState &&
c.TaxIdData == null c.TaxIdData.First().Value == taxInfo.TaxIdNumber &&
c.TaxIdData.First().Type == taxInfo.TaxIdType
)); ));
await stripeAdapter.Received().SubscriptionCreateAsync(Arg.Is<Stripe.SubscriptionCreateOptions>(s => await stripeAdapter.Received().SubscriptionCreateAsync(Arg.Is<Stripe.SubscriptionCreateOptions>(s =>
@ -190,7 +192,8 @@ public class StripePaymentServiceTests
c.Address.Line2 == taxInfo.BillingAddressLine2 && c.Address.Line2 == taxInfo.BillingAddressLine2 &&
c.Address.City == taxInfo.BillingAddressCity && c.Address.City == taxInfo.BillingAddressCity &&
c.Address.State == taxInfo.BillingAddressState && c.Address.State == taxInfo.BillingAddressState &&
c.TaxIdData == null c.TaxIdData.First().Value == taxInfo.TaxIdNumber &&
c.TaxIdData.First().Type == taxInfo.TaxIdType
)); ));
await stripeAdapter.Received().SubscriptionCreateAsync(Arg.Is<Stripe.SubscriptionCreateOptions>(s => await stripeAdapter.Received().SubscriptionCreateAsync(Arg.Is<Stripe.SubscriptionCreateOptions>(s =>
@ -247,7 +250,8 @@ public class StripePaymentServiceTests
c.Address.Line2 == taxInfo.BillingAddressLine2 && c.Address.Line2 == taxInfo.BillingAddressLine2 &&
c.Address.City == taxInfo.BillingAddressCity && c.Address.City == taxInfo.BillingAddressCity &&
c.Address.State == taxInfo.BillingAddressState && c.Address.State == taxInfo.BillingAddressState &&
c.TaxIdData == null c.TaxIdData.First().Value == taxInfo.TaxIdNumber &&
c.TaxIdData.First().Type == taxInfo.TaxIdType
)); ));
await stripeAdapter.Received().SubscriptionCreateAsync(Arg.Is<Stripe.SubscriptionCreateOptions>(s => await stripeAdapter.Received().SubscriptionCreateAsync(Arg.Is<Stripe.SubscriptionCreateOptions>(s =>
@ -441,7 +445,8 @@ public class StripePaymentServiceTests
c.Address.Line2 == taxInfo.BillingAddressLine2 && c.Address.Line2 == taxInfo.BillingAddressLine2 &&
c.Address.City == taxInfo.BillingAddressCity && c.Address.City == taxInfo.BillingAddressCity &&
c.Address.State == taxInfo.BillingAddressState && c.Address.State == taxInfo.BillingAddressState &&
c.TaxIdData == null c.TaxIdData.First().Value == taxInfo.TaxIdNumber &&
c.TaxIdData.First().Type == taxInfo.TaxIdType
)); ));
await stripeAdapter.Received().SubscriptionCreateAsync(Arg.Is<Stripe.SubscriptionCreateOptions>(s => await stripeAdapter.Received().SubscriptionCreateAsync(Arg.Is<Stripe.SubscriptionCreateOptions>(s =>
@ -510,7 +515,8 @@ public class StripePaymentServiceTests
c.Address.Line2 == taxInfo.BillingAddressLine2 && c.Address.Line2 == taxInfo.BillingAddressLine2 &&
c.Address.City == taxInfo.BillingAddressCity && c.Address.City == taxInfo.BillingAddressCity &&
c.Address.State == taxInfo.BillingAddressState && c.Address.State == taxInfo.BillingAddressState &&
c.TaxIdData == null c.TaxIdData.First().Value == taxInfo.TaxIdNumber &&
c.TaxIdData.First().Type == taxInfo.TaxIdType
)); ));
await stripeAdapter.Received().SubscriptionCreateAsync(Arg.Is<Stripe.SubscriptionCreateOptions>(s => await stripeAdapter.Received().SubscriptionCreateAsync(Arg.Is<Stripe.SubscriptionCreateOptions>(s =>