Skip to content

Commit ee635f9

Browse files
devversionthePunderWoman
authored andcommitted
test: add language-service test for type definition of signal inputs (#54217)
Adds an extra unit test for the language-service to verify that type definitions for signal-based inputs can be resolved. PR Close #54217
1 parent b285b14 commit ee635f9

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

packages/language-service/test/type_definitions_spec.ts

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,42 @@ describe('type definitions', () => {
3939
assertFileNames(definitions, ['index.d.ts']);
4040
});
4141

42+
describe('inputs', () => {
43+
it('return the definition for a signal input', () => {
44+
initMockFileSystem('Native');
45+
const files = {
46+
'app.ts': `
47+
import {Component, Directive, input} from '@angular/core';
48+
49+
@Directive({
50+
selector: 'my-dir',
51+
standalone: true
52+
})
53+
export class MyDir {
54+
firstName = input<string>();
55+
}
56+
57+
@Component({
58+
templateUrl: 'app.html',
59+
standalone: true,
60+
imports: [MyDir],
61+
})
62+
export class AppCmp {}
63+
`,
64+
'app.html': `Will be overridden`,
65+
};
66+
env = LanguageServiceTestEnv.setup();
67+
const project = env.addProject('test', files);
68+
const definitions = getTypeDefinitionsAndAssertBoundSpan(
69+
project, {templateOverride: `<my-dir [first¦Name]="undefined" />`});
70+
expect(definitions!.length).toEqual(1);
71+
72+
assertTextSpans(definitions, ['InputSignal']);
73+
assertFileNames(definitions, ['index.d.ts']);
74+
});
75+
});
76+
77+
4278
function getTypeDefinitionsAndAssertBoundSpan(
4379
project: Project, {templateOverride}: {templateOverride: string}) {
4480
const text = templateOverride.replace('¦', '');

0 commit comments

Comments
 (0)