Studio support for cohorted courseware
TNL-652
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
define(["jquery", "underscore", "underscore.string", "js/common_helpers/ajax_helpers",
|
||||
"js/common_helpers/template_helpers", "js/spec_helpers/edit_helpers",
|
||||
"js/views/pages/container", "js/views/pages/paged_container", "js/models/xblock_info"],
|
||||
"js/views/pages/container", "js/views/pages/paged_container", "js/models/xblock_info", "jquery.simulate"],
|
||||
function ($, _, str, AjaxHelpers, TemplateHelpers, EditHelpers, ContainerPage, PagedContainerPage, XBlockInfo) {
|
||||
|
||||
function parameterized_suite(label, global_page_options, fixtures) {
|
||||
@@ -14,6 +14,7 @@ define(["jquery", "underscore", "underscore.string", "js/common_helpers/ajax_hel
|
||||
mockBadXBlockContainerXBlockHtml = readFixtures('mock/mock-bad-xblock-container-xblock.underscore'),
|
||||
mockUpdatedContainerXBlockHtml = readFixtures('mock/mock-updated-container-xblock.underscore'),
|
||||
mockXBlockEditorHtml = readFixtures('mock/mock-xblock-editor.underscore'),
|
||||
mockXBlockVisibilityEditorHtml = readFixtures('mock/mock-xblock-visibility-editor.underscore'),
|
||||
PageClass = fixtures.page;
|
||||
|
||||
beforeEach(function () {
|
||||
@@ -219,6 +220,21 @@ define(["jquery", "underscore", "underscore.string", "js/common_helpers/ajax_hel
|
||||
});
|
||||
expect(EditHelpers.isShowingModal()).toBeTruthy();
|
||||
});
|
||||
|
||||
it('can show a visibility modal for a child xblock', function() {
|
||||
var visibilityButtons;
|
||||
renderContainerPage(this, mockContainerXBlockHtml);
|
||||
visibilityButtons = containerPage.$('.wrapper-xblock .visibility-button');
|
||||
expect(visibilityButtons.length).toBe(6);
|
||||
visibilityButtons[0].click();
|
||||
expect(str.startsWith(lastRequest().url, '/xblock/locator-component-A1/visibility_view'))
|
||||
.toBeTruthy();
|
||||
AjaxHelpers.respondWithJson(requests, {
|
||||
html: mockXBlockVisibilityEditorHtml,
|
||||
resources: []
|
||||
});
|
||||
expect(EditHelpers.isShowingModal()).toBeTruthy();
|
||||
});
|
||||
});
|
||||
|
||||
describe("Editing an xmodule", function () {
|
||||
|
||||
@@ -80,7 +80,8 @@ define(["jquery", "underscore", "underscore.string", "js/common_helpers/ajax_hel
|
||||
|
||||
describe("PreviewActionController", function () {
|
||||
var viewPublishedCss = '.button-view',
|
||||
previewCss = '.button-preview';
|
||||
previewCss = '.button-preview',
|
||||
visibilityNoteCss = '.note-visibility';
|
||||
|
||||
it('renders correctly for unscheduled unit', function () {
|
||||
renderContainerPage(this, mockContainerXBlockHtml);
|
||||
@@ -109,6 +110,18 @@ define(["jquery", "underscore", "underscore.string", "js/common_helpers/ajax_hel
|
||||
fetch({published: false, has_changes: false});
|
||||
expect(containerPage.$(previewCss)).not.toHaveClass(disabledCss);
|
||||
});
|
||||
|
||||
it('updates when has_content_group_components attribute changes', function () {
|
||||
renderContainerPage(this, mockContainerXBlockHtml);
|
||||
fetch({has_content_group_components: false});
|
||||
expect(containerPage.$(visibilityNoteCss).length).toBe(0);
|
||||
|
||||
fetch({has_content_group_components: true});
|
||||
expect(containerPage.$(visibilityNoteCss).length).toBe(1);
|
||||
|
||||
fetch({has_content_group_components: false});
|
||||
expect(containerPage.$(visibilityNoteCss).length).toBe(0);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Publisher", function () {
|
||||
|
||||
@@ -85,7 +85,7 @@ define([ "jquery", "underscore", "js/common_helpers/ajax_helpers", "js/spec_help
|
||||
});
|
||||
// Give the mock xblock a save method...
|
||||
editor.xblock.save = window.MockDescriptor.save;
|
||||
editor.model.save(editor.getXModuleData());
|
||||
editor.model.save(editor.getXBlockFieldData());
|
||||
request = requests[requests.length - 1];
|
||||
response = JSON.parse(request.requestBody);
|
||||
expect(response.metadata.display_name).toBe(testDisplayName);
|
||||
|
||||
Reference in New Issue
Block a user