angular - StaticInjectorError(DynamicTestModule) - NullInjectorError: Nu există un furnizor pentru InjectionToken fuseCustomConfig


Tocmai am început cu testarea, așa că am nevoie de puțin ajutor.

Am un LoginModule în Angular care conține LoginComponent pe care vreau să-l testez.

Iată configurația LoginModule

@NgModule({
    declarations: [
        LoginComponent
    ],
    imports: [
        CommonModule,
        ReactiveFormsModule,
        RouterModule.forChild(routes),

        MatFormFieldModule,
        MatInputModule,
        MatCheckboxModule,
        MatSnackBarModule,
        MatButtonModule,
        MatRadioModule
    ]
})
export class LoginModule { }

Și LoginComponent depinde de servicii precum

constructor(
        private fuseConfig: FuseConfigService,
        private formBuilder: FormBuilder,
        private router: Router,
        private authenticationService: AuthService,
        private route: ActivatedRoute,
        private snackBar: MatSnackBar,
        private fuseNavigationService: FuseNavigationService,
        private pbiService: PbiService,
        private translateService: TranslateService
    ) {
        this.incorrectCredentials = false;
        this.loginFormErrors = {
            email: {},
            password: {},
        };
      }

Și iată cum scriu fișierul spec

import { TestBed, fakeAsync, ComponentFixture } from "@angular/core/testing";
import { DebugElement } from "@angular/core";
import { By } from "@angular/platform-browser";

import { LoginComponent } from "./login.component";
import { LoginModule } from "./login.module";
import { Router } from "@angular/router";
import { FuseConfigService } from "@fuse/services/config.service";
import { FuseNavigationService } from "@fuse/components/navigation/navigation.service";

describe("Login Module -> ", () => {

    let component: LoginComponent;
    let fixture: ComponentFixture<LoginComponent>;

    beforeEach(() => {
        // refine the test module by declaring the test component
        TestBed.configureTestingModule({
            imports: [LoginModule],
            providers: [
                { provide: Router, useClass: class { navigate = jasmine.createSpy("navigate"); } },
                FuseConfigService, FuseNavigationService
            ]
        });

        // create component and test fixture
        fixture = TestBed.createComponent(LoginComponent);

        // get test component from the fixture
        component = fixture.componentInstance;
    });

    it("Login page has title and login button", fakeAsync(() => {
        const elTitle: DebugElement = fixture.debugElement.query(By.css(".la-title"));
        expect(elTitle.nativeElement.textContent.trim()).toBe("");
        fixture.detectChanges();
        expect(elTitle.nativeElement.textContent.trim()).toBe("Login");
    }));
});

Dar primesc următoarea eroare

Error: StaticInjectorError(DynamicTestModule)[FuseConfigService -> InjectionToken fuseCustomConfig]: 
  StaticInjectorError(Platform: core)[FuseConfigService -> InjectionToken fuseCustomConfig]: 
    NullInjectorError: No provider for InjectionToken fuseCustomConfig!

Îmi scapă ceva?

Și este aceasta calea corectă de a testa un Component dintr-un Modul, adică importând modulul în sine, sau declarând componenta doar în TestBed.configureTestingModule ?