Skip to content

[Stripe] Implement Refund event listener in Stripe webhook #625

[Stripe] Implement Refund event listener in Stripe webhook

[Stripe] Implement Refund event listener in Stripe webhook #625

GitHub Actions / JEST Tests succeeded Oct 29, 2023 in 1s

JEST Tests ✅

Tests passed successfully

✅ test-results.xml

257 tests were completed in 77s with 257 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
AccountController 2✅ 1s
AccountService 1✅ 1s
AppController 1✅ 470ms
AppService 1✅ 315ms
AuthService 13✅ 2s
BankaccountController 1✅ 1s
BankaccountService 1✅ 1s
BankTransactionsController 4✅ 2s
BankTransactionsFileController 1✅ 3s
BankTransactionsFileService 1✅ 2s
BankTransactionsService 1✅ 1s
BenefactorController 1✅ 626ms
BenefactorService 1✅ 370ms
BeneficiaryController 8✅ 1s
BeneficiaryService 1✅ 590ms
CampaignController 18✅ 2s
CampaignFileController 4✅ 1s
CampaignFileController 4✅ 1s
CampaignFileService 1✅ 1s
CampaignFileService 1✅ 1s
CampaignNewsController 1✅ 1s
CampaignNewsService 1✅ 981ms
CampaignService 2✅ 977ms
CampaignTypesController 7✅ 745ms
CampaignTypesService 1✅ 484ms
CityController 7✅ 700ms
CityService 1✅ 367ms
CompanyController 1✅ 2s
CompanyService 1✅ 364ms
CoordinatorController 5✅ 647ms
CoordinatorService 4✅ 412ms
CountryController 8✅ 744ms
CountryService 1✅ 351ms
DonationsController 7✅ 2s
DonationsService 1✅ 1s
DonationWishController 1✅ 633ms
DonationWishService 1✅ 478ms
EmailService enabled 7✅ 1s
ExpensesController 7✅ 1s
ExpensesService 1✅ 834ms
HealthController 1✅ 542ms
ImportTransactionsTask 15✅ 2s
ImportTransactionsTask 2✅ 1s
InfoRequestController 1✅ 1s
InfoRequestService 1✅ 689ms
IrregularityController 1✅ 903ms
IrregularityFileController 1✅ 1s
IrregularityFileService 1✅ 662ms
IrregularityService 1✅ 656ms
LoginController 2✅ 1s
MarketingNotificationsController 23✅ 4s
OrganizerController 1✅ 618ms
OrganizerService 1✅ 406ms
PaypalController 1✅ 1s
PaypalService 1✅ 991ms
PersonController 1✅ 1s
PersonService with enable client list 5✅ 785ms
podkrepiTypes 1✅ 167ms
PrismaService 1✅ 351ms
ProviderLoginController 2✅ 2s
RecurringDonationController 1✅ 710ms
RecurringDonationService 6✅ 786ms
RefreshController 2✅ 1s
RegisterController 2✅ 977ms
StripePaymentService 15✅ 2s
SupportController 3✅ 1s
SupportService 1✅ 724ms
TransferController 11✅ 884ms
TransferService 1✅ 370ms
VaultController 8✅ 1s
VaultService 1✅ 1s
WithdrawalController 11✅ 1s
WithdrawalService 1✅ 1s

✅ AccountController

AccountController should be defined
  ✅ AccountController should be defined
AccountController should create person for authenticated user
  ✅ AccountController should create person for authenticated user

✅ AccountService

AccountService should be defined
  ✅ AccountService should be defined

✅ AppController

AppController getData should return "Welcome to Podkrepi.bg Backend API! See Swagger docs at /swagger"
  ✅ AppController getData should return "Welcome to Podkrepi.bg Backend API! See Swagger docs at /swagger"

✅ AppService

AppService getData should return "Welcome to Podkrepi.bg Backend API! See Swagger docs at /swagger"
  ✅ AppService getData should return "Welcome to Podkrepi.bg Backend API! See Swagger docs at /swagger"

✅ AuthService

AuthService should be defined
  ✅ AuthService should be defined
AuthService issueToken should call auth
  ✅ AuthService issueToken should call auth
AuthService token endpoint should call tokenEndpoint
  ✅ AuthService token endpoint should call tokenEndpoint
AuthService refresh should call issueTokenFromRefresh
  ✅ AuthService refresh should call issueTokenFromRefresh
AuthService provider token call should call issueTokenFromProvider
  ✅ AuthService provider token call should call issueTokenFromProvider
AuthService login should call issueGrant - without updating person
  ✅ AuthService login should call issueGrant - without updating person
AuthService login should call issueGrant - with updating person due to keycloak mismatch
  ✅ AuthService login should call issueGrant - with updating person due to keycloak mismatch
AuthService login should call issueGrant - with creating person due to not being found
  ✅ AuthService login should call issueGrant - with creating person due to not being found
AuthService login should handle bad password on login
  ✅ AuthService login should handle bad password on login
AuthService createUser should call keycloak and prisma
  ✅ AuthService createUser should call keycloak and prisma
AuthService createUser should handle bad password on registration
  ✅ AuthService createUser should handle bad password on registration
AuthService createUser should subscribe email to marketing list if consent is given
  ✅ AuthService createUser should subscribe email to marketing list if consent is given
AuthService createUser should NOT subscribe email to marketing list if NO consent is given
  ✅ AuthService createUser should NOT subscribe email to marketing list if NO consent is given

✅ BankaccountController

BankaccountController should be defined
  ✅ BankaccountController should be defined

✅ BankaccountService

BankaccountService should be defined
  ✅ BankaccountService should be defined

✅ BankTransactionsController

BankTransactionsController should be defined
  ✅ BankTransactionsController should be defined
BankTransactionsController findAll  should return proper bank transactions list
  ✅ BankTransactionsController findAll  should return proper bank transactions list
BankTransactionsController editRef  should update the campaign payment ref of a failed Bank Donation Import
  ✅ BankTransactionsController editRef  should update the campaign payment ref of a failed Bank Donation Import
BankTransactionsController rerunBankSync  should rerun bank transactions for specific dates
  ✅ BankTransactionsController rerunBankSync  should rerun bank transactions for specific dates

✅ BankTransactionsFileController

BankTransactionsFileController should be defined
  ✅ BankTransactionsFileController should be defined

✅ BankTransactionsFileService

BankTransactionsFileService should be defined
  ✅ BankTransactionsFileService should be defined

✅ BankTransactionsService

BankTransactionsService should be defined
  ✅ BankTransactionsService should be defined

✅ BenefactorController

BenefactorController should be defined
  ✅ BenefactorController should be defined

✅ BenefactorService

BenefactorService should be defined
  ✅ BenefactorService should be defined

✅ BeneficiaryController

BeneficiaryController should be defined
  ✅ BeneficiaryController should be defined
BeneficiaryController should list all beneficiaries in db
  ✅ BeneficiaryController should list all beneficiaries in db
BeneficiaryController should get one beneficiary
  ✅ BeneficiaryController should get one beneficiary
BeneficiaryController should throw error if beneficiary does not exist
  ✅ BeneficiaryController should throw error if beneficiary does not exist
BeneficiaryController it should create beneficiary
  ✅ BeneficiaryController it should create beneficiary
BeneficiaryController it should update beneficiary
  ✅ BeneficiaryController it should update beneficiary
BeneficiaryController should remove one item
  ✅ BeneficiaryController should remove one item
BeneficiaryController it should create beneficiary as company
  ✅ BeneficiaryController it should create beneficiary as company

✅ BeneficiaryService

BeneficiaryService should be defined
  ✅ BeneficiaryService should be defined

✅ CampaignController

CampaignController should be defined
  ✅ CampaignController should be defined
CampaignController getData  should return proper campaign list
  ✅ CampaignController getData  should return proper campaign list
CampaignController getAdminList  should return proper campaign list
  ✅ CampaignController getAdminList  should return proper campaign list
CampaignController viewBySlug  should return proper campaign
  ✅ CampaignController viewBySlug  should return proper campaign
CampaignController viewBySlug  should return campaign if older slug was used
  ✅ CampaignController viewBySlug  should return campaign if older slug was used
CampaignController viewBySlug  should throw error for not existing campaign
  ✅ CampaignController viewBySlug  should throw error for not existing campaign
CampaignController update try to update as beneficiery of the campaign
  ✅ CampaignController update try to update as beneficiery of the campaign
CampaignController update try to update as coordinator of the campaign
  ✅ CampaignController update try to update as coordinator of the campaign
CampaignController update try to update as organizer of the campaign
  ✅ CampaignController update try to update as organizer of the campaign
CampaignController update try to update as some other user
  ✅ CampaignController update try to update as some other user
CampaignController subscribeToCampaignNotifications should throw if no consent is provided
  ✅ CampaignController subscribeToCampaignNotifications should throw if no consent is provided
CampaignController subscribeToCampaignNotifications should throw if the campaign is not active
  ✅ CampaignController subscribeToCampaignNotifications should throw if the campaign is not active
CampaignController subscribeToCampaignNotifications should subscribe the user to the campaign and general marketing list
  ✅ CampaignController subscribeToCampaignNotifications should subscribe the user to the campaign and general marketing list
CampaignController subscribeToCampaignNotifications should not generate a campaign marketing list if exists already
  ✅ CampaignController subscribeToCampaignNotifications should not generate a campaign marketing list if exists already
CampaignController subscribeToCampaignNotifications should update the consent of a registered user if was not given previously
  ✅ CampaignController subscribeToCampaignNotifications should update the consent of a registered user if was not given previously
CampaignController subscribeToCampaignNotifications should create a saparate notification consent record for non-registered emails
  ✅ CampaignController subscribeToCampaignNotifications should create a saparate notification consent record for non-registered emails
CampaignController create  should call create with coordinator id
  ✅ CampaignController create  should call create with coordinator id
CampaignController create  calling without coordinator id should make the creator a coordinator
  ✅ CampaignController create  calling without coordinator id should make the creator a coordinator

✅ CampaignFileController

CampaignFileController should be defined
  ✅ CampaignFileController should be defined
CampaignFileController should call service for create campaign file for admin user
  ✅ CampaignFileController should call service for create campaign file for admin user
CampaignFileController should throw an error for missing person
  ✅ CampaignFileController should throw an error for missing person
CampaignFileController should throw an error for user not owning updated campaign
  ✅ CampaignFileController should throw an error for user not owning updated campaign

✅ CampaignFileController

CampaignFileController should be defined
  ✅ CampaignFileController should be defined
CampaignFileController should call service for create campaign file for admin user
  ✅ CampaignFileController should call service for create campaign file for admin user
CampaignFileController should throw an error for missing person
  ✅ CampaignFileController should throw an error for missing person
CampaignFileController should throw an error for user not having access
  ✅ CampaignFileController should throw an error for user not having access

✅ CampaignFileService

CampaignFileService should be defined
  ✅ CampaignFileService should be defined

✅ CampaignFileService

CampaignFileService should be defined
  ✅ CampaignFileService should be defined

✅ CampaignNewsController

CampaignNewsController should be defined
  ✅ CampaignNewsController should be defined

✅ CampaignNewsService

CampaignNewsService should be defined
  ✅ CampaignNewsService should be defined

✅ CampaignService

CampaignService update should create notification list, first time campaign state is updated to active
  ✅ CampaignService update should create notification list, first time campaign state is updated to active
CampaignService update should update existing notification list name, if active campaign name is updated
  ✅ CampaignService update should update existing notification list name, if active campaign name is updated

✅ CampaignTypesController

CampaignTypesController should be defined
  ✅ CampaignTypesController should be defined
CampaignTypesController should list all campaign types in db
  ✅ CampaignTypesController should list all campaign types in db
CampaignTypesController should get one campaign type
  ✅ CampaignTypesController should get one campaign type
CampaignTypesController should throw error if campaign type does not exist
  ✅ CampaignTypesController should throw error if campaign type does not exist
CampaignTypesController it should create campaign type
  ✅ CampaignTypesController it should create campaign type
CampaignTypesController it should update campaign type
  ✅ CampaignTypesController it should update campaign type
CampaignTypesController should remove one item
  ✅ CampaignTypesController should remove one item

✅ CampaignTypesService

CampaignTypesService should be defined
  ✅ CampaignTypesService should be defined

✅ CityController

CityController should be defined
  ✅ CityController should be defined
CityController should list all cities
  ✅ CityController should list all cities
CityController should get 1 city
  ✅ CityController should get 1 city
CityController should throw error if city does not exist
  ✅ CityController should throw error if city does not exist
CityController should create a city
  ✅ CityController should create a city
CityController should update a city
  ✅ CityController should update a city
CityController should remove 1 city
  ✅ CityController should remove 1 city

✅ CityService

CityService should be defined
  ✅ CityService should be defined

✅ CompanyController

CompanyController should be defined
  ✅ CompanyController should be defined

✅ CompanyService

CompanyService should be defined
  ✅ CompanyService should be defined

✅ CoordinatorController

CoordinatorController should be defined
  ✅ CoordinatorController should be defined
CoordinatorController getData should list all coordinators
  ✅ CoordinatorController getData should list all coordinators
CoordinatorController getData should get one city
  ✅ CoordinatorController getData should get one city
CoordinatorController create should create new coordinator
  ✅ CoordinatorController create should create new coordinator
CoordinatorController delete should update coordinator
  ✅ CoordinatorController delete should update coordinator

✅ CoordinatorService

CoordinatorService should be defined
  ✅ CoordinatorService should be defined
CoordinatorService should return all
  ✅ CoordinatorService should return all
CoordinatorService Find one should return searching coordinator
  ✅ CoordinatorService Find one should return searching coordinator
CoordinatorService delete should delete
  ✅ CoordinatorService delete should delete

✅ CountryController

CountryController should be defined
  ✅ CountryController should be defined
CountryController should list all countries
  ✅ CountryController should list all countries
CountryController should get 1 country
  ✅ CountryController should get 1 country
CountryController should throw error if trying to get a country that does not exist
  ✅ CountryController should throw error if trying to get a country that does not exist
CountryController should create a country
  ✅ CountryController should create a country
CountryController should update a country
  ✅ CountryController should update a country
CountryController should throw error if trying to update a country that does not exist
  ✅ CountryController should throw error if trying to update a country that does not exist
CountryController should remove a country
  ✅ CountryController should remove a country

✅ CountryService

CountryService should be defined
  ✅ CountryService should be defined

✅ DonationsController

DonationsController should be defined
  ✅ DonationsController should be defined
DonationsController createCheckoutSession should create stripe session for active campaign
  ✅ DonationsController createCheckoutSession should create stripe session for active campaign
DonationsController createCheckoutSession should not create stripe session for completed campaign
  ✅ DonationsController createCheckoutSession should not create stripe session for completed campaign
DonationsController createCheckoutSession should create stripe session for completed campaign if allowed
  ✅ DonationsController createCheckoutSession should create stripe session for completed campaign if allowed
DonationsController should update a donations donor, when it is changed
  ✅ DonationsController should update a donations donor, when it is changed
DonationsController should update a donation status, when it is changed
  ✅ DonationsController should update a donation status, when it is changed
DonationsController should request refund for donation
  ✅ DonationsController should request refund for donation

✅ DonationsService

DonationsService should be defined
  ✅ DonationsService should be defined

✅ DonationWishController

DonationWishController should be defined
  ✅ DonationWishController should be defined

✅ DonationWishService

DonationWishService should be defined
  ✅ DonationWishService should be defined

✅ EmailService enabled

EmailService enabled  should be defined
  ✅ EmailService enabled  should be defined
EmailService enabled  send() should send email successfully
  ✅ EmailService enabled  send() should send email successfully
EmailService enabled  sendFromTemplate() should send email successfully
  ✅ EmailService enabled  sendFromTemplate() should send email successfully
EmailService enabled  sendFromTemplate() should send email successfully with default sender
  ✅ EmailService enabled  sendFromTemplate() should send email successfully with default sender
EmailService enabled  sendFromTemplate() should throw error for missing recipient
  ✅ EmailService enabled  sendFromTemplate() should throw error for missing recipient
EmailService disabled  should be defined
  ✅ EmailService disabled  should be defined
EmailService disabled  send() should not send email if service is not enabled
  ✅ EmailService disabled  send() should not send email if service is not enabled

✅ ExpensesController

ExpensesController should be defined
  ✅ ExpensesController should be defined
ExpensesController create and update data should create an expense
  ✅ ExpensesController create and update data should create an expense
ExpensesController create and update data should not create an expense with insufficient balance
  ✅ ExpensesController create and update data should not create an expense with insufficient balance
ExpensesController create and update data should update an expense, when it is approved
  ✅ ExpensesController create and update data should update an expense, when it is approved
ExpensesController create and update data should raise an exception, since the user is not authorized
  ✅ ExpensesController create and update data should raise an exception, since the user is not authorized
ExpensesController create and update data should not update a withdrawal, when it is already approved/cancelled
  ✅ ExpensesController create and update data should not update a withdrawal, when it is already approved/cancelled
ExpensesController create and update data should not update an expense, when its vault is being changed
  ✅ ExpensesController create and update data should not update an expense, when its vault is being changed

✅ ExpensesService

ExpensesService should be defined
  ✅ ExpensesService should be defined

✅ HealthController

HealthController should be defined
  ✅ HealthController should be defined

✅ ImportTransactionsTask

ImportTransactionsTask should be defined
  ✅ ImportTransactionsTask should be defined
ImportTransactionsTask importBankTransactionsTASK should import IRIS transactions
  ✅ ImportTransactionsTask importBankTransactionsTASK should import IRIS transactions
ImportTransactionsTask importBankTransactionsTASK should not run if no transactions have been fetched
  ✅ ImportTransactionsTask importBankTransactionsTASK should not run if no transactions have been fetched
ImportTransactionsTask importBankTransactionsTASK should handle EUR currency and parse the BGN equivalent from the transactionId
  ✅ ImportTransactionsTask importBankTransactionsTASK should handle EUR currency and parse the BGN equivalent from the transactionId
ImportTransactionsTask importBankTransactionsTASK should handle USD currency and parse the BGN equivalent from the transactionId
  ✅ ImportTransactionsTask importBankTransactionsTASK should handle USD currency and parse the BGN equivalent from the transactionId
ImportTransactionsTask importBankTransactionsTASK should set matchedRef to null when the EUR currency amount cannot be parsed from the transaction id
  ✅ ImportTransactionsTask importBankTransactionsTASK should set matchedRef to null when the EUR currency amount cannot be parsed from the transaction id
ImportTransactionsTask importBankTransactionsTASK extractAmountFromTransactionId can parse a whole number
  ✅ ImportTransactionsTask importBankTransactionsTASK extractAmountFromTransactionId can parse a whole number
ImportTransactionsTask importBankTransactionsTASK extractAmountFromTransactionId can parse a floating number
  ✅ ImportTransactionsTask importBankTransactionsTASK extractAmountFromTransactionId can parse a floating number
ImportTransactionsTask importBankTransactionsTASK extractAmountFromTransactionId can parse a zero
  ✅ ImportTransactionsTask importBankTransactionsTASK extractAmountFromTransactionId can parse a zero
ImportTransactionsTask importBankTransactionsTASK extractAmountFromTransactionId will not parse a negative number
  ✅ ImportTransactionsTask importBankTransactionsTASK extractAmountFromTransactionId will not parse a negative number
ImportTransactionsTask importBankTransactionsTASK extractAmountFromTransactionId will not parse empty number
  ✅ ImportTransactionsTask importBankTransactionsTASK extractAmountFromTransactionId will not parse empty number
ImportTransactionsTask importBankTransactionsTASK extractAmountFromTransactionId will not parse invalid floating number
  ✅ ImportTransactionsTask importBankTransactionsTASK extractAmountFromTransactionId will not parse invalid floating number
ImportTransactionsTask importBankTransactionsTASK extractAmountFromTransactionId will not parse string
  ✅ ImportTransactionsTask importBankTransactionsTASK extractAmountFromTransactionId will not parse string
ImportTransactionsTask notifyForExpiringIrisConsentTASK should notify for expiring Iris Consent
  ✅ ImportTransactionsTask notifyForExpiringIrisConsentTASK should notify for expiring Iris Consent
ImportTransactionsTask should NOT notify for expiring Iris Consent before expTreshold is met
  ✅ ImportTransactionsTask should NOT notify for expiring Iris Consent before expTreshold is met

✅ ImportTransactionsTask

ImportTransactionsTask should be defined
  ✅ ImportTransactionsTask should be defined
ImportTransactionsTask initIrisTasks should init all dynamicaly scheduled tasks
  ✅ ImportTransactionsTask initIrisTasks should init all dynamicaly scheduled tasks

✅ InfoRequestController

InfoRequestController should be defined
  ✅ InfoRequestController should be defined

✅ InfoRequestService

InfoRequestService should be defined
  ✅ InfoRequestService should be defined

✅ IrregularityController

IrregularityController should be defined
  ✅ IrregularityController should be defined

✅ IrregularityFileController

IrregularityFileController should be defined
  ✅ IrregularityFileController should be defined

✅ IrregularityFileService

IrregularityFileService should be defined
  ✅ IrregularityFileService should be defined

✅ IrregularityService

IrregularityService should be defined
  ✅ IrregularityService should be defined

✅ LoginController

LoginController should be defined
  ✅ LoginController should be defined
LoginController createUser should call createUser
  ✅ LoginController createUser should call createUser

✅ MarketingNotificationsController

MarketingNotificationsController should be defined
  ✅ MarketingNotificationsController should be defined
MarketingNotificationsController sendConfirmation should skip sending if user is registered + subscribed
  ✅ MarketingNotificationsController sendConfirmation should skip sending if user is registered + subscribed
MarketingNotificationsController sendConfirmation should skip sending if user is non-registered + subscribed
  ✅ MarketingNotificationsController sendConfirmation should skip sending if user is non-registered + subscribed
MarketingNotificationsController sendConfirmation should send email to non logged user with no-consent
  ✅ MarketingNotificationsController sendConfirmation should send email to non logged user with no-consent
MarketingNotificationsController sendConfirmation should send email to logged user with no-consent
  ✅ MarketingNotificationsController sendConfirmation should send email to logged user with no-consent
MarketingNotificationsController sendConfirmation should skip sending email if last sent was less than one minute ago
  ✅ MarketingNotificationsController sendConfirmation should skip sending email if last sent was less than one minute ago
MarketingNotificationsController subscribePublic should throw if email+hash not found
  ✅ MarketingNotificationsController subscribePublic should throw if email+hash not found
MarketingNotificationsController subscribePublic should skip calling Marketing Platform if user is registered + subscribed
  ✅ MarketingNotificationsController subscribePublic should skip calling Marketing Platform if user is registered + subscribed
MarketingNotificationsController subscribePublic should skip calling Marketing Platform if user is non-registered + subscribed
  ✅ MarketingNotificationsController subscribePublic should skip calling Marketing Platform if user is non-registered + subscribed
MarketingNotificationsController subscribePublic should add unsubscribed NOT registered email to Marketing Platform main marketing list
  ✅ MarketingNotificationsController subscribePublic should add unsubscribed NOT registered email to Marketing Platform main marketing list
MarketingNotificationsController subscribePublic should add unsubscribed registered email to Marketing Platform main marketing list
  ✅ MarketingNotificationsController subscribePublic should add unsubscribed registered email to Marketing Platform main marketing list
MarketingNotificationsController subscribePublic should add email to Marketing Platform marketing list + campaign list if provided campaign id
  ✅ MarketingNotificationsController subscribePublic should add email to Marketing Platform marketing list + campaign list if provided campaign id
MarketingNotificationsController unsubscribePublic should throw if email not found
  ✅ MarketingNotificationsController unsubscribePublic should throw if email not found
MarketingNotificationsController unsubscribePublic should skip calling Marketing Platform if user is registered + UNsubscribed already
  ✅ MarketingNotificationsController unsubscribePublic should skip calling Marketing Platform if user is registered + UNsubscribed already
MarketingNotificationsController unsubscribePublic should skip calling Marketing Platform if user is non-registered + UNsubscribed already
  ✅ MarketingNotificationsController unsubscribePublic should skip calling Marketing Platform if user is non-registered + UNsubscribed already
MarketingNotificationsController unsubscribePublic should add subscribed NOT registered email to Marketing Platform global unsubscribe list
  ✅ MarketingNotificationsController unsubscribePublic should add subscribed NOT registered email to Marketing Platform global unsubscribe list
MarketingNotificationsController unsubscribePublic should add subscribed registered email to Marketing Platform global unsubscribe list
  ✅ MarketingNotificationsController unsubscribePublic should add subscribed registered email to Marketing Platform global unsubscribe list
MarketingNotificationsController unsubscribePublic should remove email only from Marketing Platform campaign list -  WITHOUT adding it to global unsubscribe list
  ✅ MarketingNotificationsController unsubscribePublic should remove email only from Marketing Platform campaign list -  WITHOUT adding it to global unsubscribe list
MarketingNotificationsController subscribe should throw if consent not provided
  ✅ MarketingNotificationsController subscribe should throw if consent not provided
MarketingNotificationsController subscribe should add logged user to main marketing list
  ✅ MarketingNotificationsController subscribe should add logged user to main marketing list
MarketingNotificationsController unsubscribe should skip calling Marketing Platform if already unsubscribed
  ✅ MarketingNotificationsController unsubscribe should skip calling Marketing Platform if already unsubscribed
MarketingNotificationsController unsubscribe should add logged user to Marketing Platform global unsubscribe list
  ✅ MarketingNotificationsController unsubscribe should add logged user to Marketing Platform global unsubscribe list
MarketingNotificationsController unsubscribe should remove logged user ONLY from Marketing Platform campaign list - WITHOUT adding to global unsubscribe list
  ✅ MarketingNotificationsController unsubscribe should remove logged user ONLY from Marketing Platform campaign list - WITHOUT adding to global unsubscribe list

✅ OrganizerController

OrganizerController should be defined
  ✅ OrganizerController should be defined

✅ OrganizerService

OrganizerService should be defined
  ✅ OrganizerService should be defined

✅ PaypalController

PaypalController should be defined
  ✅ PaypalController should be defined

✅ PaypalService

PaypalService should be defined
  ✅ PaypalService should be defined

✅ PersonController

PersonController should be defined
  ✅ PersonController should be defined

✅ PersonService with enable client list

PersonService with enable client list  should be defined
  ✅ PersonService with enable client list  should be defined
PersonService with enable client list  should create person and add it to contact list
  ✅ PersonService with enable client list  should create person and add it to contact list
PersonService with enable client list  should create person without adding it to contact list
  ✅ PersonService with enable client list  should create person without adding it to contact list
PersonService with disable client list  should be defined
  ✅ PersonService with disable client list  should be defined
PersonService with disable client list  should create person without adding it to contact list
  ✅ PersonService with disable client list  should create person without adding it to contact list

✅ podkrepiTypes

podkrepiTypes should work
  ✅ podkrepiTypes should work

✅ PrismaService

PrismaService should be defined
  ✅ PrismaService should be defined

✅ ProviderLoginController

ProviderLoginController should be defined
  ✅ ProviderLoginController should be defined
ProviderLoginController refreshToken should call refreshToken
  ✅ ProviderLoginController refreshToken should call refreshToken

✅ RecurringDonationController

RecurringDonationController should be defined
  ✅ RecurringDonationController should be defined

✅ RecurringDonationService

RecurringDonationService should be defined
  ✅ RecurringDonationService should be defined
RecurringDonationService should return all recurring donations
  ✅ RecurringDonationService should return all recurring donations
RecurringDonationService should return a recurring donation by id
  ✅ RecurringDonationService should return a recurring donation by id
RecurringDonationService should call stripe cancel service my subscription id
  ✅ RecurringDonationService should call stripe cancel service my subscription id
RecurringDonationService should cancel a subscription in db
  ✅ RecurringDonationService should cancel a subscription in db
RecurringDonationService should create  a subscription in db
  ✅ RecurringDonationService should create  a subscription in db

✅ RefreshController

RefreshController should be defined
  ✅ RefreshController should be defined
RefreshController refreshToken should call refreshToken
  ✅ RefreshController refreshToken should call refreshToken

✅ RegisterController

RegisterController should be defined
  ✅ RegisterController should be defined
RegisterController createUser should call createUser
  ✅ RegisterController createUser should call createUser

✅ StripePaymentService

StripePaymentService should be defined
  ✅ StripePaymentService should be defined
StripePaymentService should handle payment_intent.created
  ✅ StripePaymentService should handle payment_intent.created
StripePaymentService should handle payment_intent.canceled
  ✅ StripePaymentService should handle payment_intent.canceled
StripePaymentService should handle payment_intent.payment_failed
  ✅ StripePaymentService should handle payment_intent.payment_failed
StripePaymentService should handle charge.succeeded for not anonymous user
  ✅ StripePaymentService should handle charge.succeeded for not anonymous user
StripePaymentService should handle charge.succeeded for anonymous user
  ✅ StripePaymentService should handle charge.succeeded for anonymous user
StripePaymentService should handle charge.refunded
  ✅ StripePaymentService should handle charge.refunded
StripePaymentService calculate payment-intent.created
  ✅ StripePaymentService calculate payment-intent.created
StripePaymentService calculate payment-intent.succeeded with BG tax included in charge
  ✅ StripePaymentService calculate payment-intent.succeeded with BG tax included in charge
StripePaymentService should handle customer.subscription.created
  ✅ StripePaymentService should handle customer.subscription.created
StripePaymentService should handle invoice.paid
  ✅ StripePaymentService should handle invoice.paid
StripePaymentService should cancel all active subscriptions if the campaign is completed
  ✅ StripePaymentService should cancel all active subscriptions if the campaign is completed
 calculate payment-intent.succeeded with BG tax not included in charge
  ✅ calculate payment-intent.succeeded with BG tax not included in charge
 calculate payment-intent.succeeded with US tax included in charge
  ✅ calculate payment-intent.succeeded with US tax included in charge
 calculate payment-intent.succeeded with GB tax included in charge
  ✅ calculate payment-intent.succeeded with GB tax included in charge

✅ SupportController

SupportController should be defined
  ✅ SupportController should be defined
SupportController getSuporters should list all supporters in db
  ✅ SupportController getSuporters should list all supporters in db
SupportController getInfoRequests should list all info requests in db
  ✅ SupportController getInfoRequests should list all info requests in db

✅ SupportService

SupportService should be defined
  ✅ SupportService should be defined

✅ TransferController

TransferController should be defined
  ✅ TransferController should be defined
TransferController should list all transfers
  ✅ TransferController should list all transfers
TransferController should get 1 transfer
  ✅ TransferController should get 1 transfer
TransferController should throw an error if a transfer does not exist
  ✅ TransferController should throw an error if a transfer does not exist
TransferController create and update data should create a transfer
  ✅ TransferController create and update data should create a transfer
TransferController create and update data should not create a transfer with insufficient balance
  ✅ TransferController create and update data should not create a transfer with insufficient balance
TransferController create and update data should update a transfer, when it is approved
  ✅ TransferController create and update data should update a transfer, when it is approved
TransferController create and update data should update a transfer, when it is declined
  ✅ TransferController create and update data should update a transfer, when it is declined
TransferController create and update data should not update a transfer, when it is already approved/declined/cancelled
  ✅ TransferController create and update data should not update a transfer, when it is already approved/declined/cancelled
TransferController create and update data should not update a transfer, when its source vault is being changed
  ✅ TransferController create and update data should not update a transfer, when its source vault is being changed
TransferController removeData should not remove transfers
  ✅ TransferController removeData should not remove transfers

✅ TransferService

TransferService should be defined
  ✅ TransferService should be defined

✅ VaultController

VaultController should be defined
  ✅ VaultController should be defined
VaultController should call create
  ✅ VaultController should call create
VaultController should not call create if user is not the owner
  ✅ VaultController should not call create if user is not the owner
VaultController should call update
  ✅ VaultController should call update
VaultController should not call update if user is not owner
  ✅ VaultController should not call update if user is not owner
VaultController should call remove on empty vaults
  ✅ VaultController should call remove on empty vaults
VaultController should not call remove on non-empty vaults
  ✅ VaultController should not call remove on non-empty vaults
VaultController should not call remove in user is not owner
  ✅ VaultController should not call remove in user is not owner

✅ VaultService

VaultService should be defined
  ✅ VaultService should be defined

✅ WithdrawalController

WithdrawalController should be defined
  ✅ WithdrawalController should be defined
WithdrawalController getData should list all withdrawals
  ✅ WithdrawalController getData should list all withdrawals
WithdrawalController getData should get one withdrawal
  ✅ WithdrawalController getData should get one withdrawal
WithdrawalController should throw error if withdrawal does not exist
  ✅ WithdrawalController should throw error if withdrawal does not exist
WithdrawalController create and update data should create a withdrawal
  ✅ WithdrawalController create and update data should create a withdrawal
WithdrawalController create and update data should not create a withdrawal with insufficient balance
  ✅ WithdrawalController create and update data should not create a withdrawal with insufficient balance
WithdrawalController create and update data should update a withdrawal, when it is approved
  ✅ WithdrawalController create and update data should update a withdrawal, when it is approved
WithdrawalController create and update data should update a withdrawal, when it is declined
  ✅ WithdrawalController create and update data should update a withdrawal, when it is declined
WithdrawalController create and update data should not update a withdrawal, when it is already approved/declined/cancelled
  ✅ WithdrawalController create and update data should not update a withdrawal, when it is already approved/declined/cancelled
WithdrawalController create and update data should not update a withdrawal, when its vault is being changed
  ✅ WithdrawalController create and update data should not update a withdrawal, when its vault is being changed
WithdrawalController removeData should not remove withdrawals
  ✅ WithdrawalController removeData should not remove withdrawals

✅ WithdrawalService

WithdrawalService should be defined
  ✅ WithdrawalService should be defined