it('should display error when TwainService fails', fakeAsync(() => {
  // tell spy to return an error observable
  getQuoteSpy.and.returnValue(
    throwError('TwainService test failure'));
 
  fixture.detectChanges(); // onInit()
  // sync spy errors immediately after init
 
  tick(); // flush the component's setTimeout()
 
  fixture.detectChanges(); // update errorMessage within setTimeout()
 
  expect(errorMessage()).toMatch(/test failure/, 'should display error');
  expect(quoteEl.textContent).toBe('...', 'should show placeholder');
}));