1
0
mirror of https://github.com/bitwarden/server.git synced 2025-06-30 07:36:14 -05:00

[PM-18221] Update credited user's billing location when purchasing premium subscription (#5393)

* Moved user crediting to PremiumUserBillingService

* Fix tests
This commit is contained in:
Alex Morask
2025-02-12 09:00:52 -05:00
committed by GitHub
parent 02262476d6
commit 9c0f9cf43d
5 changed files with 102 additions and 15 deletions

View File

@ -3,6 +3,7 @@ using Bit.Billing.Controllers;
using Bit.Billing.Test.Utilities;
using Bit.Core.AdminConsole.Entities;
using Bit.Core.AdminConsole.Repositories;
using Bit.Core.Billing.Services;
using Bit.Core.Entities;
using Bit.Core.Enums;
using Bit.Core.Repositories;
@ -33,6 +34,7 @@ public class PayPalControllerTests
private readonly ITransactionRepository _transactionRepository = Substitute.For<ITransactionRepository>();
private readonly IUserRepository _userRepository = Substitute.For<IUserRepository>();
private readonly IProviderRepository _providerRepository = Substitute.For<IProviderRepository>();
private readonly IPremiumUserBillingService _premiumUserBillingService = Substitute.For<IPremiumUserBillingService>();
private const string _defaultWebhookKey = "webhook-key";
@ -385,8 +387,6 @@ public class PayPalControllerTests
_userRepository.GetByIdAsync(userId).Returns(user);
_paymentService.CreditAccountAsync(user, 48M).Returns(true);
var controller = ConfigureControllerContextWith(logger, _defaultWebhookKey, ipnBody);
var result = await controller.PostIpn();
@ -398,9 +398,7 @@ public class PayPalControllerTests
transaction.UserId == userId &&
transaction.Amount == 48M));
await _paymentService.Received(1).CreditAccountAsync(user, 48M);
await _userRepository.Received(1).ReplaceAsync(user);
await _premiumUserBillingService.Received(1).Credit(user, 48M);
await _mailService.Received(1).SendAddedCreditAsync(billingEmail, 48M);
}
@ -544,7 +542,8 @@ public class PayPalControllerTests
_paymentService,
_transactionRepository,
_userRepository,
_providerRepository);
_providerRepository,
_premiumUserBillingService);
var httpContext = new DefaultHttpContext();