| 
									
										
										
										
											2020-07-04 10:09:48 -07:00
										 |  |  | test("basic functionality", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     expect(JSON.parse).toHaveLength(2); | 
					
						
							| 
									
										
										
										
											2020-06-10 23:30:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     const properties = [ | 
					
						
							|  |  |  |         ["5", 5], | 
					
						
							|  |  |  |         ["null", null], | 
					
						
							|  |  |  |         ["true", true], | 
					
						
							|  |  |  |         ["false", false], | 
					
						
							|  |  |  |         ['"test"', "test"], | 
					
						
							|  |  |  |         ['[1,2,"foo"]', [1, 2, "foo"]], | 
					
						
							|  |  |  |         ['{"foo":1,"bar":"baz"}', { foo: 1, bar: "baz" }], | 
					
						
							|  |  |  |     ]; | 
					
						
							| 
									
										
										
										
											2020-06-10 23:30:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     properties.forEach(testCase => { | 
					
						
							|  |  |  |         expect(JSON.parse(testCase[0])).toEqual(testCase[1]); | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2020-07-04 10:09:48 -07:00
										 |  |  | }); | 
					
						
							| 
									
										
										
										
											2020-06-10 23:30:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-04 10:09:48 -07:00
										 |  |  | test("syntax errors", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     [ | 
					
						
							|  |  |  |         undefined, | 
					
						
							|  |  |  |         NaN, | 
					
						
							|  |  |  |         -NaN, | 
					
						
							|  |  |  |         Infinity, | 
					
						
							|  |  |  |         -Infinity, | 
					
						
							|  |  |  |         '{ "foo" }', | 
					
						
							|  |  |  |         '{ foo: "bar" }', | 
					
						
							|  |  |  |         "[1,2,3,]", | 
					
						
							|  |  |  |         "[1,2,3, ]", | 
					
						
							|  |  |  |         '{ "foo": "bar",}', | 
					
						
							|  |  |  |         '{ "foo": "bar", }', | 
					
						
							|  |  |  |     ].forEach(test => { | 
					
						
							|  |  |  |         expect(() => { | 
					
						
							|  |  |  |             JSON.parse(test); | 
					
						
							|  |  |  |         }).toThrow(SyntaxError); | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2020-07-04 10:09:48 -07:00
										 |  |  | }); |