3

I'm developing a frontend app for a REST API. I'm using Protractor for end-to-end tests with the API mocked out. I was able to mock AUTHtoken API response and navigate to chosen URL, but page displayed under destined URL renders empty. Here's my code:

describe('e2e tests', function() {

it('FO tests', function() {

browser.addMockModule('WebClientApp', function() {
  console.log('test');
  angular.module('WebClientApp', ['ngMockE2E'])
  .run(function($httpBackend) {
    console.log('test2');

    $httpBackend.whenPOST('http://0.0.0.0:9000/api/organizations').respond(200);
    $httpBackend.whenPOST('/api/auth/get_resource_by_token').respond(200);
    $httpBackend.whenGET('/api/auth/current_resource').respond(200);
    $httpBackend.whenGET(/.*/).respond(200);
  });

});
browser.getRegisteredMockModules();

browser.get('http://0.0.0.0:9000/#/organizations/profile');

browser.pause();
});
});

Sadly, Protractor console does not provide information about errors during page render.

Phil
  • 157,677
  • 23
  • 242
  • 245
  • Seeing as you `pause` the browser, why don't you have a look for any errors in its console. Also, I don't see any response data. If your pages depend on the API data to render, then you aren't going to see anything – Phil Jun 19 '15 at 01:36
  • I have problem with understanding how '.whenPOST(url, [data], [headers]);' method works. (https://docs.angularjs.org/api/ngMock/service/$httpBackend). How can i pass header and reponse data in the same reponse method ? – Łukasz Kałużny Jun 19 '15 at 09:58
  • 1
    end-to-end tests with the API mocked out is not an end-to-end test or do I have a wrong understanding of end-to-end testing ? – Mischa Sep 02 '15 at 06:45

1 Answers1

-1

Actually, response with status 200 does not ensure you have authenticated. You need to pass and handle some token/session header.

Also $httpBackend.flush(); is needed. Then test should pass.

$httpBackend.expectGET('http://0.0.0.0:9000/#/organizations/profile');
$httpBackend.flush();

More explanation will be found on the last it(...) block in Angular doc for $httpBackend

devbd
  • 431
  • 3
  • 12