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>
<div id="myElement"></div>
JavaScript
function templateLoader(templateURL) {
$('#myElement').load(templateURL, null, function(response, status, xhr) {
if (status === "error") {
common.templateError(templateURL, xhr);
} else {
successFunction();
}
});
}
successFunction = function() {
console.log("This is a success Function");
}
describe("spec to test ajax url", function() {
it('test load call url', function() {
spyOn($, 'ajax').and.callThrough();
spyOn(window, 'successFunction').and.callThrough();
templateLoader("https://jsonplaceholder.typicode.com/posts/1");
expect($.ajax.calls.mostRecent().args[0]["url"]).toEqual("https://jsonplaceholder.typicode.com/posts/1");
});
it('test success function', function(){
spyOn(window, 'successFunction').and.callThrough();
spyOn($, 'ajax').and.callFake(function(e) {
return new $.Deferred().resolve({}).promise();
});
templateLoader("https://jsonplaceholder.typicode.com/posts/1");
expect($.ajax.calls.mostRecent().args[0]["url"]).toEqual("https://jsonplaceholder.typicode.com/posts/1");
expect(window.successFunction).toHaveBeenCalled();
});
});