I am trying to write a jasmine test case to test a function which returns a promise object.
My javascript looks like this:
var eventUtil = (function() {
    function ListWidget(config) {
        var el = document.getElementById(config.elementID);
        var promise = new Promise(function(resolve, reject) {
            httpUtil(config.dataURL).get(null).then(function(data) {
                data = JSON.parse(data);
                var events = data.events;
                resolve("success");
            }, function(error) {
                reject("error");
            });
        });
        return promise;
    }
    return {
        listWidget: ListWidget
    }
})()
my specs looks like this:
describe("Test suite for events", function() {
    beforeEach(function() {
        var eventList = {};
        document.body.insertAdjacentHTML("beforeend", "<div id='list'></div>");
        spyOn(window, "httpUtil").and.returnValue({
            'get': function() {
                return {
                    then: function(callback) {
                        return callback(eventList);
                    }
                }
            }
        });
    });
    it("shall create event table", function() {
        eventList = `{
            "events": [{
                "name": "A",
            }, {
                "name": "B",
            }, {
                "name": "C",
            }, {
                "name": "D",
            }]
        }`;
        var promise = eventUtil.listWidget({
            elementID: "test",
            dataURL: "js/events.json"
        });
        var listDiv = document.getElementById('list');
        expect(listDiv.innerHTML).toContain('<caption>Events ABC</caption>');
    });
    afterEach(function() {
        var listDiv = document.getElementById('list');
        listDiv.parentNode.removeChild(listDiv);
    });
});
How do I test the function eventUtil.ListWidget which returns a promise object?
 
     
    