Angular5 TestBed useValue seems not injecting same object instance

Angular DI clones objects provided by useValue and from the looks of it, does it incorrectly:

https://github.com/angular/angular/issues/10788

You should use factory instead:

TestBed.configureTestingModule({
  providers: [{provide: TestInjectable, /*-->*/ useFactory: () => testInjectableMock}],
  declarations: [TestComponent]
}).compileComponents();