2017-01-26 15:42:48 -05:00
|
|
|
/**
|
|
|
|
* @license
|
2020-05-19 15:08:49 -04:00
|
|
|
* Copyright Google LLC All Rights Reserved.
|
2017-01-26 15:42:48 -05:00
|
|
|
*
|
|
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
|
|
* found in the LICENSE file at https://angular.io/license
|
|
|
|
*/
|
|
|
|
|
|
|
|
import * as ts from 'typescript';
|
|
|
|
|
|
|
|
import {createLanguageService} from '../src/language_service';
|
|
|
|
import {TypeScriptServiceHost} from '../src/typescript_host';
|
|
|
|
|
|
|
|
import {MockTypescriptHost} from './test_utils';
|
|
|
|
|
|
|
|
describe('service without angular', () => {
|
2019-11-13 16:13:59 -05:00
|
|
|
const mockHost = new MockTypescriptHost(['/app/main.ts']);
|
2019-10-14 18:24:04 -04:00
|
|
|
const service = ts.createLanguageService(mockHost);
|
|
|
|
const ngHost = new TypeScriptServiceHost(mockHost, service);
|
|
|
|
const ngService = createLanguageService(ngHost);
|
2017-01-26 15:42:48 -05:00
|
|
|
const fileName = '/app/test.ng';
|
2019-10-11 16:56:33 -04:00
|
|
|
const position = mockHost.getLocationMarkerFor(fileName, 'h1-content').start;
|
2017-01-26 15:42:48 -05:00
|
|
|
|
2020-04-03 23:57:39 -04:00
|
|
|
beforeEach(() => {
|
|
|
|
mockHost.reset();
|
|
|
|
});
|
2019-10-14 18:24:04 -04:00
|
|
|
|
2020-04-03 23:57:39 -04:00
|
|
|
it('should not crash a get diagnostics', () => {
|
|
|
|
expect(() => ngService.getSemanticDiagnostics(fileName)).not.toThrow();
|
|
|
|
});
|
2019-10-14 18:24:04 -04:00
|
|
|
|
2020-04-03 23:57:39 -04:00
|
|
|
it('should not crash a completion', () => {
|
|
|
|
expect(() => ngService.getCompletionsAtPosition(fileName, position)).not.toThrow();
|
|
|
|
});
|
2019-10-14 18:24:04 -04:00
|
|
|
|
2020-01-21 17:51:43 -05:00
|
|
|
it('should not crash a get definition', () => {
|
|
|
|
expect(() => ngService.getDefinitionAndBoundSpan(fileName, position)).not.toThrow();
|
|
|
|
});
|
2019-10-14 18:24:04 -04:00
|
|
|
|
2020-04-03 23:57:39 -04:00
|
|
|
it('should not crash a hover', () => {
|
|
|
|
expect(() => ngService.getQuickInfoAtPosition(fileName, position)).not.toThrow();
|
|
|
|
});
|
2019-10-14 18:24:04 -04:00
|
|
|
|
|
|
|
it('should not crash with an incomplete class', () => {
|
|
|
|
mockHost.addCode('\nexport class');
|
|
|
|
expect(() => ngHost.getAnalyzedModules()).not.toThrow();
|
|
|
|
});
|
2019-09-17 17:33:41 -04:00
|
|
|
});
|