From 5f00d795a2e1cd8c046919576bb3dbe6e0f81569 Mon Sep 17 00:00:00 2001 From: Howard Miller <3620291+h-m-m@users.noreply.github.com> Date: Thu, 29 May 2025 17:04:44 -0400 Subject: [PATCH 1/2] Enable Capybara testing --- Gemfile | 10 +++++- Gemfile.lock | 50 ++++++++++++++++++++++++++- spec/capybara_helper.rb | 9 +++++ spec/integration/accordion_js_spec.rb | 10 ++++++ 4 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 spec/capybara_helper.rb create mode 100644 spec/integration/accordion_js_spec.rb diff --git a/Gemfile b/Gemfile index 26dc7d60..ecdd3a92 100644 --- a/Gemfile +++ b/Gemfile @@ -8,9 +8,17 @@ gem 'kramdown-parser-gfm', '~> 1.0' gem 'jekyll-redirect-from' gem 'jekyll-sitemap' +group :development, :test do + gem 'pry-byebug' +end + group :test do + gem 'capybara' gem 'html-proofer', '~> 4.0' + gem 'nokogiri', '>= 1.10.5' + gem 'rackup' # required for `Capybara.server = :webrick` + gem 'rack-jekyll' gem 'rspec' gem 'rspec_junit_formatter', require: false - gem 'nokogiri', '>= 1.10.5' + gem 'selenium-webdriver' end diff --git a/Gemfile.lock b/Gemfile.lock index 773f7e2a..9543334d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,7 +3,19 @@ GEM specs: addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) + base64 (0.3.0) bigdecimal (3.1.8) + byebug (12.0.0) + capybara (3.40.0) + addressable + matrix + mini_mime (>= 0.1.3) + nokogiri (~> 1.11) + rack (>= 1.6.0) + rack-test (>= 0.6.3) + regexp_parser (>= 1.5, < 3.0) + xpath (~> 3.2) + coderay (1.1.3) colorator (1.1.0) concurrent-ruby (1.3.4) diff-lcs (1.5.1) @@ -62,7 +74,11 @@ GEM listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) + logger (1.7.0) + matrix (0.4.2) mercenary (0.4.0) + method_source (1.1.0) + mini_mime (1.1.5) mini_portile2 (2.8.9) nokogiri (1.18.8) mini_portile2 (~> 2.8.2) @@ -70,13 +86,30 @@ GEM parallel (1.26.3) pathutil (0.16.2) forwardable-extended (~> 2.6) + pry (0.15.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.11.0) + byebug (~> 12.0) + pry (>= 0.13, < 0.16) public_suffix (6.0.1) racc (1.8.1) + rack (1.6.13) + rack-jekyll (0.5.0) + jekyll (>= 1.3) + listen (>= 1.3) + rack (~> 1.5) + rack-test (2.2.0) + rack (>= 1.3) + rackup (1.0.1) + rack (< 3) + webrick rainbow (3.1.1) rake (13.2.1) rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) + regexp_parser (2.10.0) rexml (3.3.9) rouge (4.4.0) rspec (3.13.0) @@ -94,16 +127,26 @@ GEM rspec-support (3.13.1) rspec_junit_formatter (0.6.0) rspec-core (>= 2, < 4, != 2.12.0) + rubyzip (2.4.1) safe_yaml (1.0.5) sass-embedded (1.80.6) google-protobuf (~> 4.28) rake (>= 13) + selenium-webdriver (4.33.0) + base64 (~> 0.2) + logger (~> 1.4) + rexml (~> 3.2, >= 3.2.5) + rubyzip (>= 1.2.2, < 3.0) + websocket (~> 1.0) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) typhoeus (1.4.1) ethon (>= 0.9.0) unicode-display_width (2.6.0) webrick (1.9.0) + websocket (1.2.11) + xpath (3.2.0) + nokogiri (~> 1.8) yell (2.2.2) zeitwerk (2.7.1) @@ -111,6 +154,7 @@ PLATFORMS ruby DEPENDENCIES + capybara html-proofer (~> 4.0) jekyll (~> 4.3.0) jekyll-redirect-from @@ -118,11 +162,15 @@ DEPENDENCIES jekyll-sitemap kramdown-parser-gfm (~> 1.0) nokogiri (>= 1.10.5) + pry-byebug + rack-jekyll + rackup rspec rspec_junit_formatter + selenium-webdriver RUBY VERSION ruby 3.2.5p208 BUNDLED WITH - 2.5.9 + 2.6.9 diff --git a/spec/capybara_helper.rb b/spec/capybara_helper.rb new file mode 100644 index 00000000..c647efae --- /dev/null +++ b/spec/capybara_helper.rb @@ -0,0 +1,9 @@ +require 'spec_helper' +require 'capybara/rspec' +require 'rack/jekyll' +require 'selenium-webdriver' +require 'yaml' + +Capybara.javascript_driver = :selenium_chrome_headless +Capybara.app = Rack::Jekyll.new(force_build: true) +Capybara.server = :webrick diff --git a/spec/integration/accordion_js_spec.rb b/spec/integration/accordion_js_spec.rb new file mode 100644 index 00000000..224c4908 --- /dev/null +++ b/spec/integration/accordion_js_spec.rb @@ -0,0 +1,10 @@ +require 'capybara_helper' +require 'pry-byebug' + +RSpec.describe 'accordions on /oidc/authorization/', :js, type: :feature do + it 'loads the page' do + visit '/oidc/authorization/' + first_summary = find_all('summary').first + expect(first_summary.text).to eq 'Type of Service Level' + end +end \ No newline at end of file From 993473c94871640d2318049ce7224198212c2782 Mon Sep 17 00:00:00 2001 From: Howard Miller <3620291+h-m-m@users.noreply.github.com> Date: Thu, 5 Jun 2025 17:27:19 -0400 Subject: [PATCH 2/2] Allow auto-expand of accordions based on URL --- _layouts/base.html | 1 + assets/js/anchor_accordion.js | 16 ++++++++++++++++ spec/integration/accordion_js_spec.rb | 26 +++++++++++++++++++++----- 3 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 assets/js/anchor_accordion.js diff --git a/_layouts/base.html b/_layouts/base.html index d15abfe8..e3e114fb 100644 --- a/_layouts/base.html +++ b/_layouts/base.html @@ -153,6 +153,7 @@

{{ page.title }}

+