Open
Description
Description
With Angular 19, components are standalone by default and do not require an explicit standalone: true
flag. The @ionic/angular-toolkit:component
schematic exhibits two inconsistent behaviors:
-
With
"standalone": true
inangular.json
schematics- The generated component and test scaffold are correct for standalone usage.
- However, the component decorator still includes
standalone: true
explicitly, which is redundant in Angular 19.
-
Without the
standalone
option in schematics- The generated component decorator omits
standalone: true
(correct). - The generated test
.spec.ts
falls back to the legacy NgModule-based pattern:rather than the standalone pattern:TestBed.configureTestingModule({ declarations: [TestComponent], imports: [IonicModule.forRoot()] }).compileComponents();
TestBed.configureTestingModule({ imports: [TestComponent], }).compileComponents();
- The generated component decorator omits
This inconsistency forces maintainers to either keep a redundant flag in their code or manually update specs.
Current Behavior
- With
standalone: true
in schematics:- Component decorator contains
standalone: true
. - Test spec uses standalone-compatible setup.
- Component decorator contains
- Without
standalone
in schematics:- Component decorator is correct (no
standalone
). - Test spec uses
declarations
andIonicModule.forRoot()
, i.e., NgModule-based.
- Component decorator is correct (no
Expected Behavior
- The schematic should not inject
standalone: true
in the component decorator (Angular 19 default). - The
.spec.ts
should consistently use the standalone testing pattern, regardless of the schematicsstandalone
setting:TestBed.configureTestingModule({ imports: [TestComponent], }).compileComponents();
Reproduction Steps
- Create a new Ionic + Angular 19 project:
ionic start myApp blank --type=angular cd myApp npm install @ionic/angular-toolkit@latest
- Case A: Add to
angular.json
:- Run
ionic generate component test
- Observe redundant
standalone: true
intest.component.ts
.
- Run
- Case B: Remove the
standalone
option:"schematics": { "@ionic/angular-toolkit:component": { "styleext": "scss" } }
- Run
ionic generate component test
- Observe legacy NgModule-based test in
test.component.spec.ts
.
- Run
Environment
- @ionic/angular: 8.5.5
- @ionic/angular-toolkit: 12.2.0
- Angular CLI: 19.2
Thank you for looking into this! Please let me know if you need further details.
Metadata
Metadata
Assignees
Labels
No labels