Question

I am trying to write an Integration test which calls my real service (that returns JSON) and makes sure the format of the JSON is OK.

I get an error

Error: Unable to load http://localhost:7200/users/signoff status: 0
ErrorCtor@http://localhost:9000/resources/www/tests/lib/dojo/errors/create.js:29

onError@http://localhost:9000/resources/www/tests/lib/dojo/request/xhr.js:133 

I've got a service that has the actual functions to interact with the server and it returns promises from every function. My test looks like this.

 define([
    'intern!bdd',
    'intern/chai!expect',
    'app/services/myService'
 ], function (bdd, expect, MyService) {
with (bdd) {
    describe('Service Tests', function () {
        var service;

        before(function () {
            service = MyService.getInstance();
        });

        it('should sign user off', function(){
            var dfd = this.async(2000);
            service.signUserOff().then(dfd.callback(function (data) {
                expect(data).to.exist;
                expect(data.status).to.exist;
            }), dfd.reject.bind(dfd));
        });
    });
}
});

service.signOff() makes a call to the real service and then returns a promise. I have tried this with Firefox and PhantomJS both and I keep getting this error. The weird thing is, the URL in the error works fine if loaded manually in the browser.

I wonder if this is something to do with Intern not being able to load the request/xhr.js and therefore throwing this error?

Was it helpful?

Solution

The request that you are making is considered a cross-site request, so you need to either make sure your server correctly responds with the appropriate CORS headers for such a request, or you need to set up a reverse proxy that ensures that the XHR requests are occurring through the same origin.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top