Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jasmine-node done is not defined

Have been trying a simple async test. Installed jasmine-node npm install -g jasmine-node then wrote a simple module and test.

Simple module.

// weather.js
exports.get = function(city, callback) {
    callback(city);
};

and a test suite.

// weather-spec.js
var list = require("../modules/weather");

describe("Weather Forecast", function(data) {
    it('should get weather for London,UK', function() {
        list.get('London,UK', function(data) {
            expect(data).toEqual('London,UK');
            done();
        });
    });
});

I get the error:

Stacktrace:
    ReferenceError: done is not defined

Given the simple example I can't see where I am going wrong. Can anyone help?

like image 795
Mark Tyers Avatar asked Mar 30 '15 14:03

Mark Tyers


Video Answer


2 Answers

done is the first argument passed to it:

it('should get weather for London,UK', function(done) {
    list.get('London,UK', function(data) {
        expect(data).toEqual('London,UK');
        done();
    });
});
like image 104
jgillich Avatar answered Oct 17 '22 11:10

jgillich


describe("Weather Forecast", function(data) {
    it('should get weather for London,UK', function(done) {
        list.get('London,UK', function(data) {
            expect(data).toEqual('London,UK');
            done();
        });
    });
});

Make sure you pass in done in it's callback.

like image 32
Calvin Cheng Avatar answered Oct 17 '22 10:10

Calvin Cheng