| 
									
										
										
										
											2017-01-18 18:35:43 +08:00
										 |  |  | "use strict"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const formatLocation = require("../lib/formatLocation"); | 
					
						
							| 
									
										
										
										
											2017-01-10 13:00:03 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | describe("formatLocation", () => { | 
					
						
							| 
									
										
										
										
											2018-02-25 18:46:17 +08:00
										 |  |  | 	const testCases = [ | 
					
						
							|  |  |  | 		{ | 
					
						
							|  |  |  | 			name: "undefined", | 
					
						
							|  |  |  | 			loc: undefined, | 
					
						
							|  |  |  | 			result: "" | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 		{ | 
					
						
							|  |  |  | 			name: "null", | 
					
						
							|  |  |  | 			loc: null, | 
					
						
							|  |  |  | 			result: "" | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 		{ | 
					
						
							|  |  |  | 			name: "line-column", | 
					
						
							|  |  |  | 			loc: { | 
					
						
							|  |  |  | 				start: { | 
					
						
							|  |  |  | 					line: 1, | 
					
						
							|  |  |  | 					column: 2 | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 				end: { | 
					
						
							|  |  |  | 					line: 3, | 
					
						
							|  |  |  | 					column: 4 | 
					
						
							|  |  |  | 				} | 
					
						
							| 
									
										
										
										
											2017-01-10 13:00:03 +08:00
										 |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2018-02-25 18:46:17 +08:00
										 |  |  | 			result: "1:2-3:4" | 
					
						
							| 
									
										
										
										
											2017-01-10 13:00:03 +08:00
										 |  |  | 		}, | 
					
						
							| 
									
										
										
										
											2018-02-25 18:46:17 +08:00
										 |  |  | 		{ | 
					
						
							|  |  |  | 			name: "line-column (same line)", | 
					
						
							|  |  |  | 			loc: { | 
					
						
							|  |  |  | 				start: { | 
					
						
							|  |  |  | 					line: 1, | 
					
						
							|  |  |  | 					column: 2 | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 				end: { | 
					
						
							|  |  |  | 					line: 1, | 
					
						
							|  |  |  | 					column: 4 | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 			result: "1:2-4" | 
					
						
							| 
									
										
										
										
											2017-01-10 13:00:03 +08:00
										 |  |  | 		}, | 
					
						
							| 
									
										
										
										
											2018-02-25 18:46:17 +08:00
										 |  |  | 		{ | 
					
						
							|  |  |  | 			name: "line-column (start only)", | 
					
						
							|  |  |  | 			loc: { | 
					
						
							|  |  |  | 				start: { | 
					
						
							|  |  |  | 					line: 5, | 
					
						
							|  |  |  | 					column: 6 | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 			result: "5:6" | 
					
						
							| 
									
										
										
										
											2017-01-10 13:00:03 +08:00
										 |  |  | 		}, | 
					
						
							| 
									
										
										
										
											2018-02-25 18:46:17 +08:00
										 |  |  | 		{ | 
					
						
							|  |  |  | 			name: "line", | 
					
						
							|  |  |  | 			loc: { | 
					
						
							|  |  |  | 				start: { | 
					
						
							|  |  |  | 					line: 10 | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 				end: { | 
					
						
							| 
									
										
										
										
											2018-07-15 15:57:36 +08:00
										 |  |  | 					line: 20 | 
					
						
							| 
									
										
										
										
											2018-02-25 18:46:17 +08:00
										 |  |  | 				} | 
					
						
							|  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2018-07-15 15:57:36 +08:00
										 |  |  | 			result: "10-20" | 
					
						
							| 
									
										
										
										
											2017-01-10 13:00:03 +08:00
										 |  |  | 		}, | 
					
						
							| 
									
										
										
										
											2018-02-25 18:46:17 +08:00
										 |  |  | 		{ | 
					
						
							|  |  |  | 			name: "line", | 
					
						
							|  |  |  | 			loc: { | 
					
						
							|  |  |  | 				start: null, | 
					
						
							|  |  |  | 				end: /f/ | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 			result: "" | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	]; | 
					
						
							| 
									
										
										
										
											2017-01-10 13:00:03 +08:00
										 |  |  | 	testCases.forEach(testCase => { | 
					
						
							|  |  |  | 		it(`should format location correctly for ${testCase.name}`, () => { | 
					
						
							| 
									
										
										
										
											2018-01-24 20:17:21 +08:00
										 |  |  | 			expect(formatLocation(testCase.loc)).toEqual(testCase.result); | 
					
						
							| 
									
										
										
										
											2017-01-10 13:00:03 +08:00
										 |  |  | 		}); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | }); |