From 7475e415a43c94bac044df03949926ee1b1f716e Mon Sep 17 00:00:00 2001 From: Prem Sichanugrist Date: Tue, 26 Jun 2012 16:25:50 -0400 Subject: [PATCH] Fix test failure after progress introduction --- lms/static/coffee/spec/helper.coffee | 4 ++- .../coffee/spec/modules/problem_spec.coffee | 34 ++++++++++--------- lms/static/coffee/src/modules/problem.coffee | 4 +-- 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/lms/static/coffee/spec/helper.coffee b/lms/static/coffee/spec/helper.coffee index 1bb92160ce..eed1a07bd2 100644 --- a/lms/static/coffee/spec/helper.coffee +++ b/lms/static/coffee/spec/helper.coffee @@ -20,10 +20,12 @@ jasmine.stubRequests = -> settings.success data: jasmine.stubbedMetadata[match[1]] else if match = settings.url.match /static\/subs\/(.+)\.srt\.sjson/ settings.success jasmine.stubbedCaption + else if settings.url.match /modx\/problem\/.+\/problem_get$/ + settings.success html: readFixtures('problem_content.html') else if settings.url == '/calculate' || settings.url == '/6002x/modx/sequence/1/goto_position' || settings.url.match(/event$/) || - settings.url.match(/6002x\/modx\/problem\/.+\/problem_(check|reset|show|save)$/) + settings.url.match(/modx\/problem\/.+\/problem_(check|reset|show|save)$/) # do nothing else throw "External request attempted for #{settings.url}, which is not defined." diff --git a/lms/static/coffee/spec/modules/problem_spec.coffee b/lms/static/coffee/spec/modules/problem_spec.coffee index 78047db3ba..d59f702063 100644 --- a/lms/static/coffee/spec/modules/problem_spec.coffee +++ b/lms/static/coffee/spec/modules/problem_spec.coffee @@ -13,6 +13,7 @@ describe 'Problem', -> spyOn($.fn, 'load').andCallFake (url, callback) -> $(@).html readFixtures('problem_content.html') callback() + jasmine.stubRequests() describe 'constructor', -> beforeEach -> @@ -21,12 +22,6 @@ describe 'Problem', -> it 'set the element', -> expect(@problem.element).toBe '#problem_1' - it 'set the content url', -> - expect(@problem.content_url).toEqual '/problem/url/problem_get?id=1' - - it 'render the content', -> - expect($.fn.load).toHaveBeenCalledWith @problem.content_url, @problem.bind - describe 'bind', -> beforeEach -> spyOn window, 'update_schematics' @@ -77,12 +72,19 @@ describe 'Problem', -> expect(@problem.bind).toHaveBeenCalled() describe 'with no content given', -> + beforeEach -> + spyOn($, 'postWithPrefix').andCallFake (url, callback) -> + callback html: "Hello World" + @problem.render() + it 'load the content via ajax', -> - expect($.fn.load).toHaveBeenCalledWith @problem.content_url, @bind + expect(@problem.element.html()).toEqual 'Hello World' + + it 're-bind the content', -> + expect(@problem.bind).toHaveBeenCalled() describe 'check', -> beforeEach -> - jasmine.stubRequests() @problem = new Problem 1, '/problem/url/' @problem.answers = 'foo=1&bar=2' @@ -116,7 +118,6 @@ describe 'Problem', -> describe 'reset', -> beforeEach -> - jasmine.stubRequests() @problem = new Problem 1, '/problem/url/' it 'log the problem_reset event', -> @@ -130,13 +131,13 @@ describe 'Problem', -> expect($.postWithPrefix).toHaveBeenCalledWith '/modx/problem/1/problem_reset', { id: 1 }, jasmine.any(Function) it 'render the returned content', -> - spyOn($, 'postWithPrefix').andCallFake (url, answers, callback) -> callback("Reset!") + spyOn($, 'postWithPrefix').andCallFake (url, answers, callback) -> + callback html: "Reset!" @problem.reset() expect(@problem.element.html()).toEqual 'Reset!' describe 'show', -> beforeEach -> - jasmine.stubRequests() @problem = new Problem 1, '/problem/url/' @problem.element.prepend '
' @@ -154,18 +155,19 @@ describe 'Problem', -> expect($.postWithPrefix).toHaveBeenCalledWith '/modx/problem/1/problem_show', jasmine.any(Function) it 'show the answers', -> - spyOn($, 'postWithPrefix').andCallFake (url, callback) -> callback('1_1': 'One', '1_2': 'Two') + spyOn($, 'postWithPrefix').andCallFake (url, callback) -> + callback answers: '1_1': 'One', '1_2': 'Two' @problem.show() expect($('#answer_1_1')).toHaveHtml 'One' expect($('#answer_1_2')).toHaveHtml 'Two' it 'toggle the show answer button', -> - spyOn($, 'postWithPrefix').andCallFake (url, callback) -> callback({}) + spyOn($, 'postWithPrefix').andCallFake (url, callback) -> callback(answers: {}) @problem.show() expect($('.show')).toHaveValue 'Hide Answer' it 'add the showed class to element', -> - spyOn($, 'postWithPrefix').andCallFake (url, callback) -> callback({}) + spyOn($, 'postWithPrefix').andCallFake (url, callback) -> callback(answers: {}) @problem.show() expect(@problem.element).toHaveClass 'showed' @@ -179,7 +181,8 @@ describe 'Problem', -> ''' it 'set the correct_answer attribute on the choice', -> - spyOn($, 'postWithPrefix').andCallFake (url, callback) -> callback('1_1': [2, 3]) + spyOn($, 'postWithPrefix').andCallFake (url, callback) -> + callback answers: '1_1': [2, 3] @problem.show() expect($('label[for="input_1_1_1"]')).not.toHaveAttr 'correct_answer', 'true' expect($('label[for="input_1_1_2"]')).toHaveAttr 'correct_answer', 'true' @@ -214,7 +217,6 @@ describe 'Problem', -> describe 'save', -> beforeEach -> - jasmine.stubRequests() @problem = new Problem 1, '/problem/url/' @problem.answers = 'foo=1&bar=2' diff --git a/lms/static/coffee/src/modules/problem.coffee b/lms/static/coffee/src/modules/problem.coffee index a1759b28af..7edd40a04c 100644 --- a/lms/static/coffee/src/modules/problem.coffee +++ b/lms/static/coffee/src/modules/problem.coffee @@ -1,7 +1,6 @@ class @Problem constructor: (@id, url) -> @element = $("#problem_#{id}") - @content_url = "#{url}problem_get?id=#{@id}" @render() $: (selector) -> @@ -27,10 +26,9 @@ class @Problem @element.html(content) @bind() else - $.postWithPrefix "/modx/problem/#{@id}/problem_get", '', (response) => + $.postWithPrefix "/modx/problem/#{@id}/problem_get", (response) => @element.html(response.html) @bind() - check: => Logger.log 'problem_check', @answers