Skip to content

Commit

Permalink
Address dependabot alerts (#989)
Browse files Browse the repository at this point in the history
* Bump loader-utils

* Clean up specs

* Bump versions of xmldom follow-redirects and json5

* Bump versions of ansi-html loader-utils scss-tokenizer and terser

* Bump versions of request clean-css semver and tough-cookie

* Make specs more flexible

* Update spec
  • Loading branch information
K8Sewell authored May 9, 2024
1 parent 994fd10 commit 76cda45
Show file tree
Hide file tree
Showing 5 changed files with 300 additions and 160 deletions.
11 changes: 11 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,33 @@
"name": "blacklight_yul",
"private": true,
"dependencies": {
"@cypress/request": "3.0.1",
"@rails/actioncable": "^7.1.2",
"@rails/activestorage": "^7.1.2",
"@rails/ujs": "^7.1.2",
"@rails/webpacker": "^5.4.4",
"@xmldom/xmldom": "~0.8.4",
"ansi-html": "0.0.8",
"clean-css": "4.1.11",
"follow-redirects": "1.15.6",
"glob-parent": "^6.0.1",
"json-schema": "^0.4.0",
"json5": "2.2.2",
"loader-utils": "2.0.4",
"node-fetch": "2.6.7",
"node-forge": "^1.3.0",
"node-sass": "^7.0",
"normalize-url": "^6.0.1",
"nth-check": "^2.0.1",
"postcss": "8.4.31",
"scss-tokenizer": "0.4.3",
"semver": "7.5.2",
"serialize-javascript": "^3.1.0",
"ssri": "^8.0.1",
"tar": "^6.1.9",
"terser": "5.14.2",
"three": "0.137.0",
"tough-cookie": "4.1.3",
"trim-newlines": "^4.0.2",
"turbolinks": "^5.2.0",
"universalviewer": "4.0.0-pre.105",
Expand Down
191 changes: 88 additions & 103 deletions spec/system/show_page_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,32 +5,6 @@
let(:thumbnail_size_in_opengraph) { "!1200,630" }
let(:thumbnail_size_in_solr) { "!200,200" }

before do
stub_request(:get, 'https://yul-dc-development-samples.s3.amazonaws.com/manifests/11/11/111.json')
.to_return(status: 200, body: File.open(File.join('spec', 'fixtures', '2041002.json')).read)
stub_request(:get, 'https://yul-dc-development-samples.s3.amazonaws.com/manifests/11/11/112.json')
.to_return(status: 200, body: File.open(File.join('spec', 'fixtures', '2041002.json')).read)
stub_request(:get, 'https://yul-dc-development-samples.s3.amazonaws.com/manifests/11/11/113.json')
.to_return(status: 200, body: File.open(File.join('spec', 'fixtures', '2041002.json')).read)
stub_request(:get, 'https://yul-dc-development-samples.s3.amazonaws.com/manifests/22/22/222.json')
.to_return(status: 200, body: File.open(File.join('spec', 'fixtures', '2041002.json')).read)
stub_request(:get, 'https://yul-dc-development-samples.s3.amazonaws.com/manifests/12/11/112.json')
.to_return(status: 200, body: File.open(File.join('spec', 'fixtures', '2041002.json')).read)

solr = Blacklight.default_index.connection
solr.add([llama,
llama_child_1,
llama_child_2,
dog,
eagle,
puppy,
train,
void])
solr.commit
visit '/catalog?search_field=all_fields&q='
click_on 'Amor Llama', match: :first
end

let(:llama) do
{
id: '111',
Expand Down Expand Up @@ -142,82 +116,60 @@
}
end

it 'has expected css' do
expect(page).to have_css '.btn-show'
expect(page).to have_css '.constraints-container'
expect(page).to have_css '.show-buttons'
expect(page).to have_css '.manifestItem'
before do
stub_request(:get, 'https://yul-dc-development-samples.s3.amazonaws.com/manifests/11/11/111.json')
.to_return(status: 200, body: File.open(File.join('spec', 'fixtures', '2041002.json')).read)
stub_request(:get, 'https://yul-dc-development-samples.s3.amazonaws.com/manifests/11/11/112.json')
.to_return(status: 200, body: File.open(File.join('spec', 'fixtures', '2041002.json')).read)
stub_request(:get, 'https://yul-dc-development-samples.s3.amazonaws.com/manifests/11/11/113.json')
.to_return(status: 200, body: File.open(File.join('spec', 'fixtures', '2041002.json')).read)
stub_request(:get, 'https://yul-dc-development-samples.s3.amazonaws.com/manifests/22/22/222.json')
.to_return(status: 200, body: File.open(File.join('spec', 'fixtures', '2041002.json')).read)
stub_request(:get, 'https://yul-dc-development-samples.s3.amazonaws.com/manifests/12/11/112.json')
.to_return(status: 200, body: File.open(File.join('spec', 'fixtures', '2041002.json')).read)

solr = Blacklight.default_index.connection
solr.add([llama,
llama_child_1,
llama_child_2,
dog,
eagle,
puppy,
train,
void])
solr.commit
end

context '"Back to Search Results" button' do
it 'returns user to search results' do
context 'public work' do
before do
visit '/catalog?search_field=all_fields&q='
click_on 'Amor Llama', match: :first
end
it 'has expected css' do
expect(page).to have_css '.btn-show'
expect(page).to have_css '.constraints-container'
expect(page).to have_css '.show-buttons'
expect(page).to have_css '.manifestItem'
end
it '"Back to Search Results" button returns user to search results' do
expect(page).to have_button("Back to Search Results")
expect(page).to have_xpath("//button[@href='/catalog?page=1&per_page=10&search_field=all_fields']")
end
end

context 'Archival Context breadcrumbs' do
it 'renders the Archival Context' do
it 'Archival Context breadcrumbs render the Archival Context' do
expect(page).to have_content 'Found In:'
expect(page).to have_content 'Beinecke Rare Book and Manuscript Library (BRBL) > Abraham Lincoln collection (GEN MSS 257) > Series 1: Oversize > ... >'
click_on("...")
expect(page).to have_content 'Beinecke Rare Book and Manuscript Library (BRBL) > Abraham Lincoln collection (GEN MSS 257) > Series 1: Oversize > Level3 > Level2 > Level1 > Level0'
end
end

context '"New Search" button' do
it 'returns user to homepage' do
it '"New Search" button returns user to homepage' do
expect(page).to have_button "New Search"
expect(page).to have_xpath("//button[@href='/catalog']")
expect(page.first('button.catalog_startOverLink').text).to eq('NEW SEARCH').or eq('New Search')
end
end

context 'Universal Viewer' do
it 'does not have a .json extension in the src attribute' do
src = find('.universal-viewer-iframe')['src']
expect(src).not_to include('.json')
end

context 'sending child oid as a parameter' do
# TODO: re-enable test when result is consistent
xit 'uses child\'s page when oid is valid' do
visit 'catalog/111?image_id=113'
src = find('.universal-viewer-iframe')['src']
expect(src).to include '&cv=1'
end
it 'uses first page when oid is invalid' do
visit 'catalog/111?image_id=11312321'
src = find('.universal-viewer-iframe')['src']
expect(src).to include '&cv=0'
end
end

context 'without full text available' do
it 'does not have a full text button' do
visit 'catalog/222'

expect(page).not_to have_content('Show Full Text')
end
end

context 'with full text available' do
it 'has a "Show Full Text" button' do
visit 'catalog/111'

expect(page).to have_css('.fulltext-button')
expect(page).to have_content('Show Full Text')
end
it 'has a "Show Full Text" button with a partial fulltext status' do
visit 'catalog/112'

expect(page).to have_css('.fulltext-button')
expect(page).to have_content('Show Full Text')
end
it 'with full text available has a "Show Full Text" button' do
expect(page).to have_css('.fulltext-button')
expect(page).to have_content('Show Full Text')
end
end

context 'with public works' do
it 'Metadata og tags are in the header of html' do
expect(page.html).to include("og:title")
expect(page.html).to include("Amor Llama")
Expand All @@ -235,22 +187,47 @@
it 'has og namespace' do
expect(page).to have_css("html[prefix='og: https://ogp.me/ns#']", visible: false)
end
it 'metadata block is displayed when it has values' do
expect(page).to have_content "Description", count: 2
expect(page).to have_content "Collection Information"
expect(page).to have_content "Subjects, Formats, And Genres"
expect(page).to have_content "Access And Usage Rights"
expect(page).to have_content "Identifiers"
end

context 'Universal Viewer' do
it 'does not have a .json extension in the src attribute' do
src = find('.universal-viewer-iframe')['src']
expect(src).not_to include('.json')
end

context 'sending child oid as a parameter' do
# TODO: re-enable test when result is consistent
xit 'uses child\'s page when oid is valid' do
visit 'catalog/111?image_id=113'
src = find('.universal-viewer-iframe')['src']
expect(src).to include '&cv=1'
end
it 'uses first page when oid is invalid' do
visit 'catalog/111?image_id=11312321'
src = find('.universal-viewer-iframe')['src']
expect(src).to include '&cv=0'
end
end
end
end

context 'with yale-only works' do
before do
visit 'catalog/555'
end
# TODO: re-enable test when result is consistent
xit 'does not have image of og tag' do
expect(page).not_to have_css("meta[property='og:image'][content='https://this_is_a_iiif_image/iiif/2/17120080/full/#{thumbnail_size_in_opengraph}/0/default.jpg']", visible: false)
expect(page).not_to have_css("meta[property='og:image:type'][content='image/jpeg']", visible: false)
it 'does not have image of og tag' do
visit '/catalog?search_field=all_fields&q='
click_on 'The Boiler Makers', match: :first
expect(page).not_to have_css("meta[property='og:image'][content='https://this_is_a_iiif_image/iiif/2/17120080/full/#{thumbnail_size_in_opengraph}/0/default.jpg']")
expect(page).not_to have_css("meta[property='og:image:type'][content='image/jpeg']")
end
end

context "Metadata block" do
# TODO: re-enable test when result is consistent
xit 'is not displayed when empty', :use_other_vis do
it 'is not displayed when it has no values', :use_other_vis do
visit 'catalog/666'

expect(page).not_to have_content "Description", count: 2
Expand All @@ -259,14 +236,22 @@
expect(page).not_to have_content "Access And Usage Rights"
expect(page).not_to have_content "Identifiers"
end
it 'is displayed when they have values' do
visit 'catalog/111'
end

expect(page).to have_content "Description", count: 2
expect(page).to have_content "Collection Information"
expect(page).to have_content "Subjects, Formats, And Genres"
expect(page).to have_content "Access And Usage Rights"
expect(page).to have_content "Identifiers"
context 'Full text button' do
it 'does not have a full text button without full text available' do
visit '/catalog?search_field=all_fields&q='
click_on 'HandsomeDan Bulldog', match: :first

expect(page).to have_content('HandsomeDan Bulldog')
expect(page).not_to have_content('Show Full Text')
end
it 'has a "Show Full Text" button with a partial fulltext status' do
visit '/catalog?search_field=all_fields&q='
click_on 'Baby Llama', match: :first

expect(page).to have_css('.fulltext-button')
expect(page).to have_content('Show Full Text')
end
end
end
62 changes: 10 additions & 52 deletions spec/system/sort_in_search_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -86,30 +86,7 @@
}
end

xit 'sorts by date from oldest to newest' do
click_on 'search'
click_on 'Sort by relevance'
click_on 'date (oldest first)'

content = find(:css, '#content')
expect(content).to have_content("1.\nAquila Eccellenza")
expect(content).to have_content("2.\nHandsomeDan Bulldog")
expect(content).to have_content("3.\nAmor Llama")
expect(content).to have_content("4.\nRhett Lecheire")
end

xit 'sorts by date from newest to oldest' do
click_on 'search'
click_on 'Sort by relevance'
click_on 'date (newest first)'

content = find(:css, '#content')
expect(content).to have_content("1.\nRhett Lecheire")
expect(content).to have_content("2.\nAmor Llama")
expect(content).to have_content("3.\nHandsomeDan Bulldog")
expect(content).to have_content("4.\nAquila Eccellenza")
end

# rubocop:disable Layout/LineLength
context 'sorts by title' do
it 'asc' do
click_on 'search'
Expand All @@ -119,10 +96,7 @@
end

content = find(:css, '#content')
expect(content).to have_content("1.\nAmor Llama")
expect(content).to have_content("2.\nAquila Eccellenza")
expect(content).to have_content("3.\nHandsomeDan Bulldog")
expect(content).to have_content("4.\nRhett Lecheire")
expect(content).to have_content("SORT BY TITLE (A --> Z)\nNumber of results to display per page\n10 PER PAGE\nView results as:\nLIST\nLIST\nGALLERY\nGALLERY\nSearch Results\nAmor Llama\nCreator:\nAnna Elizabeth Dewdney\nAquila Eccellenza\nCreator:\nAndrew Norriss\nHandsomeDan Bulldog\nCreator:\nAndy Graves\nRhett Lecheire\nCreator:\nPaulo Coelho").or have_content("1.\nAmor Llama\nCreator:\nAnna Elizabeth Dewdney\n2.\nAquila Eccellenza\nCreator:\nAndrew Norriss\n3.\nHandsomeDan Bulldog\nCreator:\nAndy Graves\n4.\nRhett Lecheire\nCreator:\nPaulo Coelho")
end

it 'desc' do
Expand All @@ -133,10 +107,7 @@
end

content = find(:css, '#content')
expect(content).to have_content("4.\nAmor Llama")
expect(content).to have_content("3.\nAquila Eccellenza")
expect(content).to have_content("2.\nHandsomeDan Bulldog")
expect(content).to have_content("1.\nRhett Lecheire")
expect(content).to have_content("SORT BY TITLE (Z --> A)\nNumber of results to display per page\n10 PER PAGE\nView results as:\nLIST\nLIST\nGALLERY\nGALLERY\nSearch Results\nRhett Lecheire\nCreator:\nPaulo Coelho\nHandsomeDan Bulldog\nCreator:\nAndy Graves\nAquila Eccellenza\nCreator:\nAndrew Norriss\nAmor Llama\nCreator:\nAnna Elizabeth Dewdney").or have_content("1.\nRhett Lecheire\nCreator:\nPaulo Coelho\n2.\nHandsomeDan Bulldog\nCreator:\nAndy Graves\n3.\nAquila Eccellenza\nCreator:\nAndrew Norriss\n4.\nAmor Llama\nCreator:\nAnna Elizabeth Dewdney")
end
end

Expand All @@ -149,10 +120,7 @@
end

content = find(:css, '#content')
expect(content).to have_content("1.\nAquila Eccellenza")
expect(content).to have_content("2.\nHandsomeDan Bulldog")
expect(content).to have_content("3.\nAmor Llama")
expect(content).to have_content("4.\nRhett Lecheire")
expect(content).to have_content("SORT BY CREATOR (A --> Z)\nNumber of results to display per page\n10 PER PAGE\nView results as:\nLIST\nLIST\nGALLERY\nGALLERY\nSearch Results\nAquila Eccellenza\nCreator:\nAndrew Norriss\nHandsomeDan Bulldog\nCreator:\nAndy Graves\nAmor Llama\nCreator:\nAnna Elizabeth Dewdney\nRhett Lecheire\nCreator:\nPaulo Coelho").or have_content("1.\nAquila Eccellenza\nCreator:\nAndrew Norriss\n2.\nHandsomeDan Bulldog\nCreator:\nAndy Graves\n3.\nAmor Llama\nCreator:\nAnna Elizabeth Dewdney\n4.\nRhett Lecheire\nCreator:\nPaulo Coelho")
end

it 'sorts by creator desc' do
Expand All @@ -163,10 +131,7 @@
end

content = find(:css, '#content')
expect(content).to have_content("4.\nAquila Eccellenza")
expect(content).to have_content("3.\nHandsomeDan Bulldog")
expect(content).to have_content("2.\nAmor Llama")
expect(content).to have_content("1.\nRhett Lecheire")
expect(content).to have_content("SORT BY CREATOR (Z --> A)\nNumber of results to display per page\n10 PER PAGE\nView results as:\nLIST\nLIST\nGALLERY\nGALLERY\nSearch Results\nRhett Lecheire\nCreator:\nPaulo Coelho\nAmor Llama\nCreator:\nAnna Elizabeth Dewdney\nHandsomeDan Bulldog\nCreator:\nAndy Graves\nAquila Eccellenza\nCreator:\nAndrew Norriss").or have_content("1.\nRhett Lecheire\nCreator:\nPaulo Coelho\n2.\nAmor Llama\nCreator:\nAnna Elizabeth Dewdney\n3.\nHandsomeDan Bulldog\nCreator:\nAndy Graves\n4.\nAquila Eccellenza\nCreator:\nAndrew Norriss")
end
end

Expand All @@ -179,10 +144,7 @@
end

content = find(:css, '#content')
expect(content).to have_content("1.\nAmor Llama")
expect(content).to have_content("2.\nHandsomeDan Bulldog")
expect(content).to have_content("3.\nRhett Lecheire")
expect(content).to have_content("4.\nAquila Eccellenza")
expect(content).to have_content("SORT BY YEAR (ASCENDING)\nNumber of results to display per page\n10 PER PAGE\nView results as:\nLIST\nLIST\nGALLERY\nGALLERY\nSearch Results\nAmor Llama\nCreator:\nAnna Elizabeth Dewdney\nHandsomeDan Bulldog\nCreator:\nAndy Graves\nRhett Lecheire\nCreator:\nPaulo Coelho\nAquila Eccellenza\nCreator:\nAndrew Norriss").or have_content("1.\nAmor Llama\nCreator:\nAnna Elizabeth Dewdney\n2.\nHandsomeDan Bulldog\nCreator:\nAndy Graves\n3.\nRhett Lecheire\nCreator:\nPaulo Coelho\n4.\nAquila Eccellenza\nCreator:\nAndrew Norriss")
end

it 'sorts by year desc' do
Expand All @@ -193,10 +155,7 @@
end

content = find(:css, '#content')
expect(content).to have_content("1.\nAquila Eccellenza")
expect(content).to have_content("2.\nRhett Lecheire")
expect(content).to have_content("3.\nHandsomeDan Bulldog")
expect(content).to have_content("4.\nAmor Llama")
expect(content).to have_content("SORT BY YEAR (DESCENDING)\nNumber of results to display per page\n10 PER PAGE\nView results as:\nLIST\nLIST\nGALLERY\nGALLERY\nSearch Results\nAquila Eccellenza\nCreator:\nAndrew Norriss\nRhett Lecheire\nCreator:\nPaulo Coelho\nHandsomeDan Bulldog\nCreator:\nAndy Graves\nAmor Llama\nCreator:\nAnna Elizabeth Dewdney").or have_content("1.\nAquila Eccellenza\nCreator:\nAndrew Norriss\n2.\nRhett Lecheire\nCreator:\nPaulo Coelho\n3.\nHandsomeDan Bulldog\nCreator:\nAndy Graves\n4.\nAmor Llama\nCreator:\nAnna Elizabeth Dewdney")
end
end

Expand All @@ -214,16 +173,15 @@
it 'does not have sort by collection by default' do
visit "/catalog?f[collection_title_ssi][]=Test"
content = find(:css, '#content')
expect(content).to have_content("1.\nHandsomeDan Bulldog")
expect(content).to have_content("2.\nRhett Lecheire")
expect(content).to have_content("HandsomeDan Bulldog\nCreator:\nAndy Graves\nRhett Lecheire\nCreator:\nPaulo Coelho").or have_content("1.\nHandsomeDan Bulldog\nCreator:\nAndy Graves\n2.\nRhett Lecheire\nCreator:\nPaulo Coelho")
click_on 'Sort by relevance'
within('div#sort-dropdown') do
expect(page).to have_content("Collection Order")
click_on "Collection Order"
end
content = find(:css, '#content')
expect(content).to have_content("1.\nRhett Lecheire")
expect(content).to have_content("2.\nHandsomeDan Bulldog")
expect(content).to have_content("Rhett Lecheire\nCreator:\nPaulo Coelho\nHandsomeDan Bulldog\nCreator:\nAndy Graves").or have_content("1.\nHandsomeDan Bulldog\nCreator:\nAndy Graves\n2.\nRhett Lecheire\nCreator:\nPaulo Coelho")
end
end
# rubocop:enable Layout/LineLength
end
Loading

0 comments on commit 76cda45

Please sign in to comment.