describe "CMS.Views.ModuleEdit", -> beforeEach -> @stubModule = jasmine.createSpy("CMS.Models.Module") @stubModule.id = 'stub-id' setFixtures """
  • ${editor}
    Save Cancel
    Edit Delete
  • """ spyOn($.fn, 'load').andReturn(@moduleData) @moduleEdit = new CMS.Views.ModuleEdit( el: $(".component") model: @stubModule onDelete: jasmine.createSpy() ) CMS.unbind() describe "class definition", -> it "sets the correct tagName", -> expect(@moduleEdit.tagName).toEqual("li") it "sets the correct className", -> expect(@moduleEdit.className).toEqual("component") describe "methods", -> describe "initialize", -> beforeEach -> spyOn(CMS.Views.ModuleEdit.prototype, 'render') @moduleEdit = new CMS.Views.ModuleEdit( el: $(".component") model: @stubModule onDelete: jasmine.createSpy() ) it "renders the module editor", -> expect(@moduleEdit.render).toHaveBeenCalled() describe "render", -> beforeEach -> spyOn(@moduleEdit, 'loadDisplay') spyOn(@moduleEdit, 'delegateEvents') @moduleEdit.render() it "loads the module preview and editor via ajax on the view element", -> expect(@moduleEdit.$el.load).toHaveBeenCalledWith("/preview_component/#{@moduleEdit.model.id}", jasmine.any(Function)) @moduleEdit.$el.load.mostRecentCall.args[1]() expect(@moduleEdit.loadDisplay).toHaveBeenCalled() expect(@moduleEdit.delegateEvents).toHaveBeenCalled() describe "loadDisplay", -> beforeEach -> spyOn(XModule, 'loadModule') @moduleEdit.loadDisplay() it "loads the .xmodule-display inside the module editor", -> expect(XModule.loadModule).toHaveBeenCalled() expect(XModule.loadModule.mostRecentCall.args[0]).toBe($('.xmodule_display'))