lundi 7 décembre 2015

Expose object fron Angularjs App to Protractor test

I am writing end-to-end tests for my AngularJS-based application using Protractor. Some cases require using mocks to test - for example, a network connection issue. If an AJAX request to server fails, the user must see a warning message.

My mocks are registered in the application as services. I want them to be accessible to the tests to write something like this:

var proxy;
beforeEach(function() { proxy = getProxyMock(); });

it("When network is OK, request succeeds", function(done) {
    proxy.networkAvailable = true;

    element(by.id('loginButton')).click().then(function() {
        expect(element(by.id('error')).count()).toEqual(0);
        done();
    });
});

it("When network is faulty, message is displayed", function(done) {
    proxy.networkAvailable = false;

    element(by.id('loginButton')).click().then(function() {
        expect(element(by.id('error')).count()).toEqual(1);
        done();
    });
});

How do I implement the getProxyMock function to pass an object from the application to the test? I can store proxies in the window object of the app, but still do not know how to access it.

Aucun commentaire:

Enregistrer un commentaire