37 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			37 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|  | # Angular Language Service Test
 | ||
|  | 
 | ||
|  | This directory is an integration test for `@angular/language-service` to ensure | ||
|  | that various versions of the server can be loaded in the supported versions of  | ||
|  | TypeScript's language service. | ||
|  | 
 | ||
|  | ## New supported version of TypeScript
 | ||
|  | 
 | ||
|  | To add a new supported version of TypeScript: | ||
|  | 
 | ||
|  | 1) Create directory in `typescripts` to hold the new version following the pattern | ||
|  |    of the other versions. | ||
|  | 2) Add the directory name to the end of the `TYPESCRIPTS` variable in the  | ||
|  |    `scripts/env.sh` file. | ||
|  | 3) Run `scripts/update_golden.sh` to generate the expected files. | ||
|  | 4) Verify the expected output is reasonable by comparing to a known good output | ||
|  |    from a previous version. | ||
|  | 
 | ||
|  | ## Update golden files
 | ||
|  | 
 | ||
|  | If the expected output needs to be updated run `scripts/update_golden.sh` to | ||
|  | update the expected output of the server. | ||
|  | 
 | ||
|  | ## Adding a new fixture
 | ||
|  | 
 | ||
|  | Currently there is no automated way to produce a new fixture. The way the | ||
|  | current fixtures were created was to hack a version of tsserver.js to write the | ||
|  | commands from `VSCode` to a file while performing the operation to be tested. | ||
|  | I also hand modified the input to remove superfluous request. | ||
|  | 
 | ||
|  | Once a new fixture is created: | ||
|  | 
 | ||
|  | 1) Add the fixture base name (without the .json) to `FIXTURES` in  | ||
|  |    `scripts/env.sh`. | ||
|  | 2) Run `scripts/udpate_golden.sh` to produce the expected output files. | ||
|  | 3) Hand validate the expected output is reasonable. |