Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Promesas simulando click

17/23
Recursos

Aportes 1

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Mi solución al reto


  it('should change the status "loading" => "success" by clicking the button', fakeAsync(() => {
      // Arrange
      const productsMock = generateManyProducts();
      productService.getAll.and.returnValue(
        defer(() => Promise.resolve(productsMock))
      );
      const debugButton = fixture.debugElement.query(
        By.css('.getAllProductsButton')
      );

      // Act
      debugButton.triggerEventHandler('click', null);
      fixture.detectChanges();

      const debugSpanButtonBefore = fixture.debugElement.query(
        By.css('.getAllProductsButton span')
      ).nativeElement;
      expect(debugSpanButtonBefore.textContent).toContain('Loading');

      tick(); // Exec all pending observers, promises, setTimeout, etc;
      fixture.detectChanges();
      const debugSpanButtonAfter = fixture.debugElement.query(
        By.css('.getAllProductsButton span')
      ).nativeElement;

      // Assert
      expect(component.status).toEqual('success');
      expect(debugSpanButtonAfter.textContent).toContain('Load more');
    }));