Skip to content

Commit bdf6c83

Browse files
committed
test: pro promotions integ tests for non logged in case
1 parent fcc163b commit bdf6c83

File tree

1 file changed

+41
-3
lines changed

1 file changed

+41
-3
lines changed

test/spec/promotions-integ-test.js

Lines changed: 41 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ define(function (require, exports, module) {
251251

252252
it("should show promo ended dialog when trial expires (not logged in)", async function () {
253253
const expiredTrial = {
254-
proVersion: "3.0.0",
254+
proVersion: "3.1.0", // Same version as current to trigger ended dialog
255255
endDate: mockNow - LoginService.TRIAL_CONSTANTS.MS_PER_DAY, // Expired yesterday
256256
signature: "mock_signature"
257257
};
@@ -267,7 +267,7 @@ define(function (require, exports, module) {
267267
// Verify upgrade dialog shown flag was set
268268
expect(updatedTrialData).not.toBeNull();
269269
expect(updatedTrialData.upgradeDialogShownVersion).toBe("3.1.0");
270-
expect(updatedTrialData.proVersion).toBe("3.0.0"); // Should preserve original version
270+
expect(updatedTrialData.proVersion).toBe("3.1.0"); // Should preserve original version
271271
expect(updatedTrialData.endDate).toBe(expiredTrial.endDate); // Should preserve end date
272272

273273
// Wait for modal dialog and verify it's the "ended" dialog
@@ -278,7 +278,45 @@ define(function (require, exports, module) {
278278
// Check if it's the "ended" dialog (different text than upgrade)
279279
const dialogText = modalContent.text();
280280
expect(dialogText).toContain('Phoenix Pro');
281-
// Note: Ended dialog would have different text than upgrade dialog
281+
expect(dialogText).toContain('Trial has ended');
282+
283+
// Close the dialog
284+
testWindow.$('.modal .btn').first().click();
285+
await testWindow.__PR.waitForModalDialogClosed(".modal");
286+
});
287+
288+
it("should grant new trial when expired trial is from older version (not logged in)", async function () {
289+
const expiredTrial = {
290+
proVersion: "3.0.0", // Older version than current 3.1.0
291+
endDate: mockNow - LoginService.TRIAL_CONSTANTS.MS_PER_DAY, // Expired yesterday
292+
signature: "mock_signature"
293+
};
294+
295+
// Set up expired trial data first
296+
await LoginService._setTrialData(expiredTrial);
297+
298+
await LoginService.activateProTrial();
299+
300+
// Get the updated trial data
301+
const updatedTrialData = await LoginService._getTrialData();
302+
303+
// Verify new trial was granted for version upgrade
304+
expect(updatedTrialData).not.toBeNull();
305+
expect(updatedTrialData.proVersion).toBe("3.1.0"); // Should update to current version
306+
307+
// Should grant 7-day trial for version upgrade
308+
const expectedEndDate = mockNow + (7 * LoginService.TRIAL_CONSTANTS.MS_PER_DAY);
309+
expect(updatedTrialData.endDate).toBe(expectedEndDate);
310+
311+
// Should show upgrade dialog (not ended dialog)
312+
await testWindow.__PR.waitForModalDialog(".modal");
313+
const modalContent = testWindow.$('.modal');
314+
expect(modalContent.length).toBeGreaterThan(0);
315+
316+
const dialogText = modalContent.text();
317+
expect(dialogText.toLowerCase()).toContain('you’ve been upgraded to');
318+
expect(dialogText).toContain('Phoenix Pro');
319+
expect(dialogText).toContain('7 days');
282320

283321
// Close the dialog
284322
testWindow.$('.modal .btn').first().click();

0 commit comments

Comments
 (0)