fix(migrations): incorrect stats when migrating queries with best eff… · angular/angular@8496fb1 · GitHub
Skip to content

Commit 8496fb1

Browse files
devversionkirjs
authored andcommitted
fix(migrations): incorrect stats when migrating queries with best effort mode (#59463)
We previously did count forcibly ignored queries as incompatible. This resulted in incorrect migration stats that are printed upon migration completion. See: #58657 PR Close #59463
1 parent 86cbaaa commit 8496fb1

3 files changed

Lines changed: 140 additions & 2 deletions

File tree

‎packages/core/schematics/migrations/signal-queries-migration/migration.ts‎

Lines changed: 10 additions & 0 deletions

‎packages/core/schematics/test/queries_migration_spec.ts‎

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ describe('signal queries migration', () => {
2424
host.sync.write(normalize(filePath), virtualFs.stringToFileBuffer(contents));
2525
}
2626

27-
function runMigration(options?: {path?: string}) {
27+
function runMigration(options?: {bestEffortMode?: boolean}) {
2828
return runner.runSchematic('signal-queries-migration', options, tree);
2929
}
3030

@@ -69,4 +69,68 @@ describe('signal queries migration', () => {
6969
const content = tree.readContent('/index.ts').replace(/\s+/g, ' ');
7070
expect(content).toContain("readonly ref = contentChild.required<ElementRef>('ref');");
7171
});
72+
73+
it('should report correct statistics', async () => {
74+
writeFile(`node_modules/@tsconfig/strictest/tsconfig.json`, `{}`);
75+
writeFile(
76+
`tsconfig.json`,
77+
JSON.stringify({
78+
extends: `@tsconfig/strictest/tsconfig.json`,
79+
}),
80+
);
81+
writeFile(
82+
'/index.ts',
83+
`
84+
import {ContentChild, ElementRef, Directive} from '@angular/core';
85+
86+
@Directive({})
87+
export class SomeDirective {
88+
@ContentChild('ref') ref!: ElementRef;
89+
@ContentChild('ref') ref2: ElementRef|null = null;
90+
91+
someFn() {
92+
this.ref2 = null;
93+
}
94+
}`,
95+
);
96+
97+
const messages: string[] = [];
98+
runner.logger.subscribe((m) => messages.push(m.message));
99+
100+
await runMigration();
101+
102+
expect(messages).toContain(` -> Migrated 1/2 queries.`);
103+
});
104+
105+
it('should report correct statistics with best effort mode', async () => {
106+
writeFile(`node_modules/@tsconfig/strictest/tsconfig.json`, `{}`);
107+
writeFile(
108+
`tsconfig.json`,
109+
JSON.stringify({
110+
extends: `@tsconfig/strictest/tsconfig.json`,
111+
}),
112+
);
113+
writeFile(
114+
'/index.ts',
115+
`
116+
import {ContentChild, ElementRef, Directive} from '@angular/core';
117+
118+
@Directive({})
119+
export class SomeDirective {
120+
@ContentChild('ref') ref!: ElementRef;
121+
@ContentChild('ref') ref2: ElementRef|null = null;
122+
123+
someFn() {
124+
this.ref2 = null;
125+
}
126+
}`,
127+
);
128+
129+
const messages: string[] = [];
130+
runner.logger.subscribe((m) => messages.push(m.message));
131+
132+
await runMigration({bestEffortMode: true});
133+
134+
expect(messages).toContain(` -> Migrated 2/2 queries.`);
135+
});
72136
});

‎packages/core/schematics/test/signal_input_migration_spec.ts‎

Lines changed: 65 additions & 1 deletion

0 commit comments

Comments
 (0)