| 
									
										
										
										
											2020-07-04 10:09:48 -07:00
										 |  |  | test("plain property", () => { | 
					
						
							|  |  |  |     let o = { foo: "bar" }; | 
					
						
							| 
									
										
										
										
											2020-05-29 20:10:21 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-04 10:09:48 -07:00
										 |  |  |     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-05-29 20:10:21 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-04 10:09:48 -07:00
										 |  |  | test("getter property", () => { | 
					
						
							|  |  |  |     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"); | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | test("setter property", () => { | 
					
						
							|  |  |  |     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"); | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | test("defined property", () => { | 
					
						
							|  |  |  |     let o = {}; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Object.defineProperty(o, "foo", { | 
					
						
							| 
									
										
										
										
											2020-05-29 20:10:21 -07:00
										 |  |  |         enumerable: false, | 
					
						
							|  |  |  |         writable: true, | 
					
						
							|  |  |  |         value: 10, | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-04 10:09:48 -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"); | 
					
						
							|  |  |  | }); |