diff --git a/staff_features/agents/agent_export.feature b/staff_features/agents/agent_export.feature new file mode 100644 index 0000000..784bdbb --- /dev/null +++ b/staff_features/agents/agent_export.feature @@ -0,0 +1,11 @@ +Feature: Agent Export + Background: + Given an administrator user is logged in + And an Agent has been created + And the Agent is opened in edit mode + Scenario: Agent Download EAC-CPF + When the user clicks on 'Download EAC-CPF' + Then an EAC-CPF XML file is downloaded + Scenario: Agent Download MARCXML AUTHORITY + When the user clicks on 'Download MARCXML Authority' + Then a MARC XML file is downloaded diff --git a/staff_features/agents/step_definitions/agent_export.rb b/staff_features/agents/step_definitions/agent_export.rb new file mode 100644 index 0000000..0be30d3 --- /dev/null +++ b/staff_features/agents/step_definitions/agent_export.rb @@ -0,0 +1,38 @@ +# frozen_string_literal: true + +Then 'an EAC-CPF XML file is downloaded' do + files = Dir.glob(File.join(Dir.tmpdir, '*.xml')) + + first_part_of_uuid = @uuid.split('-').pop + + downloaded_file = nil + files.each do |file| + downloaded_file = file if file.include?('__eac.xml') && + file.include?(first_part_of_uuid) + end + + expect(downloaded_file).to_not eq nil + + load_file = File.read(downloaded_file) + expect(load_file).to include 'person' + expect(load_file).to include "Agent #{@uuid}" +end + +Then 'a MARC XML file is downloaded' do + files = Dir.glob(File.join(Dir.tmpdir, '*.xml')) + + first_part_of_uuid = @uuid.split('-').pop + + downloaded_file = nil + files.each do |file| + downloaded_file = file if file.include?('__marc.xml') && + file.include?(first_part_of_uuid) + end + + expect(downloaded_file).to_not eq nil + + load_file = File.read(downloaded_file) + expect(load_file).to include 'Agent #{@uuid}" +end