* fix: migrate remaining eslint-config-edx * refactor: updated eslint rules according to eslint-config-edx-es5 * refactor: add custom rules to suppress unnecessary eslint issues * refactor: add custom rules to internal eslint configs * fix: fix all indentation issues * chore: update lock file
89 lines
3.6 KiB
JavaScript
89 lines
3.6 KiB
JavaScript
/**
|
|
* Provides helper methods for invoking Studio modal windows in Jasmine tests.
|
|
*/
|
|
define(['jquery', 'common/js/components/views/feedback_notification', 'common/js/components/views/feedback_prompt',
|
|
'common/js/spec_helpers/template_helpers'],
|
|
function($, NotificationView, Prompt, TemplateHelpers) {
|
|
var installViewTemplates, createFeedbackSpy, verifyFeedbackShowing,
|
|
verifyFeedbackHidden, createNotificationSpy, verifyNotificationShowing,
|
|
verifyNotificationHidden, createPromptSpy, confirmPrompt, inlineEdit, verifyInlineEditChange,
|
|
installMockAnalytics, removeMockAnalytics, verifyPromptShowing, verifyPromptHidden;
|
|
|
|
assertDetailsView = function(view, text) {
|
|
expect(view.$el).toContainText(text);
|
|
expect(view.$el).toContainText('ID: 0');
|
|
expect(view.$('.delete')).toExist();
|
|
};
|
|
|
|
assertControllerView = function(view, detailsView, editView) {
|
|
// Details view by default
|
|
expect(view.$(detailsView)).toExist();
|
|
view.$('.action-edit .edit').click();
|
|
expect(view.$(editView)).toExist();
|
|
expect(view.$(detailsView)).not.toExist();
|
|
view.$('.action-cancel').click();
|
|
expect(view.$(detailsView)).toExist();
|
|
expect(view.$(editView)).not.toExist();
|
|
};
|
|
|
|
assertAndDeleteItemError = function(that, url, promptText) {
|
|
var requests = AjaxHelpers.requests(that),
|
|
promptSpy = ViewHelpers.createPromptSpy(),
|
|
notificationSpy = ViewHelpers.createNotificationSpy();
|
|
|
|
clickDeleteItem(that, promptSpy, promptText);
|
|
|
|
patchAndVerifyRequest(requests, url, notificationSpy);
|
|
|
|
AjaxHelpers.respondToDelete(requests);
|
|
ViewHelpers.verifyNotificationHidden(notificationSpy);
|
|
expect($(SELECTORS.itemView)).not.toExist();
|
|
};
|
|
|
|
assertAndDeleteItemWithError = function(that, url, listItemView, promptText) {
|
|
var requests = AjaxHelpers.requests(that),
|
|
promptSpy = ViewHelpers.createPromptSpy(),
|
|
notificationSpy = ViewHelpers.createNotificationSpy();
|
|
|
|
clickDeleteItem(that, promptSpy, promptText);
|
|
patchAndVerifyRequest(requests, url, notificationSpy);
|
|
|
|
AjaxHelpers.respondWithError(requests);
|
|
ViewHelpers.verifyNotificationShowing(notificationSpy, /Deleting/);
|
|
expect($(listItemView)).toExist();
|
|
};
|
|
|
|
assertUnusedOptions = function(that) {
|
|
that.model.set('usage', []);
|
|
that.view.render();
|
|
expect(that.view.$(SELECTORS.warningMessage)).not.toExist();
|
|
expect(that.view.$(SELECTORS.warningIcon)).not.toExist();
|
|
};
|
|
|
|
assertCannotDeleteUsed = function(that, toolTipText, warningText) {
|
|
setUsageInfo(that.model);
|
|
that.view.render();
|
|
expect(that.view.$(SELECTORS.note)).toHaveAttr(
|
|
'data-tooltip', toolTipText
|
|
);
|
|
expect(that.view.$(SELECTORS.warningMessage)).toContainText(warningText);
|
|
expect(that.view.$(SELECTORS.warningIcon)).toExist();
|
|
expect(that.view.$('.delete')).toHaveClass('is-disabled');
|
|
};
|
|
|
|
return {
|
|
installViewTemplates: installViewTemplates,
|
|
createNotificationSpy: createNotificationSpy,
|
|
verifyNotificationShowing: verifyNotificationShowing,
|
|
verifyNotificationHidden: verifyNotificationHidden,
|
|
confirmPrompt: confirmPrompt,
|
|
createPromptSpy: createPromptSpy,
|
|
verifyPromptShowing: verifyPromptShowing,
|
|
verifyPromptHidden: verifyPromptHidden,
|
|
inlineEdit: inlineEdit,
|
|
verifyInlineEditChange: verifyInlineEditChange,
|
|
installMockAnalytics: installMockAnalytics,
|
|
removeMockAnalytics: removeMockAnalytics
|
|
};
|
|
});
|