11angular . module ( 'testx' , [ 'firebase' ] ) ;
22
33describe ( "AngularFireAuth Test Suite" , function ( ) {
4+ jasmine . DEFAULT_TIMEOUT_INTERVAL = 60000
45
56 //constants
67 var existingUser = {
@@ -21,7 +22,7 @@ describe("AngularFireAuth Test Suite", function() {
2122 var ngFireRef ;
2223 var ngSimpleLogin ;
2324
24- function AsyncWaiter ( events ) {
25+ function AsyncWaiter ( done , events ) {
2526 var eventsToComplete = events ? events : [ "default" ] ;
2627
2728 this . done = function ( event ) {
@@ -30,16 +31,19 @@ describe("AngularFireAuth Test Suite", function() {
3031 if ( ind >= 0 ) {
3132 eventsToComplete . splice ( ind , 1 ) ;
3233 }
33- }
34+ } ;
3435
3536 this . wait = function ( message , timeout ) {
36- waitsFor ( function ( ) {
37+ var to = setInterval ( function ( ) {
3738 try {
3839 //We have to call this because the angular $timeout service is mocked for these tests.
3940 $timeout . flush ( ) ;
4041 } catch ( err ) { }
41- return eventsToComplete == 0 ;
42- } , message , timeout ? timeout : 2000 ) ;
42+ if ( eventsToComplete . length === 0 ) {
43+ clearInterval ( to ) ;
44+ done ( ) ;
45+ }
46+ } , timeout ? timeout : 2000 ) ;
4347 }
4448 }
4549
@@ -64,8 +68,8 @@ describe("AngularFireAuth Test Suite", function() {
6468
6569 //We have this test first, to make sure that initial login state doesn't mess up the promise returned by
6670 //login.
67- it ( "Email: failed login" , function ( ) {
68- var waiter = new AsyncWaiter ( [ "future_failed" , "error_event" ] ) ;
71+ it ( "Email: failed login" , function ( done ) {
72+ var waiter = new AsyncWaiter ( done , [ "future_failed" , "error_event" ] ) ;
6973
7074 var loginFuture = ngSimpleLogin . $login ( "password" , {
7175@@ -91,8 +95,8 @@ describe("AngularFireAuth Test Suite", function() {
9195 } ) ;
9296
9397 //Ensure that getUserInfo gives us a null if we're logged out.
94- it ( "getUserInfo() triggers promise and is initially null." , function ( ) {
95- var waiter = new AsyncWaiter ( ) ;
98+ it ( "getUserInfo() triggers promise and is initially null." , function ( done ) {
99+ var waiter = new AsyncWaiter ( done ) ;
96100
97101 ngSimpleLogin . $getCurrentUser ( ) . then ( function ( info ) {
98102 expect ( info ) . toBe ( null ) ;
@@ -103,8 +107,8 @@ describe("AngularFireAuth Test Suite", function() {
103107 } ) ;
104108
105109 //Make sure logins to providers we haven't enabled fail.
106- it ( "Failed Facebook login" , function ( ) {
107- var waiter = new AsyncWaiter ( [ "future_failed" , "error_event" ] ) ;
110+ it ( "Failed Facebook login" , function ( done ) {
111+ var waiter = new AsyncWaiter ( done , [ "future_failed" , "error_event" ] ) ;
108112
109113 var loginFuture = ngSimpleLogin . $login ( "facebook" ) ;
110114
@@ -127,8 +131,8 @@ describe("AngularFireAuth Test Suite", function() {
127131 } ) ;
128132
129133 //Login successfully to a twitter account
130- it ( "Successful Twitter login" , function ( ) {
131- var waiter = new AsyncWaiter ( [ "user_info" , "login_event" ] ) ;
134+ it ( "Successful Twitter login" , function ( done ) {
135+ var waiter = new AsyncWaiter ( done , [ "user_info" , "login_event" ] ) ;
132136
133137 var loginFuture = ngSimpleLogin . $login ( "twitter" ) ;
134138
@@ -154,8 +158,8 @@ describe("AngularFireAuth Test Suite", function() {
154158 } ) ;
155159
156160 //Check that email login works
157- it ( "Email: login" , function ( ) {
158- var waiter = new AsyncWaiter ( [ "future_success" , "login_event" ] ) ;
161+ it ( "Email: login" , function ( done ) {
162+ var waiter = new AsyncWaiter ( done , [ "future_success" , "login_event" ] ) ;
159163
160164 var loginFuture = ngSimpleLogin . $login ( "password" , existingUser ) ;
161165
@@ -182,8 +186,8 @@ describe("AngularFireAuth Test Suite", function() {
182186 waiter . wait ( "email login success" ) ;
183187 } ) ;
184188
185- it ( "getCurrentUser for logged-in state" , function ( ) {
186- var waiter = new AsyncWaiter ( ) ;
189+ it ( "getCurrentUser for logged-in state" , function ( done ) {
190+ var waiter = new AsyncWaiter ( done ) ;
187191
188192 var promise = ngSimpleLogin . $getCurrentUser ( ) ;
189193 promise . then ( function ( user ) {
@@ -195,8 +199,8 @@ describe("AngularFireAuth Test Suite", function() {
195199 } ) ;
196200
197201 //Check to make sure logout works.
198- it ( "Logout" , function ( ) {
199- var waiter = new AsyncWaiter ( [ "future" , "event" ] ) ;
202+ it ( "Logout" , function ( done ) {
203+ var waiter = new AsyncWaiter ( done , [ "future" , "event" ] ) ;
200204
201205 ngSimpleLogin . $logout ( ) ;
202206
@@ -217,8 +221,8 @@ describe("AngularFireAuth Test Suite", function() {
217221 } ) ;
218222
219223 //Ensure we properly handle errors on account creation.
220- it ( "Email: failed account creation" , function ( ) {
221- var waiter = new AsyncWaiter ( [ "promise" , "event" ] ) ;
224+ it ( "Email: failed account creation" , function ( done ) {
225+ var waiter = new AsyncWaiter ( done , [ "promise" , "event" ] ) ;
222226
223227 var promise = ngSimpleLogin . $createUser ( existingUser . email , "xaaa" ) ;
224228 promise . then ( function ( user ) {
@@ -238,8 +242,8 @@ describe("AngularFireAuth Test Suite", function() {
238242 } ) ;
239243
240244 //Test account creation.
241- it ( "Email: account creation" , function ( ) {
242- var waiter = new AsyncWaiter ( [ "promise" , "getuser" ] ) ;
245+ it ( "Email: account creation" , function ( done ) {
246+ var waiter = new AsyncWaiter ( done , [ "promise" , "getuser" ] ) ;
243247
244248 var accountEmail = "a" + Math . round ( Math . random ( ) * 10000000000 ) + "@email.com" ;
245249
@@ -261,8 +265,8 @@ describe("AngularFireAuth Test Suite", function() {
261265 } ) ;
262266
263267 //Test logging into newly created user.
264- it ( "Email: account creation with subsequent login" , function ( ) {
265- var waiter = new AsyncWaiter ( [ "promise" , "login" ] ) ;
268+ it ( "Email: account creation with subsequent login" , function ( done ) {
269+ var waiter = new AsyncWaiter ( done , [ "promise" , "login" ] ) ;
266270 var promise = ngSimpleLogin . $createUser ( newUserInf . email , newUserInf . password ) ;
267271 promise . then ( function ( user ) {
268272 expect ( user . email ) . toBe ( newUserInf . email ) ;
@@ -280,8 +284,8 @@ describe("AngularFireAuth Test Suite", function() {
280284 } ) ;
281285
282286
283- it ( "Email: failed change password" , function ( ) {
284- var waiter = new AsyncWaiter ( [ "promise" , "event" ] ) ;
287+ it ( "Email: failed change password" , function ( done ) {
288+ var waiter = new AsyncWaiter ( done , [ "promise" , "event" ] ) ;
285289
286290 var promise = ngSimpleLogin . $changePassword ( existingUser . email , "pxz" , "sdf" ) ;
287291 promise . then ( function ( ) {
@@ -300,8 +304,8 @@ describe("AngularFireAuth Test Suite", function() {
300304 waiter . wait ( "failed change password" , 2000 ) ;
301305 } ) ;
302306
303- it ( "Email: change password" , function ( ) {
304- var waiter = new AsyncWaiter ( [ "fail" , "succeed" ] ) ;
307+ it ( "Email: change password" , function ( done ) {
308+ var waiter = new AsyncWaiter ( done , [ "fail" , "succeed" ] ) ;
305309
306310 //this should fail
307311 ngSimpleLogin . $changePassword ( newUserInf . email , "88dfhjgerqwqq" , newUserInf . newPW ) . then ( function ( user ) {
@@ -324,8 +328,8 @@ describe("AngularFireAuth Test Suite", function() {
324328 waiter . wait ( "change password" , 2000 ) ;
325329 } ) ;
326330
327- it ( "Email: remove user" , function ( ) {
328- var waiter = new AsyncWaiter ( [ "fail" , "success" ] ) ;
331+ it ( "Email: remove user" , function ( done ) {
332+ var waiter = new AsyncWaiter ( done , [ "fail" , "success" ] ) ;
329333
330334 ngSimpleLogin . $removeUser ( newUserInf . email + "x" , newUserInf . newPW ) . then ( function ( ) {
331335 expect ( true ) . toBe ( false ) ; //die
@@ -351,8 +355,8 @@ describe("AngularFireAuth Test Suite", function() {
351355 waiter . wait ( "removeuser fail and success" ) ;
352356 } ) ;
353357
354- it ( "Email: reset password" , function ( ) {
355- var waiter = new AsyncWaiter ( [ "fail" , "success" ] ) ;
358+ it ( "Email: reset password" , function ( done ) {
359+ var waiter = new AsyncWaiter ( done , [ "fail" , "success" ] ) ;
356360
357361 ngSimpleLogin . $sendPasswordResetEmail ( "[email protected] " ) . then ( function ( ) { 358362 expect ( true ) . toBe ( false ) ;
0 commit comments