| 
									
										
										
										
											2020-07-04 10:09:48 -07:00
										 |  |  | test("plain property", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     let o = { foo: "bar" }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     expect(o).toHaveConfigurableProperty("foo"); | 
					
						
							|  |  |  |     expect(o).toHaveEnumerableProperty("foo"); | 
					
						
							|  |  |  |     expect(o).toHaveWritableProperty("foo"); | 
					
						
							|  |  |  |     expect(o).toHaveValueProperty("foo", "bar"); | 
					
						
							|  |  |  |     expect(o).not.toHaveGetterProperty("foo"); | 
					
						
							|  |  |  |     expect(o).not.toHaveSetterProperty("foo"); | 
					
						
							| 
									
										
										
										
											2020-07-04 10:09:48 -07:00
										 |  |  | }); | 
					
						
							| 
									
										
										
										
											2020-05-29 20:10:21 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-07 21:39:36 -07:00
										 |  |  | test("symbol property", () => { | 
					
						
							|  |  |  |     let s = Symbol("foo"); | 
					
						
							|  |  |  |     let o = { [s]: "bar" }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     expect(o).toHaveConfigurableProperty(s); | 
					
						
							|  |  |  |     expect(o).toHaveEnumerableProperty(s); | 
					
						
							|  |  |  |     expect(o).toHaveWritableProperty(s); | 
					
						
							|  |  |  |     expect(o).toHaveValueProperty(s, "bar"); | 
					
						
							|  |  |  |     expect(o).not.toHaveGetterProperty(s); | 
					
						
							|  |  |  |     expect(o).not.toHaveSetterProperty(s); | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-04 10:09:48 -07:00
										 |  |  | test("getter property", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     let o = { get foo() {} }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     expect(o).toHaveConfigurableProperty("foo"); | 
					
						
							|  |  |  |     expect(o).toHaveEnumerableProperty("foo"); | 
					
						
							|  |  |  |     expect(o).not.toHaveWritableProperty("foo"); | 
					
						
							|  |  |  |     expect(o).not.toHaveValueProperty("foo"); | 
					
						
							|  |  |  |     expect(o).toHaveGetterProperty("foo"); | 
					
						
							|  |  |  |     expect(o).not.toHaveSetterProperty("foo"); | 
					
						
							| 
									
										
										
										
											2020-07-04 10:09:48 -07:00
										 |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | test("setter property", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     let o = { set foo(_) {} }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     expect(o).toHaveConfigurableProperty("foo"); | 
					
						
							|  |  |  |     expect(o).toHaveEnumerableProperty("foo"); | 
					
						
							|  |  |  |     expect(o).not.toHaveWritableProperty("foo"); | 
					
						
							|  |  |  |     expect(o).not.toHaveValueProperty("foo"); | 
					
						
							|  |  |  |     expect(o).not.toHaveGetterProperty("foo"); | 
					
						
							|  |  |  |     expect(o).toHaveSetterProperty("foo"); | 
					
						
							| 
									
										
										
										
											2020-07-04 10:09:48 -07:00
										 |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | test("defined property", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     let o = {}; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-20 18:42:10 +02:00
										 |  |  |     const attributes = { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |         enumerable: false, | 
					
						
							|  |  |  |         writable: true, | 
					
						
							|  |  |  |         value: 10, | 
					
						
							| 
									
										
										
										
											2021-04-20 18:42:10 +02:00
										 |  |  |     }; | 
					
						
							|  |  |  |     Object.defineProperty(o, "foo", attributes); | 
					
						
							|  |  |  |     Object.defineProperty(o, 1, attributes); | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     expect(o).not.toHaveConfigurableProperty("foo"); | 
					
						
							|  |  |  |     expect(o).not.toHaveEnumerableProperty("foo"); | 
					
						
							|  |  |  |     expect(o).toHaveWritableProperty("foo"); | 
					
						
							|  |  |  |     expect(o).toHaveValueProperty("foo", 10); | 
					
						
							|  |  |  |     expect(o).not.toHaveGetterProperty("foo"); | 
					
						
							|  |  |  |     expect(o).not.toHaveSetterProperty("foo"); | 
					
						
							| 
									
										
										
										
											2021-04-20 18:42:10 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     expect(o).not.toHaveConfigurableProperty(1); | 
					
						
							|  |  |  |     expect(o).not.toHaveEnumerableProperty(1); | 
					
						
							|  |  |  |     expect(o).toHaveWritableProperty(1); | 
					
						
							|  |  |  |     expect(o).toHaveValueProperty(1, 10); | 
					
						
							|  |  |  |     expect(o).not.toHaveGetterProperty(1); | 
					
						
							|  |  |  |     expect(o).not.toHaveSetterProperty(1); | 
					
						
							| 
									
										
										
										
											2020-07-04 10:09:48 -07:00
										 |  |  | }); |