`quickinfo` is used for hover tooltip. `definition` is used for "Go to definition". PR Close #29990
		
			
				
	
	
		
			35 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { writeFileSync, readFileSync } from 'fs';
 | |
| 
 | |
| const goldens: string[] = process.argv.slice(2);
 | |
| 
 | |
| export const goldenMatcher: jasmine.CustomMatcherFactories = {
 | |
|   toMatchGolden(util: jasmine.MatchersUtil): jasmine.CustomMatcher {
 | |
|     return {
 | |
|       compare(actual: {command: string}, golden: string): jasmine.CustomMatcherResult {
 | |
|         if (goldens.includes(golden)) {
 | |
|           console.error(`Writing golden file ${golden}`);
 | |
|           writeFileSync(`./goldens/${golden}`, JSON.stringify(actual, null, 2));
 | |
|           return { pass : true };
 | |
|         }
 | |
|         const content = readFileSync(`./goldens/${golden}`, 'utf-8');
 | |
|         const expected = JSON.parse(content.replace("${PWD}", process.env.PWD!));
 | |
|         const pass = util.equals(actual, expected);
 | |
|         return {
 | |
|           pass,
 | |
|           message: `Expected ${JSON.stringify(actual, null, 2)} to match golden ` +
 | |
|             `${JSON.stringify(expected, null, 2)}.\n` +
 | |
|             `To generate new golden file, run "yarn golden ${golden}".`,
 | |
|         };
 | |
|       }
 | |
|     };
 | |
|   },
 | |
| };
 | |
| 
 | |
| declare global {
 | |
|   namespace jasmine {
 | |
|     interface Matchers<T> {
 | |
|       toMatchGolden(golden: string): void
 | |
|     }
 | |
|   }
 | |
| }
 |