Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ContainerProfile view #105

Draft
wants to merge 2 commits into
base: container_profile_edit
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions staff_features/container_profiles/container_profile_view.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
Feature: Container Profile View
Background:
Given an administrator user is logged in
Scenario: Search Container Profile by name
Given a Container Profile has been created
When the user clicks on 'Browse'
And the user clicks on 'Container Profiles'
And the user filters by text with the Container Profile name
Then the Container Profile is in the search results
Scenario: View Container Profile from the search results
Given a Container Profile has been created
When the user clicks on 'Browse'
And the user clicks on 'Container Profiles'
And the user filters by text with the Container Profile name
And the user clicks on 'View'
Then the Container Profile view page is displayed
Scenario: Sort Container Profiles by name
Given two Container Profiles have been created with a common keyword in their name
And the two Container Profiles are displayed sorted by ascending name
When the user clicks on 'Title'
Then the two Container Profiles are displayed sorted by descending name
Scenario: Container Profiles table download CSV
Given two Container Profiles have been created with a common keyword in their name
And the two Container Profiles are displayed in the search results
When the user clicks on 'Download CSV'
Then a CSV file is downloaded with the two Container Profiles
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# frozen_string_literal: true

Then 'the Container Profile is in the search results' do
expect(page).to have_css('tr', text: @uuid)
end

When 'the user filters by text with the Container Profile name' do
fill_in 'Filter by text', with: @uuid

find('#filter-text').send_keys(:enter)

rows = []
checks = 0

while checks < 5
checks += 1

begin
rows = all('tr', text: @uuid)
rescue Selenium::WebDriver::Error::JavascriptError
sleep 1
end

break if rows.length == 1
end
end

Then 'the Container Profile view page is displayed' do
expect(find('h2').text).to eq "Container Profile #{@uuid}"
end

Given 'two Container Profiles have been created with a common keyword in their name' do
@shared_container_profile_uuid = SecureRandom.uuid
@container_profile_a_uuid = SecureRandom.uuid
@container_profile_b_uuid = SecureRandom.uuid

visit "#{STAFF_URL}/container_profiles/new"
fill_in 'container_profile_name_', with: "Container Profile A #{@shared_container_profile_uuid} #{@container_profile_a_uuid}"
fill_in 'container_profile_depth_', with: '1.1'
fill_in 'container_profile_height_', with: '2.2'
fill_in 'container_profile_width_', with: '3.3'
click_on 'Save'
expect(find('.alert.alert-success.with-hide-alert').text).to eq 'Container Profile Created'
url_parts = current_url.split('container_profiles/container_profile_person').pop.split('/')
@container_profile_a_id = url_parts.pop

visit "#{STAFF_URL}/container_profiles/new"
fill_in 'container_profile_name_', with: "Container Profile B #{@shared_container_profile_uuid} #{@container_profile_b_uuid}"
fill_in 'container_profile_depth_', with: '1.1'
fill_in 'container_profile_height_', with: '2.2'
fill_in 'container_profile_width_', with: '3.3'
click_on 'Save'
expect(find('.alert.alert-success.with-hide-alert').text).to eq 'Container Profile Created'
url_parts = current_url.split('container_profiles/container_profile_person').pop.split('/')
url_parts.pop
@container_profile_b_id = url_parts.pop
end

Given 'the two Container Profiles are displayed sorted by ascending name' do
visit "#{STAFF_URL}/container_profiles"

fill_in 'filter-text', with: @shared_container_profile_uuid

within '.search-filter' do
find('button').click
end

search_result_rows = all('#tabledSearchResults tbody tr')

expect(search_result_rows.length).to eq 2
expect(search_result_rows[0]).to have_text @container_profile_a_uuid
expect(search_result_rows[1]).to have_text @container_profile_b_uuid
end

Then 'the two Container Profiles are displayed sorted by descending name' do
search_result_rows = all('#tabledSearchResults tbody tr')

expect(search_result_rows.length).to eq 2
expect(search_result_rows[1]).to have_text @container_profile_a_uuid
expect(search_result_rows[0]).to have_text @container_profile_b_uuid
end

Given 'the two Container Profiles are displayed in the search results' do
visit "#{STAFF_URL}/container_profiles"

fill_in 'filter-text', with: @shared_container_profile_uuid

within '.search-filter' do
find('button').click
end

search_result_rows = all('#tabledSearchResults tbody tr')

expect(search_result_rows.length).to eq 2
expect(search_result_rows[0]).to have_text @container_profile_a_uuid
expect(search_result_rows[1]).to have_text @container_profile_b_uuid
end

Then 'a CSV file is downloaded with the two Container Profiles' do
files = Dir.glob(File.join(Dir.tmpdir, '*.csv'))

downloaded_file = nil
files.each do |file|
downloaded_file = file if file.include?('container profiles')
end

expect(downloaded_file).to_not eq nil

load_file = File.read(downloaded_file)
expect(load_file).to include @container_profile_a_uuid
expect(load_file).to include @container_profile_b_uuid
expect(load_file).to include "Container Profile A #{@shared_container_profile_uuid} #{@container_profile_a_uuid}"
expect(load_file).to include "Container Profile B #{@shared_container_profile_uuid} #{@container_profile_b_uuid}"
end
Loading