title: Jasmine Angular 9 test failing because 'unreachable' stack trace at injectableDefOrInjectorDefFactory
body: <p>I created an Angular application under 4.  I have migrated from version to version and am currently latest version 9.  I was reviewing my tests.  I have a Login component that I had 3 working tests and now all are failing. It is now returning the following:</p>
  
  <pre><code>LoginComponent should be created ...
  Failed: unreachable
  Error: unreachable
      at injectableDefOrInjectorDefFactory (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:17302:1)
      at providerToFactory (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:17402:1)
      at providerToRecord (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:17349:1)
      at R3Injector.processProvider (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:17165:1)
      at http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:17144:1
      at http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:1400:1
      at Array.forEach (&lt;anonymous&gt;)
      at deepForEach (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:1400:1)
      at R3Injector.processInjectorType (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:17140:1)
      at http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:16881:1
  </code></pre>
  
  <p>The Jasmine test is as following:</p>
  
  <pre><code>// File: login.component.spec.ts
  import { async, ComponentFixture, TestBed, inject, fakeAsync, tick } from '@angular/core/testing';
  import { FormsModule, ReactiveFormsModule, NgForm } from '@angular/forms';
  import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
  import { of, throwError } from 'rxjs';
  import { SelectItem } from 'primeng/api';
  import { Dialog } from 'primeng/dialog';
  import { Header, Footer } from 'primeng/api';
  import { ButtonModule } from 'primeng/button';
  //
  import { AlertsService } from '../../global/alerts/alerts.service';
  import { UserService } from '../../net-incident/services/user.service';
  import { AuthService } from '../../net-incident/services/auth.service';
  import { LoginComponent } from './login.component';
  import { ServerSelectionWindowComponent } from '../../net-incident/server-selection-window/server-selection-window.component';
  //
  describe('LoginComponent', () =&gt; {
      let sut: LoginComponent;
      let fixture: ComponentFixture&lt;LoginComponent&gt;;
      let alertService: AlertsService;
      const authServiceSpy = jasmine.createSpyObj('AuthService',
              ['authenticate', 'logout', 'isLoggedIn', 'isLoggedOut']);
      const userServiceSpy = jasmine.createSpyObj('UserService',
              ['emptyUser', 'getUser', 'getUserServer']);
      //
      beforeEach(async(() =&gt; {
          TestBed.configureTestingModule({
              imports: [
                  FormsModule,
                  ButtonModule,
                  BrowserAnimationsModule
              ],
              declarations: [
                  LoginComponent,
                  Dialog,
                  Header,
                  Footer,
                  ServerSelectionWindowComponent
              ],
              providers: [
                  { provide: AlertsService, useClass: AlertsService },
                  { provide: AuthService, useValue: authServiceSpy },
                  { provide: UserService, useClass: userServiceSpy }
              ]
          } );
          alertService = TestBed.get( AlertsService );
          TestBed.compileComponents();
      }));
      beforeEach(() =&gt; {
          fixture = TestBed.createComponent(LoginComponent);
          sut = fixture.componentInstance;
          fixture.detectChanges();
      });
      it('should be created ...', () =&gt; {
          expect( sut ).toBeTruthy();
      });
  });
  </code></pre>