Skip to content

Commit 83006db

Browse files
authored
test(multiple): convert Material tests to standalone (#31140)
Converts about half of the remaining non-standalone tests in Material to standalone. Also tries to clean up the testing setup a bit.
1 parent a944ca9 commit 83006db

File tree

8 files changed

+747
-928
lines changed

8 files changed

+747
-928
lines changed

src/material/autocomplete/autocomplete.spec.ts

Lines changed: 87 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,18 @@ import {
3737
waitForAsync,
3838
} from '@angular/core/testing';
3939
import {FormControl, FormsModule, ReactiveFormsModule} from '@angular/forms';
40+
import {AsyncPipe} from '@angular/common';
4041
import {By} from '@angular/platform-browser';
4142
import {Observable, Subject, Subscription} from 'rxjs';
4243
import {map, startWith} from 'rxjs/operators';
43-
import {MATERIAL_ANIMATIONS, MatOption, MatOptionSelectionChange} from '../core';
44-
import {MatFormField, MatFormFieldModule} from '../form-field';
44+
import {MATERIAL_ANIMATIONS, MatOptgroup, MatOption, MatOptionSelectionChange} from '../core';
45+
import {MatFormField} from '../form-field';
4546
import {MatInputModule} from '../input';
4647
import {
4748
MAT_AUTOCOMPLETE_DEFAULT_OPTIONS,
4849
MAT_AUTOCOMPLETE_SCROLL_STRATEGY,
4950
MatAutocomplete,
5051
MatAutocompleteDefaultOptions,
51-
MatAutocompleteModule,
5252
MatAutocompleteOrigin,
5353
MatAutocompleteSelectedEvent,
5454
MatAutocompleteTrigger,
@@ -61,23 +61,13 @@ describe('MatAutocomplete', () => {
6161
// Creates a test component fixture.
6262
function createComponent<T>(component: Type<T>, providers: Provider[] = []) {
6363
TestBed.configureTestingModule({
64-
imports: [
65-
MatAutocompleteModule,
66-
MatFormFieldModule,
67-
MatInputModule,
68-
FormsModule,
69-
ReactiveFormsModule,
70-
OverlayModule,
71-
],
7264
providers: [
7365
...providers,
7466
{provide: MATERIAL_ANIMATIONS, useValue: {animationsDisabled: true}},
7567
],
76-
declarations: [component],
7768
});
7869

7970
overlayContainerElement = TestBed.inject(OverlayContainer).getContainerElement();
80-
8171
return TestBed.createComponent<T>(component);
8272
}
8373

@@ -4022,7 +4012,16 @@ const SIMPLE_AUTOCOMPLETE_TEMPLATE = `
40224012
</mat-autocomplete>
40234013
`;
40244014

4025-
@Component({template: SIMPLE_AUTOCOMPLETE_TEMPLATE, standalone: false})
4015+
@Component({
4016+
template: SIMPLE_AUTOCOMPLETE_TEMPLATE,
4017+
imports: [
4018+
MatAutocomplete,
4019+
MatAutocompleteTrigger,
4020+
MatOption,
4021+
MatInputModule,
4022+
ReactiveFormsModule,
4023+
],
4024+
})
40264025
class SimpleAutocomplete implements OnDestroy {
40274026
stateCtrl = new FormControl<{name: string; code: string} | string | null>(null);
40284027
filteredStates: any[];
@@ -4081,27 +4080,40 @@ class SimpleAutocomplete implements OnDestroy {
40814080
@Component({
40824081
template: SIMPLE_AUTOCOMPLETE_TEMPLATE,
40834082
encapsulation: ViewEncapsulation.ShadowDom,
4084-
standalone: false,
4083+
imports: [
4084+
MatAutocomplete,
4085+
MatAutocompleteTrigger,
4086+
MatOption,
4087+
MatInputModule,
4088+
ReactiveFormsModule,
4089+
],
40854090
})
40864091
class SimpleAutocompleteShadowDom extends SimpleAutocomplete {}
40874092

40884093
@Component({
40894094
template: `
40904095
@if (isVisible) {
4091-
<mat-form-field>
4092-
<input matInput placeholder="Choose" [matAutocomplete]="auto" [formControl]="optionCtrl">
4093-
</mat-form-field>
4094-
}
4096+
<mat-form-field>
4097+
<input matInput placeholder="Choose" [matAutocomplete]="auto" [formControl]="optionCtrl">
4098+
</mat-form-field>
4099+
}
40954100
40964101
<mat-autocomplete #auto="matAutocomplete">
40974102
@for (option of filteredOptions | async; track option) {
4098-
<mat-option [value]="option">
4099-
{{option}}
4100-
</mat-option>
4101-
}
4103+
<mat-option [value]="option">
4104+
{{option}}
4105+
</mat-option>
4106+
}
41024107
</mat-autocomplete>
41034108
`,
4104-
standalone: false,
4109+
imports: [
4110+
MatAutocomplete,
4111+
MatAutocompleteTrigger,
4112+
MatOption,
4113+
MatInputModule,
4114+
ReactiveFormsModule,
4115+
AsyncPipe,
4116+
],
41054117
})
41064118
class NgIfAutocomplete {
41074119
optionCtrl = new FormControl('');
@@ -4139,7 +4151,7 @@ class NgIfAutocomplete {
41394151
}
41404152
</mat-autocomplete>
41414153
`,
4142-
standalone: false,
4154+
imports: [MatAutocomplete, MatAutocompleteTrigger, MatOption, MatInputModule],
41434155
})
41444156
class AutocompleteWithoutForms {
41454157
filteredStates: any[];
@@ -4169,7 +4181,7 @@ class AutocompleteWithoutForms {
41694181
}
41704182
</mat-autocomplete>
41714183
`,
4172-
standalone: false,
4184+
imports: [MatAutocomplete, MatAutocompleteTrigger, MatOption, MatInputModule, FormsModule],
41734185
})
41744186
class AutocompleteWithNgModel {
41754187
filteredStates: any[];
@@ -4201,7 +4213,7 @@ class AutocompleteWithNgModel {
42014213
}
42024214
</mat-autocomplete>
42034215
`,
4204-
standalone: false,
4216+
imports: [MatAutocomplete, MatAutocompleteTrigger, MatOption, MatInputModule, FormsModule],
42054217
})
42064218
class AutocompleteWithNumbers {
42074219
selectedNumber: number;
@@ -4221,7 +4233,13 @@ class AutocompleteWithNumbers {
42214233
}
42224234
</mat-autocomplete>
42234235
`,
4224-
standalone: false,
4236+
imports: [
4237+
MatAutocomplete,
4238+
MatAutocompleteTrigger,
4239+
MatOption,
4240+
MatInputModule,
4241+
ReactiveFormsModule,
4242+
],
42254243
})
42264244
class AutocompleteWithOnPushDelay implements OnInit {
42274245
@ViewChild(MatAutocompleteTrigger) trigger: MatAutocompleteTrigger;
@@ -4244,7 +4262,7 @@ class AutocompleteWithOnPushDelay implements OnInit {
42444262
}
42454263
</mat-autocomplete>
42464264
`,
4247-
standalone: false,
4265+
imports: [MatAutocomplete, MatAutocompleteTrigger, MatOption, ReactiveFormsModule, AsyncPipe],
42484266
})
42494267
class AutocompleteWithNativeInput {
42504268
optionCtrl = new FormControl('');
@@ -4268,7 +4286,7 @@ class AutocompleteWithNativeInput {
42684286

42694287
@Component({
42704288
template: `<input placeholder="Choose" [matAutocomplete]="auto" [formControl]="control">`,
4271-
standalone: false,
4289+
imports: [MatAutocomplete, MatAutocompleteTrigger, MatOption, ReactiveFormsModule],
42724290
})
42734291
class AutocompleteWithoutPanel {
42744292
@ViewChild(MatAutocompleteTrigger) trigger: MatAutocompleteTrigger;
@@ -4293,7 +4311,14 @@ class AutocompleteWithoutPanel {
42934311
}
42944312
</mat-autocomplete>
42954313
`,
4296-
standalone: false,
4314+
imports: [
4315+
MatAutocomplete,
4316+
MatAutocompleteTrigger,
4317+
MatOptgroup,
4318+
MatOption,
4319+
MatInputModule,
4320+
FormsModule,
4321+
],
42974322
})
42984323
class AutocompleteWithGroups {
42994324
@ViewChild(MatAutocompleteTrigger) trigger: MatAutocompleteTrigger;
@@ -4334,7 +4359,14 @@ class AutocompleteWithGroups {
43344359
}
43354360
</mat-autocomplete>
43364361
`,
4337-
standalone: false,
4362+
imports: [
4363+
MatAutocomplete,
4364+
MatAutocompleteTrigger,
4365+
MatOptgroup,
4366+
MatOption,
4367+
MatInputModule,
4368+
FormsModule,
4369+
],
43384370
})
43394371
class AutocompleteWithIndirectGroups extends AutocompleteWithGroups {}
43404372

@@ -4352,7 +4384,7 @@ class AutocompleteWithIndirectGroups extends AutocompleteWithGroups {}
43524384
}
43534385
</mat-autocomplete>
43544386
`,
4355-
standalone: false,
4387+
imports: [MatAutocomplete, MatAutocompleteTrigger, MatOption, MatInputModule, FormsModule],
43564388
})
43574389
class AutocompleteWithSelectEvent {
43584390
selectedState: string;
@@ -4368,7 +4400,7 @@ class AutocompleteWithSelectEvent {
43684400
<input [formControl]="formControl" [matAutocomplete]="auto"/>
43694401
<mat-autocomplete #auto="matAutocomplete"></mat-autocomplete>
43704402
`,
4371-
standalone: false,
4403+
imports: [MatAutocomplete, MatAutocompleteTrigger, MatOption, ReactiveFormsModule],
43724404
})
43734405
class PlainAutocompleteInputWithFormControl {
43744406
formControl = new FormControl('');
@@ -4386,7 +4418,7 @@ class PlainAutocompleteInputWithFormControl {
43864418
}
43874419
</mat-autocomplete>
43884420
`,
4389-
standalone: false,
4421+
imports: [MatAutocomplete, MatAutocompleteTrigger, MatOption, MatInputModule, FormsModule],
43904422
})
43914423
class AutocompleteWithNumberInputAndNgModel {
43924424
selectedValue: number;
@@ -4419,7 +4451,14 @@ class AutocompleteWithNumberInputAndNgModel {
44194451
}
44204452
</mat-autocomplete>
44214453
`,
4422-
standalone: false,
4454+
imports: [
4455+
MatAutocomplete,
4456+
MatAutocompleteTrigger,
4457+
MatAutocompleteOrigin,
4458+
MatOption,
4459+
MatInputModule,
4460+
FormsModule,
4461+
],
44234462
})
44244463
class AutocompleteWithDifferentOrigin {
44254464
@ViewChild(MatAutocompleteTrigger) trigger: MatAutocompleteTrigger;
@@ -4434,15 +4473,15 @@ class AutocompleteWithDifferentOrigin {
44344473
<input autocomplete="changed" [(ngModel)]="value" [matAutocomplete]="auto"/>
44354474
<mat-autocomplete #auto="matAutocomplete"></mat-autocomplete>
44364475
`,
4437-
standalone: false,
4476+
imports: [MatAutocomplete, MatAutocompleteTrigger, MatOption, FormsModule],
44384477
})
44394478
class AutocompleteWithNativeAutocompleteAttribute {
44404479
value: string;
44414480
}
44424481

44434482
@Component({
44444483
template: '<input [matAutocomplete]="null" matAutocompleteDisabled>',
4445-
standalone: false,
4484+
imports: [MatAutocomplete, MatAutocompleteTrigger, MatOption],
44464485
})
44474486
class InputWithoutAutocompleteAndDisabled {}
44484487

@@ -4458,7 +4497,7 @@ class InputWithoutAutocompleteAndDisabled {}
44584497
}
44594498
</mat-autocomplete>
44604499
`,
4461-
standalone: false,
4500+
imports: [MatAutocomplete, MatAutocompleteTrigger, MatOption, MatInputModule],
44624501
})
44634502
class AutocompleteWithActivatedEvent {
44644503
states = ['California', 'West Virginia', 'Florida'];
@@ -4470,7 +4509,6 @@ class AutocompleteWithActivatedEvent {
44704509
}
44714510

44724511
@Component({
4473-
selector: 'autocomplete-inside-a-modal',
44744512
template: `
44754513
<button cdkOverlayOrigin #trigger="cdkOverlayOrigin">open dialog</button>
44764514
<ng-template cdkConnectedOverlay [cdkConnectedOverlayOpen]="true"
@@ -4488,7 +4526,14 @@ class AutocompleteWithActivatedEvent {
44884526
</div>
44894527
</ng-template>
44904528
`,
4491-
standalone: false,
4529+
imports: [
4530+
MatAutocomplete,
4531+
MatAutocompleteTrigger,
4532+
MatOption,
4533+
MatInputModule,
4534+
ReactiveFormsModule,
4535+
OverlayModule,
4536+
],
44924537
})
44934538
class AutocompleteInsideAModal {
44944539
foods = [
@@ -4506,7 +4551,6 @@ class AutocompleteInsideAModal {
45064551
}
45074552

45084553
@Component({
4509-
selector: 'autocomplete-without-options',
45104554
template: `
45114555
<mat-form-field>
45124556
<input matInput [matAutocomplete]="auto">
@@ -4515,7 +4559,7 @@ class AutocompleteInsideAModal {
45154559
<mat-autocomplete #auto="matAutocomplete">
45164560
</mat-autocomplete>
45174561
`,
4518-
standalone: false,
4562+
imports: [MatAutocomplete, MatAutocompleteTrigger, MatOption, MatInputModule],
45194563
})
45204564
class AutocompleteWithoutOptions {
45214565
@ViewChild(MatAutocompleteTrigger, {static: true}) trigger: MatAutocompleteTrigger;

0 commit comments

Comments
 (0)