entryComponents is no longer required in Angular 9.
Fixes: https://tracker.ceph.com/issues/45325
Signed-off-by: Tiago Melo <tmelo@suse.com>
import { RbdTrashRestoreModalComponent } from './rbd-trash-restore-modal/rbd-trash-restore-modal.component';
@NgModule({
- entryComponents: [
- RbdDetailsComponent,
- RbdNamespaceFormModalComponent,
- RbdSnapshotFormModalComponent,
- RbdTrashMoveModalComponent,
- RbdTrashRestoreModalComponent,
- RbdTrashPurgeModalComponent,
- IscsiTargetDetailsComponent,
- IscsiTargetImageSettingsModalComponent,
- IscsiTargetIqnSettingsModalComponent,
- IscsiTargetDiscoveryModalComponent
- ],
imports: [
CommonModule,
MirroringModule,
i18nProviders,
IscsiHelper
} from '../../../../testing/unit-test-helper';
+import { LoadingPanelComponent } from '../../../shared/components/loading-panel/loading-panel.component';
import { CdFormGroup } from '../../../shared/forms/cd-form-group';
import { SharedModule } from '../../../shared/shared.module';
import { IscsiTargetFormComponent } from './iscsi-target-form.component';
}
];
- configureTestBed({
- declarations: [IscsiTargetFormComponent],
- imports: [
- SharedModule,
- ReactiveFormsModule,
- HttpClientTestingModule,
- RouterTestingModule,
- ToastrModule.forRoot()
- ],
- providers: [
- i18nProviders,
- {
- provide: ActivatedRoute,
- useValue: new ActivatedRouteStub({ target_iqn: undefined })
- }
- ]
- });
+ configureTestBed(
+ {
+ declarations: [IscsiTargetFormComponent],
+ imports: [
+ SharedModule,
+ ReactiveFormsModule,
+ HttpClientTestingModule,
+ RouterTestingModule,
+ ToastrModule.forRoot()
+ ],
+ providers: [
+ i18nProviders,
+ {
+ provide: ActivatedRoute,
+ useValue: new ActivatedRouteStub({ target_iqn: undefined })
+ }
+ ]
+ },
+ [LoadingPanelComponent]
+ );
beforeEach(() => {
fixture = TestBed.createComponent(IscsiTargetFormComponent);
import { PoolListComponent } from './pool-list/pool-list.component';
@NgModule({
- entryComponents: [
- BootstrapCreateModalComponent,
- BootstrapImportModalComponent,
- EditSiteNameModalComponent,
- OverviewComponent,
- PoolEditModeModalComponent,
- PoolEditPeerModalComponent
- ],
imports: [
CommonModule,
SharedModule,
import { ModalModule } from 'ngx-bootstrap/modal';
import { TimepickerModule } from 'ngx-bootstrap/timepicker';
-import { OrchestratorDocModalComponent } from '../../shared/components/orchestrator-doc-modal/orchestrator-doc-modal.component';
import { SharedModule } from '../../shared/shared.module';
import { PerformanceCounterModule } from '../performance-counter/performance-counter.module';
import { CephSharedModule } from '../shared/ceph-shared.module';
import { TelemetryComponent } from './telemetry/telemetry.component';
@NgModule({
- entryComponents: [
- OsdDetailsComponent,
- OsdScrubModalComponent,
- OsdFlagsModalComponent,
- OsdRecvSpeedModalComponent,
- OsdReweightModalComponent,
- OsdPgScrubModalComponent,
- OsdReweightModalComponent,
- SilenceMatcherModalComponent,
- OsdDevicesSelectionModalComponent,
- OsdCreationPreviewModalComponent,
- OrchestratorDocModalComponent
- ],
imports: [
CommonModule,
PerformanceCounterModule,
import { HttpClientTestingModule } from '@angular/common/http/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { configureTestBed, i18nProviders } from '../../../../../testing/unit-test-helper';
+import { LoadingPanelComponent } from '../../../../shared/components/loading-panel/loading-panel.component';
import { SharedModule } from '../../../../shared/shared.module';
import { HostFormComponent } from './host-form.component';
let component: HostFormComponent;
let fixture: ComponentFixture<HostFormComponent>;
- configureTestBed({
- imports: [
- SharedModule,
- HttpClientTestingModule,
- RouterTestingModule,
- ReactiveFormsModule,
- ToastrModule.forRoot()
- ],
- providers: [i18nProviders],
- declarations: [HostFormComponent]
- });
+ configureTestBed(
+ {
+ imports: [
+ SharedModule,
+ HttpClientTestingModule,
+ RouterTestingModule,
+ ReactiveFormsModule,
+ ToastrModule.forRoot()
+ ],
+ providers: [i18nProviders],
+ declarations: [HostFormComponent]
+ },
+ [LoadingPanelComponent]
+ );
beforeEach(() => {
fixture = TestBed.createComponent(HostFormComponent);
import { ToastrModule } from 'ngx-toastr';
import { configureTestBed, i18nProviders } from '../../../../../testing/unit-test-helper';
+import { LoadingPanelComponent } from '../../../../shared/components/loading-panel/loading-panel.component';
import { SharedModule } from '../../../../shared/shared.module';
import { MgrModuleFormComponent } from './mgr-module-form.component';
let component: MgrModuleFormComponent;
let fixture: ComponentFixture<MgrModuleFormComponent>;
- configureTestBed({
- declarations: [MgrModuleFormComponent],
- imports: [
- HttpClientTestingModule,
- ReactiveFormsModule,
- RouterTestingModule,
- SharedModule,
- ToastrModule.forRoot()
- ],
- providers: i18nProviders
- });
+ configureTestBed(
+ {
+ declarations: [MgrModuleFormComponent],
+ imports: [
+ HttpClientTestingModule,
+ ReactiveFormsModule,
+ RouterTestingModule,
+ SharedModule,
+ ToastrModule.forRoot()
+ ],
+ providers: i18nProviders
+ },
+ [LoadingPanelComponent]
+ );
beforeEach(() => {
fixture = TestBed.createComponent(MgrModuleFormComponent);
import { MgrModuleService } from '../../../shared/api/mgr-module.service';
import { TelemetryService } from '../../../shared/api/telemetry.service';
+import { LoadingPanelComponent } from '../../../shared/components/loading-panel/loading-panel.component';
import { TextToDownloadService } from '../../../shared/services/text-to-download.service';
import { SharedModule } from '../../../shared/shared.module';
import { TelemetryComponent } from './telemetry.component';
'url'
];
- configureTestBed({
- declarations: [TelemetryComponent],
- imports: [
- HttpClientTestingModule,
- ReactiveFormsModule,
- RouterTestingModule,
- SharedModule,
- ToastrModule.forRoot()
- ],
- providers: i18nProviders
- });
+ configureTestBed(
+ {
+ declarations: [TelemetryComponent],
+ imports: [
+ HttpClientTestingModule,
+ ReactiveFormsModule,
+ RouterTestingModule,
+ SharedModule,
+ ToastrModule.forRoot()
+ ],
+ providers: i18nProviders
+ },
+ [LoadingPanelComponent]
+ );
describe('configForm', () => {
beforeEach(() => {
import { ActivatedRouteStub } from '../../../../testing/activated-route-stub';
import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
+import { LoadingPanelComponent } from '../../../shared/components/loading-panel/loading-panel.component';
import { CephReleaseNamePipe } from '../../../shared/pipes/ceph-release-name.pipe';
import { SummaryService } from '../../../shared/services/summary.service';
import { SharedModule } from '../../../shared/shared.module';
let httpTesting: HttpTestingController;
let activatedRoute: ActivatedRouteStub;
- configureTestBed({
- declarations: [NfsFormComponent, NfsFormClientComponent],
- imports: [
- HttpClientTestingModule,
- ReactiveFormsModule,
- RouterTestingModule,
- SharedModule,
- ToastrModule.forRoot(),
- NgbTypeaheadModule
- ],
- providers: [
- {
- provide: ActivatedRoute,
- useValue: new ActivatedRouteStub({ cluster_id: undefined, export_id: undefined })
- },
- i18nProviders,
- SummaryService,
- CephReleaseNamePipe
- ]
- });
+ configureTestBed(
+ {
+ declarations: [NfsFormComponent, NfsFormClientComponent],
+ imports: [
+ HttpClientTestingModule,
+ ReactiveFormsModule,
+ RouterTestingModule,
+ SharedModule,
+ ToastrModule.forRoot(),
+ NgbTypeaheadModule
+ ],
+ providers: [
+ {
+ provide: ActivatedRoute,
+ useValue: new ActivatedRouteStub({ cluster_id: undefined, export_id: undefined })
+ },
+ i18nProviders,
+ SummaryService,
+ CephReleaseNamePipe
+ ]
+ },
+ [LoadingPanelComponent]
+ );
beforeEach(() => {
const summaryService = TestBed.inject(SummaryService);
ErasureCodeProfileFormModalComponent,
CrushRuleFormModalComponent,
PoolDetailsComponent
- ],
- entryComponents: [CrushRuleFormModalComponent, ErasureCodeProfileFormModalComponent]
+ ]
})
export class PoolModule {}
import { RgwUserSwiftKeyModalComponent } from './rgw-user-swift-key-modal/rgw-user-swift-key-modal.component';
@NgModule({
- entryComponents: [
- RgwDaemonDetailsComponent,
- RgwBucketDetailsComponent,
- RgwUserDetailsComponent,
- RgwUserSwiftKeyModalComponent,
- RgwUserS3KeyModalComponent,
- RgwUserCapabilityModalComponent,
- RgwUserSubuserModalComponent
- ],
imports: [
CommonModule,
SharedModule,
import { configureTestBed, FormHelper, i18nProviders } from '../../../../testing/unit-test-helper';
import { RoleService } from '../../../shared/api/role.service';
import { ScopeService } from '../../../shared/api/scope.service';
+import { LoadingPanelComponent } from '../../../shared/components/loading-panel/loading-panel.component';
import { CdFormGroup } from '../../../shared/forms/cd-form-group';
import { NotificationService } from '../../../shared/services/notification.service';
import { SharedModule } from '../../../shared/shared.module';
const routes: Routes = [{ path: 'roles', component: FakeComponent }];
- configureTestBed({
- imports: [
- RouterTestingModule.withRoutes(routes),
- HttpClientTestingModule,
- ReactiveFormsModule,
- ToastrModule.forRoot(),
- SharedModule
- ],
- declarations: [RoleFormComponent, FakeComponent],
- providers: i18nProviders
- });
+ configureTestBed(
+ {
+ imports: [
+ RouterTestingModule.withRoutes(routes),
+ HttpClientTestingModule,
+ ReactiveFormsModule,
+ ToastrModule.forRoot(),
+ SharedModule
+ ],
+ declarations: [RoleFormComponent, FakeComponent],
+ providers: i18nProviders
+ },
+ [LoadingPanelComponent]
+ );
beforeEach(() => {
fixture = TestBed.createComponent(RoleFormComponent);
import { SettingsService } from '../../../shared/api/settings.service';
import { UserService } from '../../../shared/api/user.service';
import { ComponentsModule } from '../../../shared/components/components.module';
+import { LoadingPanelComponent } from '../../../shared/components/loading-panel/loading-panel.component';
import { CdFormGroup } from '../../../shared/forms/cd-form-group';
import { AuthStorageService } from '../../../shared/services/auth-storage.service';
import { NotificationService } from '../../../shared/services/notification.service';
{ path: 'users', component: FakeComponent }
];
- configureTestBed({
- imports: [
- RouterTestingModule.withRoutes(routes),
- HttpClientTestingModule,
- ReactiveFormsModule,
- ComponentsModule,
- ToastrModule.forRoot(),
- SharedModule,
- ButtonsModule.forRoot(),
- BsDatepickerModule.forRoot()
- ],
- declarations: [UserFormComponent, FakeComponent],
- providers: i18nProviders
- });
+ configureTestBed(
+ {
+ imports: [
+ RouterTestingModule.withRoutes(routes),
+ HttpClientTestingModule,
+ ReactiveFormsModule,
+ ComponentsModule,
+ ToastrModule.forRoot(),
+ SharedModule,
+ ButtonsModule.forRoot(),
+ BsDatepickerModule.forRoot()
+ ],
+ declarations: [UserFormComponent, FakeComponent],
+ providers: i18nProviders
+ },
+ [LoadingPanelComponent]
+ );
beforeEach(() => {
spyOn(TestBed.inject(PasswordPolicyService), 'getHelpText').and.callFake(() => of(''));
import { NotificationsComponent } from './notifications/notifications.component';
@NgModule({
- entryComponents: [AboutComponent],
imports: [
CommonModule,
AuthModule,
AlertPanelComponent,
PwdExpirationNotificationComponent,
OrchestratorDocPanelComponent
- ],
- entryComponents: [
- ModalComponent,
- CriticalConfirmationModalComponent,
- ConfirmationModalComponent,
- FormModalComponent
]
})
export class ComponentsModule {}
import { SubmitButtonComponent } from '../submit-button/submit-button.component';
import { ConfirmationModalComponent } from './confirmation-modal.component';
-@NgModule({
- entryComponents: [ConfirmationModalComponent]
-})
+@NgModule({})
export class MockModule {}
@Component({
import { LoadingPanelComponent } from '../loading-panel/loading-panel.component';
import { CriticalConfirmationModalComponent } from './critical-confirmation-modal.component';
-@NgModule({
- entryComponents: [CriticalConfirmationModalComponent]
-})
+@NgModule({})
export class MockModule {}
@Component({
import { NgModule } from '@angular/core';
-import { AlertPanelComponent } from '../components/alert-panel/alert-panel.component';
-import { LoadingPanelComponent } from '../components/loading-panel/loading-panel.component';
import { AutofocusDirective } from './autofocus.directive';
import { Copy2ClipboardButtonDirective } from './copy2clipboard-button.directive';
import { DimlessBinaryPerSecondDirective } from './dimless-binary-per-second.directive';
MillisecondsDirective,
IopsDirective,
FormLoadingDirective
- ],
- providers: [],
- entryComponents: [LoadingPanelComponent, AlertPanelComponent]
+ ]
})
export class DirectivesModule {}
import { NgbAlertModule } from '@ng-bootstrap/ng-bootstrap';
import { configureTestBed, i18nProviders } from '../../../testing/unit-test-helper';
+import { AlertPanelComponent } from '../components/alert-panel/alert-panel.component';
+import { LoadingPanelComponent } from '../components/loading-panel/loading-panel.component';
import { CdForm } from '../forms/cd-form';
import { SharedModule } from '../shared.module';
import { FormLoadingDirective } from './form-loading.directive';
expect(fixture.debugElement.queryAll(By.css('cd-loading-panel')).length).toEqual(loading);
};
- configureTestBed({
- declarations: [TestComponent],
- imports: [SharedModule, NgbAlertModule],
- providers: [i18nProviders]
- });
+ configureTestBed(
+ {
+ declarations: [TestComponent],
+ imports: [SharedModule, NgbAlertModule],
+ providers: [i18nProviders]
+ },
+ [LoadingPanelComponent, AlertPanelComponent]
+ );
afterEach(() => {
fixture = null;
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AbstractControl } from '@angular/forms';
import { By } from '@angular/platform-browser';
+import { BrowserDynamicTestingModule } from '@angular/platform-browser-dynamic/testing';
import { I18n } from '@ngx-translate/i18n-polyfill';
import { configureTestSuite } from 'ng-bullet';
PrometheusRule
} from '../app/shared/models/prometheus-alerts';
-export function configureTestBed(configuration: any) {
- configureTestSuite(() => TestBed.configureTestingModule(configuration));
+export function configureTestBed(configuration: any, entryComponents?: any) {
+ configureTestSuite(() => {
+ if (entryComponents) {
+ // Declare entryComponents without having to add them to a module
+ // This is needed since Jest doesn't yet support not declaring entryComponents
+ TestBed.configureTestingModule(configuration).overrideModule(BrowserDynamicTestingModule, {
+ set: { entryComponents: entryComponents }
+ });
+ } else {
+ TestBed.configureTestingModule(configuration);
+ }
+ });
}
export class PermissionHelper {