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.
							 |