Commit 580db1c8bdb6b787faca389f3909fefcd95195ce

Authored by Luke Baker
1 parent 6bc7324e

add tests to ensure we only process active choices when using the

catchup algorithm
Showing 2 changed files with 20 additions and 3 deletions   Show diff stats
spec/factories.rb
... ... @@ -20,6 +20,12 @@ Factory.define(:aoi_question, :parent => :question) do |f|
20 20 :creator => question.creator,
21 21 :active => true)
22 22 end
  23 + 2.times do
  24 + result << Factory.build(:choice,
  25 + :question => question.result,
  26 + :creator => question.creator,
  27 + :active => false)
  28 + end
23 29 result
24 30 end
25 31 f.prompts do |question|
... ...
spec/models/question_spec.rb
... ... @@ -47,7 +47,7 @@ describe Question do
47 47 end
48 48  
49 49 it "should raise runtime exception if there is no possible prompt to choose" do
50   - @question.choices.first.deactivate!
  50 + @question.choices.active.each{|c| c.deactivate!}
51 51 @question.reload
52 52 lambda { @question.choose_prompt}.should raise_error(RuntimeError)
53 53  
... ... @@ -211,8 +211,8 @@ describe Question do
211 211 @catchup_q.uses_catchup = true
212 212 @catchup_q.save!
213 213  
214   - # 2 ideas already exist, so this will make an even hundred
215   - 98.times.each do |num|
  214 + # 4 ideas already exist, so this will make an even hundred
  215 + 96.times.each do |num|
216 216 @catchup_q.site.create_choice("visitor identifier", @catchup_q, {:data => num.to_s, :local_identifier => "exmaple"})
217 217 end
218 218 @catchup_q.reload
... ... @@ -241,6 +241,17 @@ describe Question do
241 241 (sum - 1.0).abs.should < 0.000001
242 242 end
243 243  
  244 + it "should not have any inactive choices in the the vector of weights" do
  245 + weights = @catchup_q.catchup_prompts_weights
  246 + weights.each do |items, value|
  247 + left_choice_id, right_choice_id = items.split(", ")
  248 + cl = Choice.find(left_choice_id)
  249 + cr = Choice.find(right_choice_id)
  250 + cl.active?.should == true
  251 + cr.active?.should == true
  252 + end
  253 + end
  254 +
244 255 it "should allow the prompt queue to be cleared" do
245 256 @catchup_q.add_prompt_to_queue
246 257 @catchup_q.clear_prompt_queue
... ...