Merge pull request #12795 from eduNEXT/fmo/coffee_to_js_cms_main

Convert cms/coffee/src/main to js
This commit is contained in:
Andy Armstrong
2016-07-20 15:16:48 -04:00
committed by GitHub
22 changed files with 173 additions and 136 deletions

View File

@@ -197,7 +197,7 @@
'mock-ajax': {
deps: ['jquery']
},
'coffee/src/main': {
'cms/js/main': {
deps: ['coffee/src/ajax_prefix']
},
'coffee/src/ajax_prefix': {
@@ -209,8 +209,8 @@
jasmine.getFixtures().fixturesPath += 'coffee/fixtures';
testFiles = [
'cms/js/spec/main_spec',
'cms/js/spec/xblock/cms.runtime.v1_spec',
'coffee/spec/main_spec',
'coffee/spec/models/course_spec',
'coffee/spec/models/metadata_spec',
'coffee/spec/models/section_spec',

View File

@@ -0,0 +1,81 @@
(function(sandbox) {
'use strict';
require(["jquery", "backbone", "cms/js/main", "edx-ui-toolkit/js/utils/spec-helpers/ajax-helpers", "jquery.cookie"],
function($, Backbone, main, AjaxHelpers) {
describe("CMS", function() {
it("should initialize URL", function() {
expect(window.CMS.URL).toBeDefined();
});
});
describe("main helper", function() {
beforeEach(function() {
this.previousAjaxSettings = $.extend(true, {}, $.ajaxSettings);
spyOn($, "cookie").and.callFake(function(param) {
if (param === "csrftoken") {
return "stubCSRFToken";
}
});
return main();
});
afterEach(function() {
$.ajaxSettings = this.previousAjaxSettings;
return $.ajaxSettings;
});
it("turn on Backbone emulateHTTP", function() {
expect(Backbone.emulateHTTP).toBeTruthy();
});
it("setup AJAX CSRF token", function() {
expect($.ajaxSettings.headers["X-CSRFToken"]).toEqual("stubCSRFToken");
});
});
describe("AJAX Errors", function() {
var server;
server = null;
beforeEach(function() {
appendSetFixtures(sandbox({
id: "page-notification"
}));
});
afterEach(function() {
return server && server.restore();
});
it("successful AJAX request does not pop an error notification", function() {
server = AjaxHelpers.server([
200, {
"Content-Type": "application/json"
}, "{}"
]);
expect($("#page-notification")).toBeEmpty();
$.ajax("/test");
expect($("#page-notification")).toBeEmpty();
server.respond();
expect($("#page-notification")).toBeEmpty();
});
it("AJAX request with error should pop an error notification", function() {
server = AjaxHelpers.server([
500, {
"Content-Type": "application/json"
}, "{}"
]);
$.ajax("/test");
server.respond();
expect($("#page-notification")).not.toBeEmpty();
expect($("#page-notification")).toContainElement('div.wrapper-notification-error');
});
it("can override AJAX request with error so it does not pop an error notification", function() {
server = AjaxHelpers.server([
500, {
"Content-Type": "application/json"
}, "{}"
]);
$.ajax({
url: "/test",
notifyOnError: false
});
server.respond();
expect($("#page-notification")).toBeEmpty();
});
});
});
}).call(this, sandbox); //jshint ignore:line

View File

@@ -172,7 +172,7 @@
exports: 'XBlock',
deps: ['xblock/core']
},
'coffee/src/main': {
'cms/js/main': {
deps: ['coffee/src/ajax_prefix']
},
'coffee/src/ajax_prefix': {