| 
									
										
										
										
											2020-07-04 10:09:48 -07:00
										 |  |  | test("basic functionality", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     let o = { | 
					
						
							|  |  |  |         var1: "foo", | 
					
						
							|  |  |  |         var2: 42, | 
					
						
							|  |  |  |         arr: [ | 
					
						
							|  |  |  |             1, | 
					
						
							|  |  |  |             2, | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 nested: { | 
					
						
							|  |  |  |                     hello: "world", | 
					
						
							|  |  |  |                 }, | 
					
						
							|  |  |  |                 get x() { | 
					
						
							|  |  |  |                     return 10; | 
					
						
							|  |  |  |                 }, | 
					
						
							|  |  |  |             }, | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  |         obj: { | 
					
						
							|  |  |  |             subarr: [3], | 
					
						
							| 
									
										
										
										
											2020-06-10 11:01:00 -07:00
										 |  |  |         }, | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2020-06-10 11:01:00 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     let string = JSON.stringify(o, (key, value) => { | 
					
						
							|  |  |  |         if (key === "hello") return undefined; | 
					
						
							|  |  |  |         if (value === 10) return 20; | 
					
						
							|  |  |  |         if (key === "subarr") return [3, 4, 5]; | 
					
						
							|  |  |  |         return value; | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2020-06-10 11:01:00 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     expect(string).toBe( | 
					
						
							|  |  |  |         '{"var1":"foo","var2":42,"arr":[1,2,{"nested":{},"x":20}],"obj":{"subarr":[3,4,5]}}' | 
					
						
							|  |  |  |     ); | 
					
						
							| 
									
										
										
										
											2020-06-10 11:01:00 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     string = JSON.stringify(o, ["var1", "var1", "var2", "obj"]); | 
					
						
							|  |  |  |     expect(string).toBe('{"var1":"foo","var2":42,"obj":{}}'); | 
					
						
							| 
									
										
										
										
											2020-06-10 11:01:00 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     string = JSON.stringify(o, ["var1", "var1", "var2", "obj", "subarr"]); | 
					
						
							|  |  |  |     expect(string).toBe('{"var1":"foo","var2":42,"obj":{"subarr":[3]}}'); | 
					
						
							| 
									
										
										
										
											2020-07-04 10:09:48 -07:00
										 |  |  | }); |