diff --git a/src/course-home/data/pact-tests/lmsPact.test.jsx b/src/course-home/data/pact-tests/lmsPact.test.jsx index 580ff4b8..3563444d 100644 --- a/src/course-home/data/pact-tests/lmsPact.test.jsx +++ b/src/course-home/data/pact-tests/lmsPact.test.jsx @@ -62,7 +62,7 @@ describe('Course Home Service', () => { celebrations: like({ first_section: false, streak_length_to_celebrate: null, - streak_discount_experiment_enabled: false, + streak_discount_enabled: false, }), course_access: { has_access: boolean(true), @@ -110,7 +110,7 @@ describe('Course Home Service', () => { celebrations: { firstSection: false, streakLengthToCelebrate: null, - streakDiscountExperimentEnabled: false, + streakDiscountEnabled: false, }, courseAccess: { hasAccess: true, diff --git a/src/courseware/data/pact-tests/lmsPact.test.jsx b/src/courseware/data/pact-tests/lmsPact.test.jsx index b50e0e67..60f59503 100644 --- a/src/courseware/data/pact-tests/lmsPact.test.jsx +++ b/src/courseware/data/pact-tests/lmsPact.test.jsx @@ -201,7 +201,7 @@ describe('Courseware Service', () => { celebrations: { first_section: boolean(false), streak_length_to_celebrate: null, - streak_discount_experiment_enabled: boolean(false), + streak_discount_enabled: boolean(false), }, user_has_passing_grade: boolean(false), course_exit_page_is_active: boolean(false), @@ -279,7 +279,7 @@ describe('Courseware Service', () => { celebrations: { firstSection: false, streakLengthToCelebrate: null, - streakDiscountExperimentEnabled: false, + streakDiscountEnabled: false, }, userHasPassingGrade: false, courseExitPageIsActive: false, diff --git a/src/pacts/frontend-app-learning-lms.json b/src/pacts/frontend-app-learning-lms.json index e176d55c..100a02eb 100644 --- a/src/pacts/frontend-app-learning-lms.json +++ b/src/pacts/frontend-app-learning-lms.json @@ -31,7 +31,7 @@ "celebrations": { "first_section": false, "streak_length_to_celebrate": null, - "streak_discount_experiment_enabled": false + "streak_discount_enabled": false }, "course_access": { "has_access": true, @@ -298,7 +298,7 @@ "celebrations": { "first_section": false, "streak_length_to_celebrate": null, - "streak_discount_experiment_enabled": false + "streak_discount_enabled": false }, "user_has_passing_grade": false, "course_exit_page_is_active": false, @@ -434,7 +434,7 @@ "$.body.celebrations.first_section": { "match": "type" }, - "$.body.celebrations.streak_discount_experiment_enabled": { + "$.body.celebrations.streak_discount_enabled": { "match": "type" }, "$.body.user_has_passing_grade": { @@ -637,4 +637,4 @@ "version": "2.0.0" } } -} \ No newline at end of file +} diff --git a/src/shared/streak-celebration/StreakCelebrationModal.jsx b/src/shared/streak-celebration/StreakCelebrationModal.jsx index 722be5d1..f8fac945 100644 --- a/src/shared/streak-celebration/StreakCelebrationModal.jsx +++ b/src/shared/streak-celebration/StreakCelebrationModal.jsx @@ -43,7 +43,7 @@ function getRandomFactoid(intl, streakLength) { function StreakModal({ courseId, metadataModel, streakLengthToCelebrate, intl, isStreakCelebrationOpen, - closeStreakCelebration, AA759ExperimentEnabled, verifiedMode, ...rest + closeStreakCelebration, StreakDiscountCouponEnabled, verifiedMode, ...rest }) { if (!isStreakCelebrationOpen) { return null; @@ -82,7 +82,7 @@ function StreakModal({ let offer; if (verifiedMode) { - upgradeUrl = `${verifiedMode.upgradeUrl}&code=3DayStreak`; + upgradeUrl = `${verifiedMode.upgradeUrl}&code=ZGY11119949`; mode = { currencySymbol: verifiedMode.currencySymbol, price: verifiedMode.price, @@ -125,7 +125,7 @@ function StreakModal({

- { !AA759ExperimentEnabled && ( + { !StreakDiscountCouponEnabled && (
@@ -133,7 +133,7 @@ function StreakModal({
)} - { AA759ExperimentEnabled && ( + { StreakDiscountCouponEnabled && (
@@ -141,10 +141,10 @@ function StreakModal({ {intl.formatMessage(messages.congratulations)}  {intl.formatMessage(messages.streakDiscountMessage)} 
@@ -153,7 +153,7 @@ function StreakModal({ )} - { AA759ExperimentEnabled && ( + { StreakDiscountCouponEnabled && ( <> )} - { !AA759ExperimentEnabled && ( + { !StreakDiscountCouponEnabled && ( )} @@ -192,7 +192,7 @@ StreakModal.defaultProps = { isStreakCelebrationOpen: false, streakLengthToCelebrate: -1, verifiedMode: {}, - AA759ExperimentEnabled: false, + StreakDiscountCouponEnabled: false, }; StreakModal.propTypes = { @@ -202,7 +202,7 @@ StreakModal.propTypes = { intl: intlShape.isRequired, isStreakCelebrationOpen: PropTypes.bool, closeStreakCelebration: PropTypes.func.isRequired, - AA759ExperimentEnabled: PropTypes.bool, + StreakDiscountCouponEnabled: PropTypes.bool, verifiedMode: PropTypes.shape({ currencySymbol: PropTypes.string, price: PropTypes.number, diff --git a/src/shared/streak-celebration/StreakCelebrationModal.test.jsx b/src/shared/streak-celebration/StreakCelebrationModal.test.jsx index 99674fb9..a89b0b1b 100644 --- a/src/shared/streak-celebration/StreakCelebrationModal.test.jsx +++ b/src/shared/streak-celebration/StreakCelebrationModal.test.jsx @@ -18,6 +18,7 @@ describe('Loaded Tab Page', () => { const courseMetadata = Factory.build('courseMetadata', { celebrations: { streakLengthToCelebrate: 3 } }); mockData.courseId = courseMetadata.id; mockData.verifiedMode = courseMetadata.verifiedMode; + mockData.closeStreakCelebration = jest.fn(); const testStore = await initializeTestStore({ courseMetadata }, false); render(, { store: testStore }); @@ -31,7 +32,7 @@ describe('Loaded Tab Page', () => { }); }); - it('shows streak celebration modal AA-759 experiment', async () => { + it('shows streak celebration discount modal', async () => { Object.defineProperty(window, 'matchMedia', { writable: true, value: jest.fn().mockImplementation(query => { @@ -51,11 +52,12 @@ describe('Loaded Tab Page', () => { const courseMetadata = Factory.build('courseMetadata', { celebrations: { shouldCelebrateStreak: 3 } }); mockData.courseId = courseMetadata.id; mockData.verifiedMode = courseMetadata.verifiedMode; - mockData.AA759ExperimentEnabled = true; + mockData.StreakDiscountCouponEnabled = true; const testStore = await initializeTestStore({ courseMetadata }, false); render(, { store: testStore }); + const endDateText = `Ends ${new Date(Date.now() + 14 * 24 * 60 * 60 * 1000).toLocaleDateString({ timeZone: 'UTC' })}.`; expect(screen.getByText('You’ve unlocked a 15% off discount when you upgrade this course for a limited time only.')).toBeInTheDocument(); - expect(screen.getByText('Ends 7/20/2021.')).toBeInTheDocument(); + expect(screen.getByText(endDateText)).toBeInTheDocument(); expect(screen.getByText('Continue with course')).toBeInTheDocument(); }); }); diff --git a/src/tab-page/LoadedTabPage.jsx b/src/tab-page/LoadedTabPage.jsx index b901b4d0..e64e7f60 100644 --- a/src/tab-page/LoadedTabPage.jsx +++ b/src/tab-page/LoadedTabPage.jsx @@ -37,7 +37,7 @@ function LoadedTabPage({ const activeTab = tabs.filter(tab => tab.slug === activeTabSlug)[0]; const streakLengthToCelebrate = celebrations && celebrations.streakLengthToCelebrate; - const AA759ExperimentEnabled = celebrations && celebrations.streakDiscountExperimentEnabled && verifiedMode; + const StreakDiscountCouponEnabled = celebrations && celebrations.streakDiscountEnabled && verifiedMode; const [isStreakCelebrationOpen,, closeStreakCelebration] = useToggle(streakLengthToCelebrate); return ( @@ -56,9 +56,9 @@ function LoadedTabPage({ courseId={courseId} metadataModel={metadataModel} streakLengthToCelebrate={streakLengthToCelebrate} - isStreakCelebrationOpen={isStreakCelebrationOpen} + isStreakCelebrationOpen={!!isStreakCelebrationOpen} closeStreakCelebration={closeStreakCelebration} - AA759ExperimentEnabled={AA759ExperimentEnabled} + StreakDiscountCouponEnabled={StreakDiscountCouponEnabled} verifiedMode={verifiedMode} />