11
2- /*global expect, awaitsFor*/
2+ /*global expect, it, awaitsFor*/
33
44define ( function ( require , exports , module ) {
5- let testWindow , LoginServiceExports ;
5+ let testWindow , LoginServiceExports , setupProUserMock , performFullLoginFlow ;
66
77 async function setupTrialState ( daysRemaining ) {
88 const PromotionExports = testWindow . _test_promo_login_exports ;
@@ -169,9 +169,28 @@ define(function (require, exports, module) {
169169 verifyProfileIconBlanked ( ) ;
170170 }
171171
172- function setup ( _testWindow , _LoginServiceExports ) {
172+ function setup ( _testWindow , _LoginServiceExports , _setupProUserMock , _performFullLoginFlow ) {
173173 testWindow = _testWindow ;
174174 LoginServiceExports = _LoginServiceExports ;
175+ setupProUserMock = _setupProUserMock ;
176+ performFullLoginFlow = _performFullLoginFlow ;
177+ }
178+
179+ function setupSharedTests ( ) {
180+
181+ it ( "should complete login and logout flow" , async function ( ) {
182+ // Setup basic user mock
183+ setupProUserMock ( false ) ;
184+
185+ // Perform full login flow
186+ await performFullLoginFlow ( ) ;
187+ expect ( LoginServiceExports . LoginService . isLoggedIn ( ) ) . toBe ( true ) ;
188+
189+ // Perform full logout flow
190+ await performFullLogoutFlow ( ) ;
191+ expect ( LoginServiceExports . LoginService . isLoggedIn ( ) ) . toBe ( false ) ;
192+ verifyProfileIconBlanked ( ) ;
193+ } ) ;
175194 }
176195
177196 exports . setup = setup ;
@@ -188,4 +207,7 @@ define(function (require, exports, module) {
188207 exports . VIEW_PHOENIX_FREE = VIEW_PHOENIX_FREE ;
189208 exports . SIGNIN_POPUP = SIGNIN_POPUP ;
190209 exports . PROFILE_POPUP = PROFILE_POPUP ;
210+
211+ // test runner
212+ exports . setupSharedTests = setupSharedTests ;
191213} ) ;
0 commit comments