diff --git a/Makefile b/Makefile index b9edbdcc925..f37fbecb2bd 100644 --- a/Makefile +++ b/Makefile @@ -79,7 +79,7 @@ normalize_yaml: optimize_svg: # Without disabling minifyStyles, keyframes are removed (e.g. `app/assets/images/id-card.svg`). # See: https://github.com/svg/svgo/issues/888 - find app/assets/images public -name '*.svg' | xargs ./node_modules/.bin/svgo --multipass --disable minifyStyles --config '{"plugins":[{"removeAttrs":{"attrs":"data-name"}}]}' + find app/assets/images public -name '*.svg' | xargs ./node_modules/.bin/svgo --multipass --disable minifyStyles --disable=removeViewBox --config '{"plugins":[{"removeAttrs":{"attrs":"data-name"}}]}' optimize_assets: optimize_svg diff --git a/app/assets/images/alert/icon-lock-alert-important.svg b/app/assets/images/alert/icon-lock-alert-important.svg index 6feb8fb15d5..5a962a6e5aa 100644 --- a/app/assets/images/alert/icon-lock-alert-important.svg +++ b/app/assets/images/alert/icon-lock-alert-important.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/alert/pending.svg b/app/assets/images/alert/pending.svg index bea072ca9e6..826e9539de1 100644 --- a/app/assets/images/alert/pending.svg +++ b/app/assets/images/alert/pending.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/alert/unphishable.svg b/app/assets/images/alert/unphishable.svg index 84ff427c975..f48a529d1b6 100644 --- a/app/assets/images/alert/unphishable.svg +++ b/app/assets/images/alert/unphishable.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/close-white-alt.svg b/app/assets/images/close-white-alt.svg index f8df3f8afd9..7ed2c722a86 100644 --- a/app/assets/images/close-white-alt.svg +++ b/app/assets/images/close-white-alt.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/get-started/ID.svg b/app/assets/images/get-started/ID.svg index 3782241e973..ca6d52c50a3 100644 --- a/app/assets/images/get-started/ID.svg +++ b/app/assets/images/get-started/ID.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/ico-download.svg b/app/assets/images/ico-download.svg index 3c35e168cca..bf23b5f8651 100644 --- a/app/assets/images/ico-download.svg +++ b/app/assets/images/ico-download.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/icon-dot-gov.svg b/app/assets/images/icon-dot-gov.svg index 5d190c28e0f..286d41a5ab4 100644 --- a/app/assets/images/icon-dot-gov.svg +++ b/app/assets/images/icon-dot-gov.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/icon-lock-alert-important.svg b/app/assets/images/icon-lock-alert-important.svg index 6feb8fb15d5..5a962a6e5aa 100644 --- a/app/assets/images/icon-lock-alert-important.svg +++ b/app/assets/images/icon-lock-alert-important.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/id-card.svg b/app/assets/images/id-card.svg index 8e808fc892c..b24cedd0bfe 100644 --- a/app/assets/images/id-card.svg +++ b/app/assets/images/id-card.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/piv-cac-round.svg b/app/assets/images/piv-cac-round.svg deleted file mode 100644 index 9a6f1428d29..00000000000 --- a/app/assets/images/piv-cac-round.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/app/assets/images/plus.svg b/app/assets/images/plus.svg index 9ab868d60d1..41888145942 100644 --- a/app/assets/images/plus.svg +++ b/app/assets/images/plus.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/sp-logos/generic.svg b/app/assets/images/sp-logos/generic.svg index c1c96dcdeb4..89d24209556 100644 --- a/app/assets/images/sp-logos/generic.svg +++ b/app/assets/images/sp-logos/generic.svg @@ -1 +1 @@ -GovernmentAgency NamePlaceholder \ No newline at end of file +GovernmentAgency NamePlaceholder \ No newline at end of file diff --git a/app/assets/images/sp-logos/square-gsa-dark.svg b/app/assets/images/sp-logos/square-gsa-dark.svg index 95983c84153..6c74486a77e 100644 --- a/app/assets/images/sp-logos/square-gsa-dark.svg +++ b/app/assets/images/sp-logos/square-gsa-dark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/sp-logos/square-gsa.svg b/app/assets/images/sp-logos/square-gsa.svg index 4c7614c77d2..e836615f276 100644 --- a/app/assets/images/sp-logos/square-gsa.svg +++ b/app/assets/images/sp-logos/square-gsa.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/state-id-round.svg b/app/assets/images/state-id-round.svg deleted file mode 100644 index 430fd0a7504..00000000000 --- a/app/assets/images/state-id-round.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/app/assets/images/user-access.svg b/app/assets/images/user-access.svg index 959983e200c..cf4dfc93011 100644 --- a/app/assets/images/user-access.svg +++ b/app/assets/images/user-access.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/user-signup-ial1.svg b/app/assets/images/user-signup-ial1.svg index 81481210878..af0a25b572f 100644 --- a/app/assets/images/user-signup-ial1.svg +++ b/app/assets/images/user-signup-ial1.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/user-signup-ial2.svg b/app/assets/images/user-signup-ial2.svg index 8d10825f713..eef9b6538eb 100644 --- a/app/assets/images/user-signup-ial2.svg +++ b/app/assets/images/user-signup-ial2.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/assets/images/webauthn-verified.svg b/app/assets/images/webauthn-verified.svg index 37c7a19ef10..cf4896f3937 100644 --- a/app/assets/images/webauthn-verified.svg +++ b/app/assets/images/webauthn-verified.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/images/logo-white.svg b/public/images/logo-white.svg index 3c1afa2d135..048af16a238 100644 --- a/public/images/logo-white.svg +++ b/public/images/logo-white.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/images/logo.svg b/public/images/logo.svg index 23aecb40e54..089e02289a4 100644 --- a/public/images/logo.svg +++ b/public/images/logo.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/spec/svg_spec.rb b/spec/svg_spec.rb index a90d9c3ba2e..59d83a3759f 100644 --- a/spec/svg_spec.rb +++ b/spec/svg_spec.rb @@ -1,19 +1,21 @@ require 'rails_helper' RSpec.describe 'SVG files' do - Dir[Rails.root.join('**', '*.svg')].reject { |f| f.include?('node_modules') }.each do |svg_path| - relative_path = svg_path.sub(Rails.root.to_s, '') - - next if %w[vendor node_modules].include?(relative_path.split('/')[1]) - + files = Dir.glob('{app,public}/**/*.svg', base: Rails.root) + files.reject! { |f| f.start_with? 'public/assets/' } + files.each do |relative_path| describe relative_path do - it 'does not contain inline style tags (that render poorly in IE due to CSP)' do - doc = Nokogiri::XML(File.read(svg_path)) + let(:subject) { Nokogiri::XML(File.read(Rails.root.join(relative_path))) } - expect(doc.css('style')).to be_empty.or( + it 'does not contain inline style tags (that render poorly in IE due to CSP)' do + expect(subject.css('style')).to be_empty.or( have_attributes(text: match(%r{^\s*/\*\!lint-ignore\*/})), ) end + + it 'defines viewBox attribute on root svg tag' do + expect(subject.css(':root[viewBox]')).to be_present + end end end end