| 
									
										
										
										
											2020-07-04 18:56:48 +01:00
										 |  |  | test("basic functionality", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     var a = [1, 2, 3]; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-04 18:56:48 +01:00
										 |  |  |     expect(typeof a).toBe("object"); | 
					
						
							|  |  |  |     expect(a).toHaveLength(3); | 
					
						
							|  |  |  |     expect(a[0]).toBe(1); | 
					
						
							|  |  |  |     expect(a[1]).toBe(2); | 
					
						
							|  |  |  |     expect(a[2]).toBe(3); | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     a[1] = 5; | 
					
						
							| 
									
										
										
										
											2020-07-04 18:56:48 +01:00
										 |  |  |     expect(a[1]).toBe(5); | 
					
						
							|  |  |  |     expect(a).toHaveLength(3); | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     a.push(7); | 
					
						
							| 
									
										
										
										
											2020-07-04 18:56:48 +01:00
										 |  |  |     expect(a[3]).toBe(7); | 
					
						
							|  |  |  |     expect(a).toHaveLength(4); | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     a = [,]; | 
					
						
							| 
									
										
										
										
											2020-07-04 18:56:48 +01:00
										 |  |  |     expect(a).toHaveLength(1); | 
					
						
							|  |  |  |     expect(a.toString()).toBe(""); | 
					
						
							|  |  |  |     expect(a[0]).toBeUndefined(); | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     a = [, , , ,]; | 
					
						
							| 
									
										
										
										
											2020-07-04 18:56:48 +01:00
										 |  |  |     expect(a).toHaveLength(4); | 
					
						
							|  |  |  |     expect(a.toString()).toBe(",,,"); | 
					
						
							|  |  |  |     expect(a[0]).toBeUndefined(); | 
					
						
							|  |  |  |     expect(a[1]).toBeUndefined(); | 
					
						
							|  |  |  |     expect(a[2]).toBeUndefined(); | 
					
						
							|  |  |  |     expect(a[3]).toBeUndefined(); | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     a = [1, , 2, , , 3]; | 
					
						
							| 
									
										
										
										
											2020-07-04 18:56:48 +01:00
										 |  |  |     expect(a).toHaveLength(6); | 
					
						
							|  |  |  |     expect(a.toString()).toBe("1,,2,,,3"); | 
					
						
							|  |  |  |     expect(a[0]).toBe(1); | 
					
						
							|  |  |  |     expect(a[1]).toBeUndefined(); | 
					
						
							|  |  |  |     expect(a[2]).toBe(2); | 
					
						
							|  |  |  |     expect(a[3]).toBeUndefined(); | 
					
						
							|  |  |  |     expect(a[4]).toBeUndefined(); | 
					
						
							|  |  |  |     expect(a[5]).toBe(3); | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     a = [1, , 2, , , 3]; | 
					
						
							|  |  |  |     Object.defineProperty(a, 1, { | 
					
						
							|  |  |  |         get() { | 
					
						
							| 
									
										
										
										
											2020-07-04 18:56:48 +01:00
										 |  |  |             return this.getterSetterValue; | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |         }, | 
					
						
							|  |  |  |         set(value) { | 
					
						
							| 
									
										
										
										
											2020-07-04 18:56:48 +01:00
										 |  |  |             this.getterSetterValue = value; | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |         }, | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2020-07-04 18:56:48 +01:00
										 |  |  |     expect(a).toHaveLength(6); | 
					
						
							|  |  |  |     expect(a.toString()).toBe("1,,2,,,3"); | 
					
						
							|  |  |  |     expect(a.getterSetterValue).toBeUndefined(); | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     a[1] = 20; | 
					
						
							| 
									
										
										
										
											2020-07-04 18:56:48 +01:00
										 |  |  |     expect(a).toHaveLength(6); | 
					
						
							|  |  |  |     expect(a.toString()).toBe("1,20,2,,,3"); | 
					
						
							|  |  |  |     expect(a.getterSetterValue).toBe(20); | 
					
						
							|  |  |  | }); |