aboutsummaryrefslogtreecommitdiffstats
path: root/spec/models/xapian_spec.rb
diff options
context:
space:
mode:
authorLouise Crow <louise.crow@gmail.com>2013-09-24 09:23:44 +0100
committerLouise Crow <louise.crow@gmail.com>2013-09-24 09:23:44 +0100
commit7d9b66d1ff31afa8d73ea1a81f4e612e41f89cb0 (patch)
tree5206d9fbaf8d6af58bdaa35cefdfeb34a88c84ff /spec/models/xapian_spec.rb
parent40a28fa2fe21d752a15c11938791d620dd31d17f (diff)
parent8e7432be764254e6a50e6a06e77bb93bb5bba9fe (diff)
Merge branch 'release/0.14' into wdtk
Conflicts: app/views/request/show.html.erb
Diffstat (limited to 'spec/models/xapian_spec.rb')
-rw-r--r--spec/models/xapian_spec.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/spec/models/xapian_spec.rb b/spec/models/xapian_spec.rb
index 7aab9cdc6..c7c21e3a0 100644
--- a/spec/models/xapian_spec.rb
+++ b/spec/models/xapian_spec.rb
@@ -400,3 +400,34 @@ describe ActsAsXapian::Search, "#words_to_highlight" do
end
end
+
+describe InfoRequestEvent, " when faced with a race condition during xapian_mark_needs_index" do
+
+ before(:each) do
+ load_raw_emails_data
+ get_fixtures_xapian_index
+ # Use the before create job hook to simulate a race condition with another process
+ # by creating an acts_as_xapian_job record for the same model
+ class InfoRequestEvent
+ def xapian_before_create_job_hook(action, model, model_id)
+ ActsAsXapian::ActsAsXapianJob.create!(:model => model,
+ :model_id => model_id,
+ :action => action)
+ end
+ end
+ end
+
+ after(:each) do
+ # Reset the before create job hook
+ class InfoRequestEvent
+ def xapian_before_create_job_hook(action, model, model_id)
+ end
+ end
+ end
+
+ it 'should not raise an error but should fail silently' do
+ ir = info_requests(:naughty_chicken_request)
+ ir.reindex_request_events
+ end
+
+end