51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   // TODO move to a test / lint suite?
 | |
|   oauth3._testPromise = function (PromiseA) {
 | |
|     var promise;
 | |
|     var x = 1;
 | |
| 
 | |
|     // tests that this promise has all of the necessary api
 | |
|     promise = new PromiseA(function (resolve, reject) {
 | |
|       //console.log('x [2]', x);
 | |
|       if (x !== 1) {
 | |
|         throw new Error("bad promise, create not Synchronous [0]");
 | |
|       }
 | |
| 
 | |
|       PromiseA.resolve().then(function () {
 | |
|         var promise2;
 | |
| 
 | |
|         //console.log('x resolve', x);
 | |
|         if (x !== 2) {
 | |
|           throw new Error("bad promise, resolve not Asynchronous [1]");
 | |
|         }
 | |
| 
 | |
|         promise2 = PromiseA.reject().then(reject, function () {
 | |
|           //console.log('x reject', x);
 | |
|           if (x !== 4) {
 | |
|             throw new Error("bad promise, reject not Asynchronous [2]");
 | |
|           }
 | |
| 
 | |
|           if ('undefined' === typeof angular) {
 | |
|             throw new Error("[NOT AN ERROR] Dear angular users: ignore this error-handling test");
 | |
|           } else {
 | |
|             return PromiseA.reject(new Error("[NOT AN ERROR] ignore this error-handling test"));
 | |
|           }
 | |
|         });
 | |
| 
 | |
|         x = 4;
 | |
| 
 | |
|         return promise2;
 | |
|       }).catch(function (e) {
 | |
|         if (e.message.match('NOT AN ERROR')) {
 | |
|           resolve({ success: true });
 | |
|         } else {
 | |
|           reject(e);
 | |
|         }
 | |
|       });
 | |
| 
 | |
|       x = 3;
 | |
|     });
 | |
| 
 | |
|     x = 2;
 | |
|     return promise;
 | |
|   };
 |