Commit 371cfdf9aad27f7492c4f242e65be6d5e63c3c42

Authored by Dhruv Kapadia
1 parent 9c8210cc

Fixing bug where appearances were not recorded on skip

app/models/visitor.rb
@@ -43,7 +43,7 @@ class Visitor < ActiveRecord::Base @@ -43,7 +43,7 @@ class Visitor < ActiveRecord::Base
43 prompt = options.delete(:prompt) 43 prompt = options.delete(:prompt)
44 44
45 if options[:appearance_lookup] 45 if options[:appearance_lookup]
46 - @appearance = prompt.appearances.find_by_lookup(options.delete(:apperance_lookup)) 46 + @appearance = prompt.appearances.find_by_lookup(options.delete(:appearance_lookup))
47 return nil unless @appearance 47 return nil unless @appearance
48 options.merge!(:appearance_id => @appearance.id) 48 options.merge!(:appearance_id => @appearance.id)
49 end 49 end
spec/models/user_spec.rb
@@ -91,6 +91,8 @@ describe User do @@ -91,6 +91,8 @@ describe User do
91 required_skip_params = {:prompt => @prompt } 91 required_skip_params = {:prompt => @prompt }
92 params = optional_skip_params.merge(required_skip_params) 92 params = optional_skip_params.merge(required_skip_params)
93 s = @aoi_clone.record_skip(params) 93 s = @aoi_clone.record_skip(params)
  94 + s.appearance.should == @appearance
  95 + s.skipper.should == @visitor
94 end 96 end
95 97
96 end 98 end
spec/models/visitor_spec.rb
@@ -102,6 +102,21 @@ describe Visitor do @@ -102,6 +102,21 @@ describe Visitor do
102 } 102 }
103 allparams = @required_skip_params.merge(@optional_skip_params) 103 allparams = @required_skip_params.merge(@optional_skip_params)
104 s = @visitor.skip!(allparams) 104 s = @visitor.skip!(allparams)
  105 + s.appearance.should == @appearance
  106 + end
  107 +
  108 + it "should not create a skip when the appearance look up is wrong" do
  109 + skip_count = Skip.count
  110 + @appearance = @aoi_clone.record_appearance(@visitor, @prompt)
  111 + @optional_skip_params = {
  112 + :appearance_lookup => "not a valid appearancelookup",
  113 + :time_viewed => 304,
  114 + :skip_reason => "some reason"
  115 + }
  116 + allparams = @required_skip_params.merge(@optional_skip_params)
  117 + s = @visitor.skip!(allparams)
  118 + s.should be_nil
  119 + Skip.count.should == skip_count
105 end 120 end
106 121
107 it "should accurately update score counts after vote" do 122 it "should accurately update score counts after vote" do