From 8143ccc59d932ae17c71574f837fdc7b1f0d4d20 Mon Sep 17 00:00:00 2001 From: Ana Botto Date: Thu, 27 Jun 2024 11:20:31 +0100 Subject: [PATCH 1/3] Make required changes for govuk-components gem upgrade with reference commit --- Gemfile | 2 +- Gemfile.lock | 4 +-- app/assets/config/manifest.js | 1 + app/assets/javascripts/application.js | 4 ++- app/assets/javascripts/es6-components.js | 14 ++++++++++ .../javascripts/modules/downtime_message.js | 2 +- app/assets/stylesheets/application.scss | 27 ++++++++++++++++++- app/views/layouts/design_system.html.erb | 1 + config/routes.rb | 1 + 9 files changed, 50 insertions(+), 6 deletions(-) create mode 100644 app/assets/javascripts/es6-components.js diff --git a/Gemfile b/Gemfile index cf012ca12..15467b242 100644 --- a/Gemfile +++ b/Gemfile @@ -13,7 +13,7 @@ gem "gds-sso" gem "govspeak" gem "govuk_admin_template" gem "govuk_app_config" -gem "govuk_publishing_components" +gem "govuk_publishing_components", git: "https://github.com/alphagov/govuk_publishing_components.git", branch: "upgrade-to-govuk-frontend-5.1", ref: "29e8b077cdc6f69493805b67cbbec856dde008ea" gem "govuk_sidekiq" gem "has_scope" gem "html2text" diff --git a/Gemfile.lock b/Gemfile.lock index 23750f1cc..e01533332 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -225,7 +225,7 @@ GEM govuk_personalisation (0.16.0) plek (>= 1.9.0) rails (>= 6, < 8) - govuk_publishing_components (39.2.4) + govuk_publishing_components (40.0.0) govuk_app_config govuk_personalisation (>= 0.7.0) kramdown @@ -827,7 +827,7 @@ DEPENDENCIES govspeak govuk_admin_template govuk_app_config - govuk_publishing_components + govuk_publishing_components (= 40.0.0) govuk_schemas govuk_sidekiq govuk_test diff --git a/app/assets/config/manifest.js b/app/assets/config/manifest.js index 8d22e264e..c69f3cdb7 100644 --- a/app/assets/config/manifest.js +++ b/app/assets/config/manifest.js @@ -4,3 +4,4 @@ //= link legacy-application.js //= link legacy-application.css +//= link es6-components.js diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index ae82209f9..679ed399a 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -1,4 +1,6 @@ //= require_directory ./modules //= require govuk_publishing_components/dependencies -//= require govuk_publishing_components/all_components +//= require govuk_publishing_components/lib +//= require govuk_publishing_components/components/govspeak +//= require govuk_publishing_components/components/table diff --git a/app/assets/javascripts/es6-components.js b/app/assets/javascripts/es6-components.js new file mode 100644 index 000000000..5c12e1c6f --- /dev/null +++ b/app/assets/javascripts/es6-components.js @@ -0,0 +1,14 @@ +// These modules from govuk_publishing_components +// depend on govuk-frontend modules. govuk-frontend +// now targets browsers that support `type="module"`. +// +// To gracefully prevent execution of these scripts +// on browsers that don't support ES6, this script +// should be included in a `type="module"` script tag +// which will ensure they are never loaded. + +//= require govuk_publishing_components/components/button +//= require govuk_publishing_components/components/error-summary +//= require govuk_publishing_components/components/layout-header +//= require govuk_publishing_components/components/radio +//= require govuk_publishing_components/components/skip-link diff --git a/app/assets/javascripts/modules/downtime_message.js b/app/assets/javascripts/modules/downtime_message.js index 2f8ba065f..cbadbcccd 100644 --- a/app/assets/javascripts/modules/downtime_message.js +++ b/app/assets/javascripts/modules/downtime_message.js @@ -1,4 +1,4 @@ -//= require govuk_publishing_components/vendor/polyfills/closest +//= require govuk_publishing_components/vendor/polyfills-govuk-frontend-v4/Element/prototype/closest window.GOVUK = window.GOVUK || {} window.GOVUK.Modules = window.GOVUK.Modules || {}; diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 940922f98..0226259a6 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -1,7 +1,32 @@ $govuk-page-width: 1140px; // GOVUK Design System -@import "govuk_publishing_components/all_components"; +@import 'govuk_publishing_components/govuk_frontend_support'; +@import 'govuk_publishing_components/component_support'; +@import 'govuk_publishing_components/components/button'; +@import 'govuk_publishing_components/components/date-input'; +@import 'govuk_publishing_components/components/document-list'; +@import 'govuk_publishing_components/components/error-alert'; +@import 'govuk_publishing_components/components/error-message'; +@import 'govuk_publishing_components/components/error-summary'; +@import 'govuk_publishing_components/components/fieldset'; +@import 'govuk_publishing_components/components/govspeak'; +@import 'govuk_publishing_components/components/heading'; +@import 'govuk_publishing_components/components/hint'; +@import 'govuk_publishing_components/components/input'; +@import 'govuk_publishing_components/components/label'; +@import 'govuk_publishing_components/components/layout-footer'; +@import 'govuk_publishing_components/components/layout-for-admin'; +@import 'govuk_publishing_components/components/layout-header'; +@import 'govuk_publishing_components/components/lead-paragraph'; +@import 'govuk_publishing_components/components/notice'; +@import 'govuk_publishing_components/components/search'; +@import 'govuk_publishing_components/components/skip-link'; +@import 'govuk_publishing_components/components/success-alert'; +@import 'govuk_publishing_components/components/summary-list'; +@import 'govuk_publishing_components/components/table'; +@import 'govuk_publishing_components/components/textarea'; +@import 'govuk_publishing_components/components/title'; @import "downtimes"; @import "summary-card"; @import "popular_links"; diff --git a/app/views/layouts/design_system.html.erb b/app/views/layouts/design_system.html.erb index c0cf3f533..a65f851f6 100644 --- a/app/views/layouts/design_system.html.erb +++ b/app/views/layouts/design_system.html.erb @@ -7,6 +7,7 @@ } do %> <% render "layouts/google_tag_manager" %> + <%= javascript_include_tag "es6-components", type: "module" %> <%= render "govuk_publishing_components/components/skip_link" %> diff --git a/config/routes.rb b/config/routes.rb index 62e58b798..ffede8933 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -84,4 +84,5 @@ mount GovukAdminTemplate::Engine, at: "/style-guide" mount Flipflop::Engine => "/flipflop" + mount GovukPublishingComponents::Engine, at: "/component-guide" end From 615046caf6e0545524e116e9f4172a8d8422525e Mon Sep 17 00:00:00 2001 From: Ana Botto Date: Tue, 2 Jul 2024 11:37:20 +0100 Subject: [PATCH 2/3] Update test to work with design system upgrade --- test/integration/homepage_popular_links_test.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/integration/homepage_popular_links_test.rb b/test/integration/homepage_popular_links_test.rb index 4d9dc162b..d126d82da 100644 --- a/test/integration/homepage_popular_links_test.rb +++ b/test/integration/homepage_popular_links_test.rb @@ -26,7 +26,7 @@ class HomepagePopularLinksTest < JavascriptIntegrationTest assert page.has_text?("Edition") assert page.has_text?(@popular_links.version_number) assert page.has_text?("Status") - assert page.has_text?("PUBLISHED") + assert page.has_text?("Published") assert page.has_css?(".govuk-tag--green") end @@ -42,7 +42,7 @@ class HomepagePopularLinksTest < JavascriptIntegrationTest should "render new draft popular links with edit option when 'Create new edition' button is clicked" do click_button("Create new edition") within(:css, ".govuk-tag--yellow") do - assert page.has_content?("DRAFT") + assert page.has_content?("Draft") end end end @@ -54,7 +54,7 @@ class HomepagePopularLinksTest < JavascriptIntegrationTest assert page.has_text?("Edition") assert page.has_text?(@popular_links.version_number) assert page.has_text?("Status") - assert page.has_text?("DRAFT") + assert page.has_text?("Draft") assert page.has_css?(".govuk-tag--yellow") assert page.has_text?("Edit popular links") end @@ -64,7 +64,7 @@ class HomepagePopularLinksTest < JavascriptIntegrationTest assert row[0].has_text?("Edition") assert row[0].has_text?("1") assert row[1].has_text?("Status") - assert row[1].has_text?("PUBLISHED") + assert row[1].has_text?("Published") click_button("Create new edition") @@ -72,7 +72,7 @@ class HomepagePopularLinksTest < JavascriptIntegrationTest assert row[0].has_text?("Edition") assert row[0].has_text?("2") assert row[1].has_text?("Status") - assert row[1].has_text?("DRAFT") + assert row[1].has_text?("Draft") end end From cfb98e68f28ca112afe56afa9a9b9de747222191 Mon Sep 17 00:00:00 2001 From: Barbara Slawinska Date: Wed, 17 Jul 2024 08:59:55 +0100 Subject: [PATCH 3/3] Change Gemfile after new gem version is released --- Gemfile | 2 +- Gemfile.lock | 6 +++--- app/assets/javascripts/modules/downtime_message.js | 2 +- test/integration/homepage_popular_links_test.rb | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 15467b242..cf012ca12 100644 --- a/Gemfile +++ b/Gemfile @@ -13,7 +13,7 @@ gem "gds-sso" gem "govspeak" gem "govuk_admin_template" gem "govuk_app_config" -gem "govuk_publishing_components", git: "https://github.com/alphagov/govuk_publishing_components.git", branch: "upgrade-to-govuk-frontend-5.1", ref: "29e8b077cdc6f69493805b67cbbec856dde008ea" +gem "govuk_publishing_components" gem "govuk_sidekiq" gem "has_scope" gem "html2text" diff --git a/Gemfile.lock b/Gemfile.lock index e01533332..f834f9b47 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -416,7 +416,7 @@ GEM opentelemetry-api (~> 1.0) opentelemetry-instrumentation-active_support (~> 0.1) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-active_job (0.7.2) + opentelemetry-instrumentation-active_job (0.7.3) opentelemetry-api (~> 1.0) opentelemetry-instrumentation-base (~> 0.22.1) opentelemetry-instrumentation-active_model_serializers (0.20.1) @@ -666,7 +666,7 @@ GEM http-cookie (>= 1.0.2, < 2.0) mime-types (>= 1.16, < 4.0) netrc (~> 0.8) - rexml (3.3.1) + rexml (3.3.2) strscan rinku (2.0.6) rouge (4.3.0) @@ -827,7 +827,7 @@ DEPENDENCIES govspeak govuk_admin_template govuk_app_config - govuk_publishing_components (= 40.0.0) + govuk_publishing_components govuk_schemas govuk_sidekiq govuk_test diff --git a/app/assets/javascripts/modules/downtime_message.js b/app/assets/javascripts/modules/downtime_message.js index cbadbcccd..2f8ba065f 100644 --- a/app/assets/javascripts/modules/downtime_message.js +++ b/app/assets/javascripts/modules/downtime_message.js @@ -1,4 +1,4 @@ -//= require govuk_publishing_components/vendor/polyfills-govuk-frontend-v4/Element/prototype/closest +//= require govuk_publishing_components/vendor/polyfills/closest window.GOVUK = window.GOVUK || {} window.GOVUK.Modules = window.GOVUK.Modules || {}; diff --git a/test/integration/homepage_popular_links_test.rb b/test/integration/homepage_popular_links_test.rb index d126d82da..fa2374ce9 100644 --- a/test/integration/homepage_popular_links_test.rb +++ b/test/integration/homepage_popular_links_test.rb @@ -143,7 +143,7 @@ class HomepagePopularLinksTest < JavascriptIntegrationTest should "publish latest edition when 'Publish' is clicked" do click_button("Publish") - assert page.has_text?("PUBLISHED") + assert page.has_text?("Published") assert page.has_text?("Popular links successfully published.") end end