@@ -260,30 +260,17 @@ describe('AccessService authorization', () => {
260260 sandbox = null ;
261261 } ) ;
262262
263- it ( 'should run authorization flow' , ( ) => {
263+ function expectGetReaderId ( result ) {
264264 cidMock . expects ( 'get' )
265- . withExactArgs ( 'amp-access' , sinon . match ( ( ) => true ) )
266- . returns ( Promise . resolve ( 'reader1' ) )
267- . once ( ) ;
268- xhrMock . expects ( 'fetchJson' )
269- . withExactArgs ( 'https://acme.com/a?rid=reader1' ,
270- { credentials : 'include' } )
271- . returns ( Promise . resolve ( { access : true } ) )
265+ . withExactArgs (
266+ { scope : 'amp-access' , createCookieIfNotPresent : true } ,
267+ sinon . match ( ( ) => true ) )
268+ . returns ( Promise . resolve ( result ) )
272269 . once ( ) ;
273- const promise = service . runAuthorization_ ( ) ;
274- expect ( document . documentElement ) . to . have . class ( 'amp-access-loading' ) ;
275- return promise . then ( ( ) => {
276- expect ( document . documentElement ) . not . to . have . class ( 'amp-access-loading' ) ;
277- expect ( elementOn ) . not . to . have . attribute ( 'amp-access-hide' ) ;
278- expect ( elementOff ) . to . have . attribute ( 'amp-access-hide' ) ;
279- } ) ;
280- } ) ;
270+ }
281271
282272 it ( 'should run authorization flow' , ( ) => {
283- cidMock . expects ( 'get' )
284- . withExactArgs ( 'amp-access' , sinon . match ( ( ) => true ) )
285- . returns ( Promise . resolve ( 'reader1' ) )
286- . once ( ) ;
273+ expectGetReaderId ( 'reader1' ) ;
287274 xhrMock . expects ( 'fetchJson' )
288275 . withExactArgs ( 'https://acme.com/a?rid=reader1' ,
289276 { credentials : 'include' } )
@@ -299,10 +286,7 @@ describe('AccessService authorization', () => {
299286 } ) ;
300287
301288 it ( 'should recover from authorization failure' , ( ) => {
302- cidMock . expects ( 'get' )
303- . withExactArgs ( 'amp-access' , sinon . match ( ( ) => true ) )
304- . returns ( Promise . resolve ( 'reader1' ) )
305- . once ( ) ;
289+ expectGetReaderId ( 'reader1' ) ;
306290 xhrMock . expects ( 'fetchJson' )
307291 . withExactArgs ( 'https://acme.com/a?rid=reader1' ,
308292 { credentials : 'include' } )
@@ -318,10 +302,7 @@ describe('AccessService authorization', () => {
318302 } ) ;
319303
320304 it ( 'should resolve first-authorization promise after success' , ( ) => {
321- cidMock . expects ( 'get' )
322- . withExactArgs ( 'amp-access' , sinon . match ( ( ) => true ) )
323- . returns ( Promise . resolve ( 'reader1' ) )
324- . once ( ) ;
305+ expectGetReaderId ( 'reader1' ) ;
325306 xhrMock . expects ( 'fetchJson' )
326307 . withExactArgs ( 'https://acme.com/a?rid=reader1' ,
327308 { credentials : 'include' } )
@@ -334,10 +315,7 @@ describe('AccessService authorization', () => {
334315 } ) ;
335316
336317 it ( 'should NOT resolve first-authorization promise after failure' , ( ) => {
337- cidMock . expects ( 'get' )
338- . withExactArgs ( 'amp-access' , sinon . match ( ( ) => true ) )
339- . returns ( Promise . resolve ( 'reader1' ) )
340- . once ( ) ;
318+ expectGetReaderId ( 'reader1' ) ;
341319 xhrMock . expects ( 'fetchJson' )
342320 . withExactArgs ( 'https://acme.com/a?rid=reader1' ,
343321 { credentials : 'include' } )
@@ -553,6 +531,15 @@ describe('AccessService pingback', () => {
553531 sandbox = null ;
554532 } ) ;
555533
534+ function expectGetReaderId ( result ) {
535+ cidMock . expects ( 'get' )
536+ . withExactArgs (
537+ { scope : 'amp-access' , createCookieIfNotPresent : true } ,
538+ sinon . match ( ( ) => true ) )
539+ . returns ( Promise . resolve ( result ) )
540+ . once ( ) ;
541+ }
542+
556543 it ( 'should register "viewed" signal after timeout' , ( ) => {
557544 service . reportViewToServer_ = sandbox . spy ( ) ;
558545 const p = service . reportWhenViewed_ ( ) ;
@@ -685,10 +672,7 @@ describe('AccessService pingback', () => {
685672 } ) ;
686673
687674 it ( 'should send POST pingback' , ( ) => {
688- cidMock . expects ( 'get' )
689- . withExactArgs ( 'amp-access' , sinon . match ( ( ) => true ) )
690- . returns ( Promise . resolve ( 'reader1' ) )
691- . once ( ) ;
675+ expectGetReaderId ( 'reader1' ) ;
692676 xhrMock . expects ( 'sendSignal' )
693677 . withExactArgs ( 'https://acme.com/p?rid=reader1' , sinon . match ( init => {
694678 return ( init . method == 'POST' &&
@@ -754,24 +738,27 @@ describe('AccessService login', () => {
754738 sandbox = null ;
755739 } ) ;
756740
741+ function expectGetReaderId ( result ) {
742+ cidMock . expects ( 'get' )
743+ . withExactArgs (
744+ { scope : 'amp-access' , createCookieIfNotPresent : true } ,
745+ sinon . match ( ( ) => true ) )
746+ . returns ( Promise . resolve ( result ) )
747+ . once ( ) ;
748+ }
749+
757750 it ( 'should open dialog in the same microtask' , ( ) => {
758751 service . openLoginDialog_ = sandbox . stub ( ) ;
759752 service . openLoginDialog_ . returns ( Promise . resolve ( ) ) ;
760- cidMock . expects ( 'get' )
761- . withExactArgs ( 'amp-access' , sinon . match ( ( ) => true ) )
762- . returns ( Promise . resolve ( 'reader1' ) )
763- . once ( ) ;
753+ expectGetReaderId ( 'reader1' ) ;
764754 service . login ( ) ;
765755 expect ( service . openLoginDialog_ . callCount ) . to . equal ( 1 ) ;
766756 expect ( service . openLoginDialog_ . firstCall . args [ 0 ] . then ) . to . exist ;
767757 } ) ;
768758
769759 it ( 'should succeed login with success=true' , ( ) => {
770760 service . runAuthorization_ = sandbox . spy ( ) ;
771- cidMock . expects ( 'get' )
772- . withExactArgs ( 'amp-access' , sinon . match ( ( ) => true ) )
773- . returns ( Promise . resolve ( 'reader1' ) )
774- . once ( ) ;
761+ expectGetReaderId ( 'reader1' ) ;
775762 let urlPromise = null ;
776763 serviceMock . expects ( 'openLoginDialog_' )
777764 . withExactArgs ( sinon . match ( arg => {
@@ -792,10 +779,7 @@ describe('AccessService login', () => {
792779
793780 it ( 'should fail login with success=no' , ( ) => {
794781 service . runAuthorization_ = sandbox . spy ( ) ;
795- cidMock . expects ( 'get' )
796- . withExactArgs ( 'amp-access' , sinon . match ( ( ) => true ) )
797- . returns ( Promise . resolve ( 'reader1' ) )
798- . once ( ) ;
782+ expectGetReaderId ( 'reader1' ) ;
799783 serviceMock . expects ( 'openLoginDialog_' )
800784 . withExactArgs ( sinon . match ( arg => ! ! arg . then ) )
801785 . returns ( Promise . resolve ( '#success=no' ) )
@@ -808,10 +792,7 @@ describe('AccessService login', () => {
808792
809793 it ( 'should fail login with empty response' , ( ) => {
810794 service . runAuthorization_ = sandbox . spy ( ) ;
811- cidMock . expects ( 'get' )
812- . withExactArgs ( 'amp-access' , sinon . match ( ( ) => true ) )
813- . returns ( Promise . resolve ( 'reader1' ) )
814- . once ( ) ;
795+ expectGetReaderId ( 'reader1' ) ;
815796 serviceMock . expects ( 'openLoginDialog_' )
816797 . withExactArgs ( sinon . match ( arg => ! ! arg . then ) )
817798 . returns ( Promise . resolve ( '' ) )
@@ -824,10 +805,7 @@ describe('AccessService login', () => {
824805
825806 it ( 'should fail login with aborted dialog' , ( ) => {
826807 service . runAuthorization_ = sandbox . spy ( ) ;
827- cidMock . expects ( 'get' )
828- . withExactArgs ( 'amp-access' , sinon . match ( ( ) => true ) )
829- . returns ( Promise . resolve ( 'reader1' ) )
830- . once ( ) ;
808+ expectGetReaderId ( 'reader1' ) ;
831809 serviceMock . expects ( 'openLoginDialog_' )
832810 . withExactArgs ( sinon . match ( arg => ! ! arg . then ) )
833811 . returns ( Promise . reject ( 'abort' ) )
@@ -841,10 +819,7 @@ describe('AccessService login', () => {
841819
842820 it ( 'should run login only once at a time' , ( ) => {
843821 service . runAuthorization_ = sandbox . spy ( ) ;
844- cidMock . expects ( 'get' )
845- . withExactArgs ( 'amp-access' , sinon . match ( ( ) => true ) )
846- . returns ( Promise . resolve ( 'reader1' ) )
847- . once ( ) ;
822+ expectGetReaderId ( 'reader1' ) ;
848823 serviceMock . expects ( 'openLoginDialog_' )
849824 . withExactArgs ( sinon . match ( arg => ! ! arg . then ) )
850825 . returns ( new Promise ( ( ) => { } ) )
0 commit comments