@@ -216,6 +216,9 @@ define(function (require, exports, module) {
216216 if ( expectedPlan . isSubscriber !== undefined ) {
217217 expect ( finalPlanDetails . isSubscriber ) . toBe ( expectedPlan . isSubscriber ) ;
218218 }
219+ if ( expectedPlan . paidSubscriber !== undefined ) {
220+ expect ( finalPlanDetails . paidSubscriber ) . toBe ( expectedPlan . paidSubscriber ) ;
221+ }
219222 if ( expectedPlan . name ) {
220223 expect ( finalPlanDetails . name ) . toBe ( expectedPlan . name ) ;
221224 }
@@ -399,7 +402,7 @@ define(function (require, exports, module) {
399402
400403 // Verify entitlements API consistency for logged in pro user
401404 await verifyIsInProTrialEntitlement ( false , "pro user should not be in trial" ) ;
402- await verifyPlanEntitlements ( { isSubscriber : true } , "pro user should have paid subscriber plan" ) ;
405+ await verifyPlanEntitlements ( { isSubscriber : true , paidSubscriber : true } , "pro user should have paid subscriber plan" ) ;
403406
404407 // Check profile popup shows pro status (not trial)
405408 const $profileButton = testWindow . $ ( "#user-profile-button" ) ;
@@ -448,7 +451,7 @@ define(function (require, exports, module) {
448451
449452 // Verify entitlements API consistency for logged in trial user
450453 await verifyIsInProTrialEntitlement ( true , "user should still be in trial after login" ) ;
451- await verifyPlanEntitlements ( { isSubscriber : true } , "trial user should have isSubscriber true" ) ;
454+ await verifyPlanEntitlements ( { isSubscriber : true , paidSubscriber : false } , "trial user should have isSubscriber true but paidSubscriber false " ) ;
452455
453456 // Check profile popup shows trial status
454457 const $profileButton = testWindow . $ ( "#user-profile-button" ) ;
@@ -530,7 +533,7 @@ define(function (require, exports, module) {
530533 await verifyProBranding ( false , "no pro branding to start with" ) ;
531534
532535 // Verify entitlements API consistency for logged out user with expired trial
533- await verifyPlanEntitlements ( { isSubscriber : false , name : testWindow . Strings . USER_FREE_PLAN_NAME_DO_NOT_TRANSLATE } ,
536+ await verifyPlanEntitlements ( { isSubscriber : false , paidSubscriber : false , name : testWindow . Strings . USER_FREE_PLAN_NAME_DO_NOT_TRANSLATE } ,
534537 "free plan for logged out user with expired trial" ) ;
535538 await verifyIsInProTrialEntitlement ( false , "no trial for user with expired trial" ) ;
536539 await verifyTrialRemainingDaysEntitlement ( 0 , "no trial days remaining for expired trial" ) ;
@@ -543,7 +546,7 @@ define(function (require, exports, module) {
543546 await verifyProBranding ( false , "after trial free user login" ) ;
544547
545548 // Verify entitlements API consistency for logged in free user
546- await verifyPlanEntitlements ( { isSubscriber : false , name : testWindow . Strings . USER_FREE_PLAN_NAME_DO_NOT_TRANSLATE } ,
549+ await verifyPlanEntitlements ( { isSubscriber : false , paidSubscriber : false , name : testWindow . Strings . USER_FREE_PLAN_NAME_DO_NOT_TRANSLATE } ,
547550 "free plan for logged in user with expired trial" ) ;
548551 await verifyIsInProTrialEntitlement ( false , "still no trial after login" ) ;
549552 await verifyLiveEditEntitlement ( { activated : false } , "live edit still deactivated after login" ) ;
@@ -589,7 +592,7 @@ define(function (require, exports, module) {
589592 await verifyProBranding ( false , "no pro branding initially due to expired entitlements" ) ;
590593
591594 // Verify entitlements API consistency for logged out user with no trial
592- await verifyPlanEntitlements ( { isSubscriber : false , name : testWindow . Strings . USER_FREE_PLAN_NAME_DO_NOT_TRANSLATE } ,
595+ await verifyPlanEntitlements ( { isSubscriber : false , paidSubscriber : false , name : testWindow . Strings . USER_FREE_PLAN_NAME_DO_NOT_TRANSLATE } ,
593596 "free plan for logged out user with no trial" ) ;
594597 await verifyIsInProTrialEntitlement ( false , "no trial for logged out user" ) ;
595598 await verifyTrialRemainingDaysEntitlement ( 0 , "no trial days remaining" ) ;
@@ -603,7 +606,7 @@ define(function (require, exports, module) {
603606 await verifyProBranding ( false , "no pro branding after login with expired entitlements" ) ;
604607
605608 // Verify entitlements API consistency for logged in user with expired entitlements
606- await verifyPlanEntitlements ( { isSubscriber : false } ,
609+ await verifyPlanEntitlements ( { isSubscriber : false , paidSubscriber : false } ,
607610 "expired entitlements filtered to free plan after login" ) ;
608611 await verifyIsInProTrialEntitlement ( false , "no trial for user with expired entitlements" ) ;
609612 await verifyTrialRemainingDaysEntitlement ( 0 , "no trial days for expired entitlements user" ) ;
@@ -654,7 +657,7 @@ define(function (require, exports, module) {
654657 await verifyProBranding ( true , "pro branding initially due to active trial" ) ;
655658
656659 // Verify entitlements API consistency for logged out user with active trial
657- await verifyPlanEntitlements ( { isSubscriber : true , name : testWindow . brackets . config . main_pro_plan } ,
660+ await verifyPlanEntitlements ( { isSubscriber : true , paidSubscriber : false , name : testWindow . brackets . config . main_pro_plan } ,
658661 "trial plan for logged out user overrides expired entitlements" ) ;
659662 await verifyIsInProTrialEntitlement ( true , "user should be in trial initially" ) ;
660663 await verifyTrialRemainingDaysEntitlement ( 10 , "should have 10 trial days remaining" ) ;
@@ -668,8 +671,8 @@ define(function (require, exports, module) {
668671 await verifyProBranding ( true , "pro branding after login - trial overrides expired entitlements" ) ;
669672
670673 // Verify entitlements API consistency for logged in user (trial overrides expired server entitlements)
671- await verifyPlanEntitlements ( { isSubscriber : true } ,
672- "trial overrides expired server entitlements to show paid subscriber" ) ;
674+ await verifyPlanEntitlements ( { isSubscriber : true , paidSubscriber : false } ,
675+ "trial overrides expired server entitlements - user is subscriber but not paid " ) ;
673676 await verifyIsInProTrialEntitlement ( true , "user should still be in trial after login" ) ;
674677 await verifyTrialRemainingDaysEntitlement ( 10 , "trial days should remain 10 after login" ) ;
675678 await verifyLiveEditEntitlement ( { activated : true } , "live edit should be activated via trial override" ) ;
@@ -786,9 +789,11 @@ define(function (require, exports, module) {
786789 await verifyProBranding ( true , "device license shows Phoenix Pro branding in navbar" ) ;
787790
788791 // Verify entitlements API shows Pro access
792+ // Note: Device licenses can be paid (paidSubscriber: true) or educational (paidSubscriber: false)
793+ // This test uses educational license (deviceID request) so paidSubscriber should be false
789794 await verifyPlanEntitlements (
790- { isSubscriber : true , name : "Phoenix Pro" } ,
791- "device license provides Pro plan"
795+ { isSubscriber : true , paidSubscriber : false , name : "Phoenix Pro" } ,
796+ "device license provides Pro plan (educational license is unpaid) "
792797 ) ;
793798 await verifyIsInProTrialEntitlement ( false , "device license is not a trial" ) ;
794799 await verifyLiveEditEntitlement ( { activated : true } , "live edit activated via device license" ) ;
0 commit comments