mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 21:02:44 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			60 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| test("length is 1", () => {
 | |
|     expect(Array.fromAsync).toHaveLength(1);
 | |
| });
 | |
| 
 | |
| describe("normal behavior", () => {
 | |
|     function checkResult(promise) {
 | |
|         expect(promise).toBeInstanceOf(Promise);
 | |
|         let error = null;
 | |
|         let passed = false;
 | |
|         promise
 | |
|             .then(value => {
 | |
|                 expect(value instanceof Array).toBeTrue();
 | |
|                 expect(value[0]).toBe(0);
 | |
|                 expect(value[1]).toBe(2);
 | |
|                 expect(value[2]).toBe(4);
 | |
|                 passed = true;
 | |
|             })
 | |
|             .catch(value => {
 | |
|                 error = value;
 | |
|             });
 | |
|         runQueuedPromiseJobs();
 | |
|         expect(error).toBeNull();
 | |
|         expect(passed).toBeTrue();
 | |
|     }
 | |
| 
 | |
|     test("async from sync iterable no mapfn", () => {
 | |
|         const input = [0, Promise.resolve(2), Promise.resolve(4)].values();
 | |
|         const promise = Array.fromAsync(input);
 | |
|         checkResult(promise);
 | |
|     });
 | |
| 
 | |
|     test("from object of promises no mapfn", () => {
 | |
|         let promise = Array.fromAsync({
 | |
|             length: 3,
 | |
|             0: Promise.resolve(0),
 | |
|             1: Promise.resolve(2),
 | |
|             2: Promise.resolve(4),
 | |
|         });
 | |
|         checkResult(promise);
 | |
|     });
 | |
| 
 | |
|     test("async from sync iterable with mapfn", () => {
 | |
|         const input = [Promise.resolve(0), 1, Promise.resolve(2)].values();
 | |
|         const promise = Array.fromAsync(input, async element => element * 2);
 | |
|         checkResult(promise);
 | |
|     });
 | |
| 
 | |
|     test("from object of promises with mapfn", () => {
 | |
|         let promise = Array.fromAsync(
 | |
|             {
 | |
|                 length: 3,
 | |
|                 0: Promise.resolve(0),
 | |
|                 1: Promise.resolve(1),
 | |
|                 2: Promise.resolve(2),
 | |
|             },
 | |
|             async element => element * 2
 | |
|         );
 | |
|         checkResult(promise);
 | |
|     });
 | |
| });
 | 
