From 6322263c902bd7e50a4a77300de9bdfeb216d233 Mon Sep 17 00:00:00 2001 From: Diana Huang Date: Wed, 30 Jan 2013 16:40:55 -0500 Subject: [PATCH] New Jasmine tests --- .../js/fixtures/combined-open-ended.html | 2 +- .../combinedopenended/display_spec.coffee | 42 ++++++++++++++++--- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/common/lib/xmodule/xmodule/js/fixtures/combined-open-ended.html b/common/lib/xmodule/xmodule/js/fixtures/combined-open-ended.html index 447b49b8fb..abea783ae8 100644 --- a/common/lib/xmodule/xmodule/js/fixtures/combined-open-ended.html +++ b/common/lib/xmodule/xmodule/js/fixtures/combined-open-ended.html @@ -1,6 +1,6 @@
-
+

Problem 1

diff --git a/common/lib/xmodule/xmodule/js/spec/combinedopenended/display_spec.coffee b/common/lib/xmodule/xmodule/js/spec/combinedopenended/display_spec.coffee index d4aa2b5b6c..7c26bda213 100644 --- a/common/lib/xmodule/xmodule/js/spec/combinedopenended/display_spec.coffee +++ b/common/lib/xmodule/xmodule/js/spec/combinedopenended/display_spec.coffee @@ -19,14 +19,11 @@ describe 'CombinedOpenEnded', -> expect(@combined.ajax_url).toEqual '/courses/MITx/6.002x/2012_Fall/modx/i4x://MITx/6.002x/combinedopenended/CombinedOE' expect(@combined.state).toEqual 'assessing' expect(@combined.task_count).toEqual 2 - expect(@combined.task_number).toEqual 2 + expect(@combined.task_number).toEqual 1 it 'subelements are made collapsible', -> expect(Collapsible.setCollapsibles).toHaveBeenCalled() - it 'elements are rebound for assessing state', -> - expect(@combined.answer_area.attr("disabled")).toBe("disabled") - expect(@combined.submit_button.val()).toBe("Submit assessment") describe 'poll', -> beforeEach => @@ -35,14 +32,14 @@ describe 'CombinedOpenEnded', -> spyOn(@combined, 'reload').andCallFake -> return 0 window.setTimeout = jasmine.createSpy().andCallFake (callback, timeout) -> return 5 - it 'we are setting the timeout', => + it 'polls at the correct intervals', => fakeResponseContinue = state: 'not done' spyOn($, 'postWithPrefix').andCallFake (url, callback) -> callback(fakeResponseContinue) @combined.poll() expect(window.setTimeout).toHaveBeenCalledWith(@combined.poll, 10000) expect(window.queuePollerID).toBe(5) - it 'we are stopping polling properly', => + it 'polling stops properly', => $.postWithPrefix = jasmine.createSpy("$.postWithPrefix") fakeResponseDone = state: "done" $.postWithPrefix.andCallFake (url, callback) -> callback(fakeResponseDone) @@ -50,3 +47,36 @@ describe 'CombinedOpenEnded', -> expect(window.queuePollerID).toBeUndefined() expect(window.setTimeout).not.toHaveBeenCalled() expect(@combined.reload).toHaveBeenCalled() + + describe 'rebind', -> + beforeEach -> + @combined = new CombinedOpenEnded @element + spyOn(@combined, 'queueing').andCallFake -> return 0 + spyOn(@combined, 'skip_post_assessment').andCallFake -> return 0 + window.setTimeout = jasmine.createSpy().andCallFake (callback, timeout) -> return 5 + + it 'when our child is in an assessing state', -> + @combined.child_state = 'assessing' + @combined.rebind() + expect(@combined.answer_area.attr("disabled")).toBe("disabled") + expect(@combined.submit_button.val()).toBe("Submit assessment") + expect(@combined.queueing).toHaveBeenCalled() + + it 'when our child state is initial', -> + @combined.child_state = 'initial' + @combined.rebind() + expect(@combined.answer_area.attr("disabled")).toBeUndefined() + expect(@combined.submit_button.val()).toBe("Submit") + + it 'when our child state is post_assessment', -> + @combined.child_state = 'post_assessment' + @combined.rebind() + expect(@combined.answer_area.attr("disabled")).toBe("disabled") + expect(@combined.submit_button.val()).toBe("Submit post-assessment") + + it 'when our child state is done', -> + spyOn(@combined, 'next_problem').andCallFake -> + @combined.child_state = 'done' + @combined.rebind() + expect(@combined.answer_area.attr("disabled")).toBe("disabled") + expect(@combined.next_problem).toHaveBeenCalled()