Atrasando uma resposta com $ httpBackend
Na minha opinião, eu tenho o carregamento de animação que é exibida até receber uma resposta da API.
//Displayed before we've received API response
<p ng-if="vm.vehicles == null">Loading ...</p>
//Displayed once we received response for the API
<table ng-if="vm.vehicles">
<tr ng-repeat="vehicle.vm.vehicles">...</tr>
Para fazer meus testes, eu uso o$httpBackend
Módulo angular. Algo assim:
$httpBackend.whenGET('api/vehicles').respond({vehicles: [...]});
Problema
Quero escrever um teste para verificar se a animação de carregamento é exibida.
Eu tentei:
expect(ptor.isElementPresent(By.cssContainingText('p', 'Loading'))).to.eventually.be.true;`
mas eu não passo. Então, acho que preciso atrasar condicionalmente a resposta que recebo do $ httpBackend.
Encontrei esta postagem no bloghttp://endlessindirection.wordpress.com/2013/05/18/angularjs-delay-response-from-httpbackend/
No entanto, ao inserir esse método de configuração, todos os meus testes falharam (acho que porque os modelos não são carregados a tempo) atrasam TODAS as respostas, portanto não é exatamente o que eu preciso.
Então, como posso atrasar a resposta para essa ligação? Idealmente, gostaria de adiá-lo apenas para esse teste.