| 
									
										
										
										
											2020-07-04 10:09:48 -07:00
										 |  |  | test("basic functionality", () => { | 
					
						
							| 
									
										
										
										
											2020-07-05 09:27:00 -07:00
										 |  |  |   expect(JSON.parse).toHaveLength(2); | 
					
						
							| 
									
										
										
										
											2020-06-10 23:30:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-05 09:27:00 -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-05 09:27:00 -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-05 09:27:00 -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
										 |  |  | }); |