From 7abf71ce391b91ddc9d811173f911e90bf29efd2 Mon Sep 17 00:00:00 2001 From: Abban Dunne Date: Tue, 5 Dec 2023 11:35:00 +0100 Subject: [PATCH] Fix banner tests - Add createFallbackDonationURL function to make it more explicit when a link is being generated for a fallback banner - Add tests for both donation URL functions - Put missing mobile text test back Ticket: https://phabricator.wikimedia.org/T352173 --- .../C23_WMDE_Desktop_DE_14/banner_ctrl.ts | 4 +- .../C23_WMDE_Desktop_DE_14/banner_var.ts | 4 +- .../C23_WMDE_Desktop_DE_15/banner_ctrl.ts | 4 +- .../C23_WMDE_Desktop_DE_15/banner_var.ts | 4 +- banners/desktop/banner_ctrl.ts | 4 +- banners/desktop/banner_var.ts | 4 +- banners/mobile/banner_var.ts | 2 +- banners/mobile/components/BannerVar.vue | 2 +- src/createDonationURL.ts | 10 +--- src/createFallbackDonationURL.ts | 15 ++++++ test/features/BannerContent.ts | 48 ++++++++++++++++++- test/unit/createDonationURL.spec.ts | 14 ++++++ ...c.ts => createFallbackDonationURL.spec.ts} | 8 ++-- 13 files changed, 96 insertions(+), 27 deletions(-) create mode 100644 src/createFallbackDonationURL.ts create mode 100644 test/unit/createDonationURL.spec.ts rename test/unit/{createFallbackDonationLink.spec.ts => createFallbackDonationURL.spec.ts} (56%) diff --git a/archive/desktop/C23_WMDE_Desktop_DE_14/banner_ctrl.ts b/archive/desktop/C23_WMDE_Desktop_DE_14/banner_ctrl.ts index a91de4665..d39b85b96 100644 --- a/archive/desktop/C23_WMDE_Desktop_DE_14/banner_ctrl.ts +++ b/archive/desktop/C23_WMDE_Desktop_DE_14/banner_ctrl.ts @@ -25,7 +25,7 @@ import { LocaleFactoryDe } from '@src/utils/LocaleFactory/LocaleFactoryDe'; // Channel specific form setup import { createFormItems } from './form_items'; import { createFormActions } from '@src/createFormActions'; -import { createDonationURL } from '@src/createDonationURL'; +import { createFallbackDonationURL } from '@src/createFallbackDonationURL'; const localeFactory = new LocaleFactoryDe(); const translator = new Translator( messages ); @@ -44,7 +44,7 @@ const app = createVueApp( BannerConductor, { bannerProps: { useOfFundsContent: localeFactory.getUseOfFundsLoader().getContent(), remainingImpressions: impressionCount.getRemainingImpressions( page.getMaxBannerImpressions( 'desktop' ) ), - donationLink: createDonationURL( page.getTracking(), impressionCount, true ) + donationLink: createFallbackDonationURL( page.getTracking(), impressionCount ) }, resizeHandler: new WindowResizeHandler(), banner: Banner, diff --git a/archive/desktop/C23_WMDE_Desktop_DE_14/banner_var.ts b/archive/desktop/C23_WMDE_Desktop_DE_14/banner_var.ts index 9602f15ef..0a9d1795b 100644 --- a/archive/desktop/C23_WMDE_Desktop_DE_14/banner_var.ts +++ b/archive/desktop/C23_WMDE_Desktop_DE_14/banner_var.ts @@ -25,7 +25,7 @@ import { LocaleFactoryDe } from '@src/utils/LocaleFactory/LocaleFactoryDe'; // Channel specific form setup import { createFormItems } from './form_items'; import { createFormActions } from '@src/createFormActions'; -import { createDonationURL } from '@src/createDonationURL'; +import { createFallbackDonationURL } from '@src/createFallbackDonationURL'; const localeFactory = new LocaleFactoryDe(); const translator = new Translator( messages ); @@ -44,7 +44,7 @@ const app = createVueApp( BannerConductor, { bannerProps: { useOfFundsContent: localeFactory.getUseOfFundsLoader().getContent(), remainingImpressions: impressionCount.getRemainingImpressions( page.getMaxBannerImpressions( 'desktop' ) ), - donationLink: createDonationURL( page.getTracking(), impressionCount, true ) + donationLink: createFallbackDonationURL( page.getTracking(), impressionCount ) }, resizeHandler: new WindowResizeHandler(), banner: Banner, diff --git a/archive/desktop/C23_WMDE_Desktop_DE_15/banner_ctrl.ts b/archive/desktop/C23_WMDE_Desktop_DE_15/banner_ctrl.ts index a91de4665..d39b85b96 100644 --- a/archive/desktop/C23_WMDE_Desktop_DE_15/banner_ctrl.ts +++ b/archive/desktop/C23_WMDE_Desktop_DE_15/banner_ctrl.ts @@ -25,7 +25,7 @@ import { LocaleFactoryDe } from '@src/utils/LocaleFactory/LocaleFactoryDe'; // Channel specific form setup import { createFormItems } from './form_items'; import { createFormActions } from '@src/createFormActions'; -import { createDonationURL } from '@src/createDonationURL'; +import { createFallbackDonationURL } from '@src/createFallbackDonationURL'; const localeFactory = new LocaleFactoryDe(); const translator = new Translator( messages ); @@ -44,7 +44,7 @@ const app = createVueApp( BannerConductor, { bannerProps: { useOfFundsContent: localeFactory.getUseOfFundsLoader().getContent(), remainingImpressions: impressionCount.getRemainingImpressions( page.getMaxBannerImpressions( 'desktop' ) ), - donationLink: createDonationURL( page.getTracking(), impressionCount, true ) + donationLink: createFallbackDonationURL( page.getTracking(), impressionCount ) }, resizeHandler: new WindowResizeHandler(), banner: Banner, diff --git a/archive/desktop/C23_WMDE_Desktop_DE_15/banner_var.ts b/archive/desktop/C23_WMDE_Desktop_DE_15/banner_var.ts index 6825de95f..dce2c6743 100644 --- a/archive/desktop/C23_WMDE_Desktop_DE_15/banner_var.ts +++ b/archive/desktop/C23_WMDE_Desktop_DE_15/banner_var.ts @@ -25,7 +25,7 @@ import { LocaleFactoryDe } from '@src/utils/LocaleFactory/LocaleFactoryDe'; // Channel specific form setup import { createFormItems } from './form_items'; import { createFormActions } from '@src/createFormActions'; -import { createDonationURL } from '@src/createDonationURL'; +import { createFallbackDonationURL } from '@src/createFallbackDonationURL'; const localeFactory = new LocaleFactoryDe(); const translator = new Translator( messages ); @@ -44,7 +44,7 @@ const app = createVueApp( BannerConductor, { bannerProps: { useOfFundsContent: localeFactory.getUseOfFundsLoader().getContent(), remainingImpressions: impressionCount.getRemainingImpressions( page.getMaxBannerImpressions( 'desktop' ) ), - donationLink: createDonationURL( page.getTracking(), impressionCount, true ) + donationLink: createFallbackDonationURL( page.getTracking(), impressionCount ) }, resizeHandler: new WindowResizeHandler(), banner: Banner, diff --git a/banners/desktop/banner_ctrl.ts b/banners/desktop/banner_ctrl.ts index a91de4665..d39b85b96 100644 --- a/banners/desktop/banner_ctrl.ts +++ b/banners/desktop/banner_ctrl.ts @@ -25,7 +25,7 @@ import { LocaleFactoryDe } from '@src/utils/LocaleFactory/LocaleFactoryDe'; // Channel specific form setup import { createFormItems } from './form_items'; import { createFormActions } from '@src/createFormActions'; -import { createDonationURL } from '@src/createDonationURL'; +import { createFallbackDonationURL } from '@src/createFallbackDonationURL'; const localeFactory = new LocaleFactoryDe(); const translator = new Translator( messages ); @@ -44,7 +44,7 @@ const app = createVueApp( BannerConductor, { bannerProps: { useOfFundsContent: localeFactory.getUseOfFundsLoader().getContent(), remainingImpressions: impressionCount.getRemainingImpressions( page.getMaxBannerImpressions( 'desktop' ) ), - donationLink: createDonationURL( page.getTracking(), impressionCount, true ) + donationLink: createFallbackDonationURL( page.getTracking(), impressionCount ) }, resizeHandler: new WindowResizeHandler(), banner: Banner, diff --git a/banners/desktop/banner_var.ts b/banners/desktop/banner_var.ts index cf63eb59a..3d5165a1e 100644 --- a/banners/desktop/banner_var.ts +++ b/banners/desktop/banner_var.ts @@ -28,7 +28,7 @@ import { createFormActions } from '@src/createFormActions'; import { LinearDailyDonorAverage } from '@src/utils/DynamicContent/LinearDailyDonorAverage'; import { IntegerDe } from '@src/utils/DynamicContent/formatters/IntegerDe'; import { visitorsVsDailyDonorsSentence } from './visitorsVsDailyDonorsSentence'; -import { createDonationURL } from '@src/createDonationURL'; +import { createFallbackDonationURL } from '@src/createFallbackDonationURL'; const date = new Date(); const localeFactory = new LocaleFactoryDe(); @@ -50,7 +50,7 @@ const app = createVueApp( BannerConductor, { bannerProps: { useOfFundsContent: localeFactory.getUseOfFundsLoader().getContent(), remainingImpressions: impressionCount.getRemainingImpressions( page.getMaxBannerImpressions( 'desktop' ) ), - donationLink: createDonationURL( page.getTracking(), impressionCount, true ) + donationLink: createFallbackDonationURL( page.getTracking(), impressionCount ) }, resizeHandler: new WindowResizeHandler(), banner: Banner, diff --git a/banners/mobile/banner_var.ts b/banners/mobile/banner_var.ts index f780c0c33..f4762149e 100644 --- a/banners/mobile/banner_var.ts +++ b/banners/mobile/banner_var.ts @@ -45,7 +45,7 @@ const app = createVueApp( BannerConductor, { useOfFundsContent: localeFactory.getUseOfFundsLoader().getContent(), pageScroller: new WindowPageScroller(), remainingImpressions: impressionCount.getRemainingImpressions( page.getMaxBannerImpressions( 'mobile' ) ), - donationURL: createDonationURL( page.getTracking(), impressionCount, false, { amount: '1000' } ) + donationURL: createDonationURL( page.getTracking(), impressionCount, { amount: '1000' } ) }, resizeHandler: new WindowResizeHandler(), banner: Banner, diff --git a/banners/mobile/components/BannerVar.vue b/banners/mobile/components/BannerVar.vue index 198cb0216..b85c0b12f 100644 --- a/banners/mobile/components/BannerVar.vue +++ b/banners/mobile/components/BannerVar.vue @@ -3,7 +3,7 @@