Skip to content

Commit

Permalink
Enforce default statefile location
Browse files Browse the repository at this point in the history
  • Loading branch information
awead committed Mar 18, 2016
1 parent f1a3e10 commit 538add3
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 1 deletion.
10 changes: 9 additions & 1 deletion lib/sufia/engine.rb
@@ -1,4 +1,12 @@
module Sufia
class Statefile
def self.default
return '/tmp/minter-state' if Rails.env.development? || Rails.env.test?
raise NotImplementedError, "can't use the default statefile for production" unless Dir.exist?('/var/sufia')
'/var/sufia/minter-state'
end
end

class Engine < ::Rails::Engine
engine_name 'sufia'

Expand Down Expand Up @@ -79,7 +87,7 @@ class Engine < ::Rails::Engine
# Noid identifiers
config.enable_noids = true
config.noid_template = '.reeddeeddk'
config.minter_statefile = '/tmp/minter-state'
config.minter_statefile = Statefile.default
config.translate_uri_to_id = ActiveFedora::Noid.config.translate_uri_to_id
config.translate_id_to_uri = ActiveFedora::Noid.config.translate_id_to_uri

Expand Down
28 changes: 28 additions & 0 deletions spec/lib/sufia/statefile_spec.rb
@@ -0,0 +1,28 @@
require 'spec_helper'

describe Sufia::Statefile do
let(:default) { '/tmp/minter-state' }
let(:production_default) { '/var/sufia/minter-state' }

subject { described_class.default }

it { is_expected.to eq(default) }

context "when in development" do
before { allow(Rails).to receive(:env).and_return(ActiveSupport::StringInquirer.new("development")) }
it { is_expected.to eq(default) }
end

context "when in production" do
before { allow(Rails).to receive(:env).and_return(ActiveSupport::StringInquirer.new("production")) }
context "with a missing default directory" do
it "raises an error" do
expect { subject }.to raise_error(NotImplementedError)
end
end
context "with a default directory" do
before { allow(Dir).to receive(:exist?).with(File.dirname(production_default)).and_return(true) }
it { is_expected.to eq(production_default) }
end
end
end

0 comments on commit 538add3

Please sign in to comment.