Skip to content

Commit

Permalink
check for request type of DIGITIZATION before running additional_vali…
Browse files Browse the repository at this point in the history
…dation! on ItemRequest, add specs (#97)

Co-authored-by: Patrick Perkins <lilblizzard97@gmail.com>
  • Loading branch information
body-clock and Patrick Perkins authored Apr 3, 2024
1 parent 13c1ba4 commit 4757823
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
2 changes: 2 additions & 0 deletions lib/alma/request.rb
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,8 @@ def initialize(args)
end

def additional_validation!(args)
return unless args.fetch(:request_type) == "DIGITIZATION"

args.fetch(:description) do
raise ArgumentError.new(
":description option must be specified when request_type is DIGITIZATION"
Expand Down
12 changes: 11 additions & 1 deletion spec/lib/request_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -179,11 +179,21 @@
expect { described_class.submit({ mms_id: "foo" }) }.to raise_error(ArgumentError, /:user_id option/)
end

it "raises an Error when description is not an included option" do
it "raises an Error when holding_type is DIGITIZATION and description is not an included option" do
options = { mms_id: "foo", holding_id: "hold", item_pid: "pid", user_id: "user", request_type: "DIGITIZATION", target_destination: "DIGI_DEPT_INST", partial_digitization: false }
expect { described_class.submit(options) }.to raise_error(ArgumentError, /:description option/)
end

it "raises an Error when holding_type is HOLD and pickup_location_type is not an included option" do
options = { mms_id: "foo", holding_id: "hold", item_pid: "pid", user_id: "user", request_type: "HOLD" }
expect { described_class.submit(options) }.to raise_error(ArgumentError, /:pickup_location_type option/)
end

it "raises an Error when holding_type is HOLD and pickup_location_type is not an included option" do
options = { mms_id: "foo", holding_id: "hold", item_pid: "pid", user_id: "user", request_type: "HOLD", pickup_location_type: "LIBRARY" }
expect { described_class.submit(options) }.to raise_error(ArgumentError, /:pickup_location_library option/)
end

it "raises an Error when request_type is not an included option" do
expect { described_class.submit({ mms_id: "foo", user_id: "user" }) }.to raise_error(ArgumentError, /:request_type option/)
end
Expand Down

0 comments on commit 4757823

Please sign in to comment.