Jasmine Fiddle
by Winter Soldier
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.5.2/jasmine.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.5.2/jasmine-html.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.5.2/boot.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.5.2/jasmine.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jasmine-ajax/3.3.1/mock-ajax.js"></script>
JavaScript
var usersStore = {
store: {
users: []
},
get: function() {
return this.store;
},
set: function(key, value) {
if (key) {
this.store[key] = value;
} else {
console.error("Key required");
}
},
init: function(initObject) {
this.store.users = initObject;
}
};
var api = {
serviceCall: () => {
$.ajax('').done((data) => {
usersStore.init(data);
});
}
};
describe('test api call', () => {
it('ajax success', () => {
expect(true).toBe(true);
var userObj = [{
'name': 'StackOverflow'
}];
spyOn($, 'ajax').and.callFake((e) => {
return $.Deferred().resolve(userObj).promise();
});
api.serviceCall();
expect(usersStore.get().users[0].name).toEqual('StackOverflow');
});
});