From 423c3b88dd5e22b1d74c5bf34bbe6279eaea6ac8 Mon Sep 17 00:00:00 2001 From: Martyn Whitwell Date: Fri, 20 Sep 2024 11:22:17 +0100 Subject: [PATCH] Removing DEGREE_SUBJECT_AUTOCOMPLETE_ENABLED feature flag --- .env.production | 2 - .env.staging | 2 - .env.test | 2 - .../registrations/behaviours/education.rb | 36 +- .../registrations/educations/_form.html.erb | 61 ++-- package.json | 1 + .../background_checks_controller_spec.rb | 1 - .../confirmation_emails_controller_spec.rb | 1 - .../educations_controller_spec.rb | 1 - .../placement_preferences_controller_spec.rb | 1 - ...ived_placement_requests_controller_spec.rb | 1 - .../schools/attendances_controller_spec.rb | 1 - .../cancelled_bookings_controller_spec.rb | 1 - .../confirm_attendance_controller_spec.rb | 1 - ...notification_deliveries_controller_spec.rb | 1 - .../cancellations_controller_spec.rb | 1 - .../date_controller_spec.rb | 1 - .../confirmed_bookings_controller_spec.rb | 1 - .../confirm_booking_controller_spec.rb | 1 - .../make_changes_controller_spec.rb | 1 - ...view_confirmation_email_controller_spec.rb | 1 - ...notification_deliveries_controller_spec.rb | 1 - .../cancellations_controller_spec.rb | 1 - .../past_attendance_controller_spec.rb | 1 - .../under_consideration_controller_spec.rb | 1 - .../placement_requests_controller_spec.rb | 1 - .../previous_bookings_controller_spec.rb | 1 - .../rejected_requests_controller_spec.rb | 1 - .../withdrawn_requests_controller_spec.rb | 1 - .../registrations/education_spec.rb | 31 -- spec/support/degree_subject_autocomplete.rb | 17 - yarn.lock | 343 +++++++++++++++++- 32 files changed, 367 insertions(+), 151 deletions(-) delete mode 100644 spec/support/degree_subject_autocomplete.rb diff --git a/.env.production b/.env.production index 983636737a..6345e06a2b 100644 --- a/.env.production +++ b/.env.production @@ -7,5 +7,3 @@ DFE_SIGNIN_API_ENABLED="1" DFE_SIGNIN_API_SCHOOL_CHANGE_ENABLED="1" GTM_ID=GTM-W3VGWP6 BIGQUERY_DATASET=gse_events_production - -DEGREE_SUBJECT_AUTOCOMPLETE_ENABLED=1 diff --git a/.env.staging b/.env.staging index 51ccaa0b8a..55f57918a4 100644 --- a/.env.staging +++ b/.env.staging @@ -6,5 +6,3 @@ DFE_SIGNIN_API_ENABLED="1" DFE_SIGNIN_API_SCHOOL_CHANGE_ENABLED="1" GTM_ID=GTM-PN3BPDM BIGQUERY_DATASET=gse_events_staging - -DEGREE_SUBJECT_AUTOCOMPLETE_ENABLED=1 diff --git a/.env.test b/.env.test index a344709061..8ddfc7ccb8 100644 --- a/.env.test +++ b/.env.test @@ -1,4 +1,2 @@ # Add public environment variables here for the Test environment SECRET_KEY_BASE=stubbed - -DEGREE_SUBJECT_AUTOCOMPLETE_ENABLED=1 diff --git a/app/services/candidates/registrations/behaviours/education.rb b/app/services/candidates/registrations/behaviours/education.rb index 76d004d1c0..76af1233cc 100644 --- a/app/services/candidates/registrations/behaviours/education.rb +++ b/app/services/candidates/registrations/behaviours/education.rb @@ -14,20 +14,13 @@ module Education validates :degree_stage, inclusion: { in: :available_degree_stages }, if: -> { degree_stage.present? } validates :degree_stage_explaination, presence: true, if: :degree_stage_explaination_required? - # if DEGREE_SUBJECT_AUTOCOMPLETE_ENABLED=true (degree_subject_autocomplete?) - # + if javascript is disabled (nojs?), then - validates :degree_subject_nojs, presence: true, if: -> { degree_subject_autocomplete? && nojs? && degree_stage_requires_subject? } - validates :degree_subject_nojs, absence: true, if: -> { degree_subject_autocomplete? && nojs? && !degree_stage_requires_subject? } - - # # + else if javascript is enabled (js?), then - validates :degree_subject, presence: true, if: -> { degree_subject_autocomplete? && js? && degree_stage_requires_subject? } - validates :degree_subject, absence: true, if: -> { degree_subject_autocomplete? && js? && !degree_stage_requires_subject? } - - # if DEGREE_SUBJECT_AUTOCOMPLETE_ENABLED=false (degree_subject_simple?) - validates :degree_subject, presence: true, if: -> { degree_subject_simple? && degree_stage_requires_subject? } - validates :degree_subject, inclusion: { in: :available_degree_subjects }, if: -> { degree_subject_simple? && degree_stage_requires_subject? } - validates :degree_subject, inclusion: [NO_DEGREE_SUBJECT], if: -> { degree_subject_simple? && degree_stage_requires_n_a_subject? } - validates :degree_subject, exclusion: [NO_DEGREE_SUBJECT], if: -> { degree_subject_simple? && degree_stage_requires_subject_in_subjects_list? } + # if javascript is disabled (nojs?), then + validates :degree_subject_nojs, presence: true, if: -> { nojs? && degree_stage_requires_subject? } + validates :degree_subject_nojs, absence: true, if: -> { nojs? && !degree_stage_requires_subject? } + + # else if javascript is enabled (js?), then + validates :degree_subject, presence: true, if: -> { js? && degree_stage_requires_subject? } + validates :degree_subject, absence: true, if: -> { js? && !degree_stage_requires_subject? } end def js? @@ -43,12 +36,7 @@ def available_degree_stages end def available_degree_subjects - @available_degree_subjects ||= - if degree_subject_autocomplete? - DfE::ReferenceData::Degrees::SUBJECTS.all - else - OPTIONS_CONFIG.fetch 'DEGREE_SUBJECTS' - end + @available_degree_subjects ||= DfE::ReferenceData::Degrees::SUBJECTS.all end def requires_subject_for_degree_stage?(some_degree_stage) @@ -63,14 +51,6 @@ def no_degree_subject NO_DEGREE_SUBJECT end - def degree_subject_autocomplete? - @degree_subject_autocomplete ||= ActiveModel::Type::Boolean.new.cast(ENV.fetch("DEGREE_SUBJECT_AUTOCOMPLETE_ENABLED", false)) - end - - def degree_subject_simple? - !degree_subject_autocomplete? - end - private def degree_stage_requires_subject? diff --git a/app/views/candidates/registrations/educations/_form.html.erb b/app/views/candidates/registrations/educations/_form.html.erb index 87ed0f7607..95607c4dc3 100644 --- a/app/views/candidates/registrations/educations/_form.html.erb +++ b/app/views/candidates/registrations/educations/_form.html.erb @@ -30,46 +30,27 @@
- <% if f.object.degree_subject_autocomplete? %> - <%= f.hidden_field :nojs, value: true, class: 'nojs-flag' %> - -
- - <%=f.govuk_text_field :degree_subject_nojs, label: { size: 'm' } %> -
- - <%= render DfE::Autocomplete::View.new( - f, - attribute_name: :degree_subject, - form_field: f.govuk_select( - :degree_subject, - options_for_select(dfe_autocomplete_options( f.object.available_degree_subjects), f.object.degree_subject), - label: { text: t('helpers.legend.candidates_registrations_education.degree_subject'), size: 'm', tag: 'h2' }, - hint: { text: t('helpers.hint.candidates_registrations_education.degree_subject') }, - data: { education_form_target: 'degreeSubject' }, - class: "enable-with-javascript", - disabled: true, - ), - classes: "show-with-javascript", - ) %> - <% else %> - <%= f.govuk_collection_select \ - :degree_subject, - f.object.available_degree_subjects, - :to_s, - :to_s, - options: { prompt: "Select" }, - data: { - education_form_target: 'degreeSubject', - value_for_no_degree: f.object.no_degree_subject - }, - class: "govuk-select govuk-!-width-one-half", - label: { class: "govuk-heading-m" } do %> -

- Select the nearest or equivalent subject. -

- <% end %> - <% end %> + <%= f.hidden_field :nojs, value: true, class: 'nojs-flag' %> + +
+ + <%=f.govuk_text_field :degree_subject_nojs, label: { size: 'm' } %> +
+ + <%= render DfE::Autocomplete::View.new( + f, + attribute_name: :degree_subject, + form_field: f.govuk_select( + :degree_subject, + options_for_select(dfe_autocomplete_options( f.object.available_degree_subjects), f.object.degree_subject), + label: { text: t('helpers.legend.candidates_registrations_education.degree_subject'), size: 'm', tag: 'h2' }, + hint: { text: t('helpers.hint.candidates_registrations_education.degree_subject') }, + data: { education_form_target: 'degreeSubject' }, + class: "enable-with-javascript", + disabled: true, + ), + classes: "show-with-javascript", + ) %>
<%= f.govuk_submit 'Continue' %> diff --git a/package.json b/package.json index 5d31be9b35..5b66fe472c 100644 --- a/package.json +++ b/package.json @@ -47,6 +47,7 @@ "devDependencies": { "babel-plugin-dynamic-import-node": "^2.3.3", "jest": "^29.7.0", + "jest-environment-jsdom": "^29.7.0", "webpack-dev-server": "4" }, "jest": { diff --git a/spec/controllers/candidates/registrations/background_checks_controller_spec.rb b/spec/controllers/candidates/registrations/background_checks_controller_spec.rb index ea46933405..3249fe1c86 100644 --- a/spec/controllers/candidates/registrations/background_checks_controller_spec.rb +++ b/spec/controllers/candidates/registrations/background_checks_controller_spec.rb @@ -2,7 +2,6 @@ describe Candidates::Registrations::BackgroundChecksController, type: :request do include_context 'Stubbed current_registration' - include_context "Degree subject autocomplete enabled" before do FactoryBot.create :bookings_school, urn: 11_048 diff --git a/spec/controllers/candidates/registrations/confirmation_emails_controller_spec.rb b/spec/controllers/candidates/registrations/confirmation_emails_controller_spec.rb index 1acb339aeb..fd410a22f8 100644 --- a/spec/controllers/candidates/registrations/confirmation_emails_controller_spec.rb +++ b/spec/controllers/candidates/registrations/confirmation_emails_controller_spec.rb @@ -3,7 +3,6 @@ describe Candidates::Registrations::ConfirmationEmailsController, type: :request do include_context 'Stubbed candidates school' include_context 'Stubbed current_registration' - include_context "Degree subject autocomplete enabled" let :registration_session do FactoryBot.build :registration_session, urn: school.urn, diff --git a/spec/controllers/candidates/registrations/educations_controller_spec.rb b/spec/controllers/candidates/registrations/educations_controller_spec.rb index 4b3c61525b..b454fa87eb 100644 --- a/spec/controllers/candidates/registrations/educations_controller_spec.rb +++ b/spec/controllers/candidates/registrations/educations_controller_spec.rb @@ -2,7 +2,6 @@ describe Candidates::Registrations::EducationsController, type: :request do include_context 'Stubbed current_registration' - include_context "Degree subject autocomplete enabled" let :registration_session do FactoryBot.build :registration_session, with: %i[ diff --git a/spec/controllers/candidates/registrations/placement_preferences_controller_spec.rb b/spec/controllers/candidates/registrations/placement_preferences_controller_spec.rb index c38a26d695..205725ba44 100644 --- a/spec/controllers/candidates/registrations/placement_preferences_controller_spec.rb +++ b/spec/controllers/candidates/registrations/placement_preferences_controller_spec.rb @@ -3,7 +3,6 @@ describe Candidates::Registrations::PlacementPreferencesController, type: :request do include_context 'Stubbed candidates school' include_context 'Stubbed current_registration' - include_context "Degree subject autocomplete enabled" let :registration_session do FactoryBot.build :registration_session, with: %i[ diff --git a/spec/controllers/schools/archived_placement_requests_controller_spec.rb b/spec/controllers/schools/archived_placement_requests_controller_spec.rb index 166a14b874..88132439ef 100644 --- a/spec/controllers/schools/archived_placement_requests_controller_spec.rb +++ b/spec/controllers/schools/archived_placement_requests_controller_spec.rb @@ -3,7 +3,6 @@ describe Schools::ArchivedPlacementRequestsController, type: :request do include_context "logged in DfE user" - include_context "Degree subject autocomplete enabled" let(:school) { Bookings::School.find_by! urn: urn } let!(:profile) { create :bookings_profile, school: school } diff --git a/spec/controllers/schools/attendances_controller_spec.rb b/spec/controllers/schools/attendances_controller_spec.rb index 72ad8361d0..a818685614 100644 --- a/spec/controllers/schools/attendances_controller_spec.rb +++ b/spec/controllers/schools/attendances_controller_spec.rb @@ -3,7 +3,6 @@ describe Schools::AttendancesController, type: :request do include_context "logged in DfE user" - include_context "Degree subject autocomplete enabled" let! :school do Bookings::School.find_by!(urn: urn).tap do |s| diff --git a/spec/controllers/schools/cancelled_bookings_controller_spec.rb b/spec/controllers/schools/cancelled_bookings_controller_spec.rb index 3ee74f3f59..50f939f0fd 100644 --- a/spec/controllers/schools/cancelled_bookings_controller_spec.rb +++ b/spec/controllers/schools/cancelled_bookings_controller_spec.rb @@ -3,7 +3,6 @@ describe Schools::CancelledBookingsController, type: :request do include_context "logged in DfE user" - include_context "Degree subject autocomplete enabled" let! :school do Bookings::School.find_by!(urn: urn).tap do |s| diff --git a/spec/controllers/schools/confirm_attendance_controller_spec.rb b/spec/controllers/schools/confirm_attendance_controller_spec.rb index 1824718e3b..96144055c1 100644 --- a/spec/controllers/schools/confirm_attendance_controller_spec.rb +++ b/spec/controllers/schools/confirm_attendance_controller_spec.rb @@ -3,7 +3,6 @@ describe Schools::ConfirmAttendanceController, type: :request do include_context "logged in DfE user" - include_context "Degree subject autocomplete enabled" let(:school) { Bookings::School.find_by(urn: urn) } let!(:profile) { create(:bookings_profile, school: school) } diff --git a/spec/controllers/schools/confirmed_bookings/cancellations/notification_deliveries_controller_spec.rb b/spec/controllers/schools/confirmed_bookings/cancellations/notification_deliveries_controller_spec.rb index 8969afd8d1..7122fc43dd 100644 --- a/spec/controllers/schools/confirmed_bookings/cancellations/notification_deliveries_controller_spec.rb +++ b/spec/controllers/schools/confirmed_bookings/cancellations/notification_deliveries_controller_spec.rb @@ -3,7 +3,6 @@ describe Schools::ConfirmedBookings::Cancellations::NotificationDeliveriesController, type: :request do include_context "logged in DfE user" - include_context "Degree subject autocomplete enabled" let :school do Bookings::School.find_by!(urn: urn).tap do |s| diff --git a/spec/controllers/schools/confirmed_bookings/cancellations_controller_spec.rb b/spec/controllers/schools/confirmed_bookings/cancellations_controller_spec.rb index cc5389eced..07db8fc9dc 100644 --- a/spec/controllers/schools/confirmed_bookings/cancellations_controller_spec.rb +++ b/spec/controllers/schools/confirmed_bookings/cancellations_controller_spec.rb @@ -3,7 +3,6 @@ describe Schools::ConfirmedBookings::CancellationsController, type: :request do include_context "logged in DfE user" - include_context "Degree subject autocomplete enabled" let :school do Bookings::School.find_by!(urn: urn).tap do |s| diff --git a/spec/controllers/schools/confirmed_bookings/date_controller_spec.rb b/spec/controllers/schools/confirmed_bookings/date_controller_spec.rb index 75408fb146..0c0db2c8c3 100644 --- a/spec/controllers/schools/confirmed_bookings/date_controller_spec.rb +++ b/spec/controllers/schools/confirmed_bookings/date_controller_spec.rb @@ -3,7 +3,6 @@ describe Schools::ConfirmedBookings::DateController, type: :request do include_context "logged in DfE user" - include_context "Degree subject autocomplete enabled" let(:booking) do create(:bookings_booking, :accepted, bookings_school: @current_user_school) diff --git a/spec/controllers/schools/confirmed_bookings_controller_spec.rb b/spec/controllers/schools/confirmed_bookings_controller_spec.rb index d42575bea4..561c184afc 100644 --- a/spec/controllers/schools/confirmed_bookings_controller_spec.rb +++ b/spec/controllers/schools/confirmed_bookings_controller_spec.rb @@ -3,7 +3,6 @@ describe Schools::ConfirmedBookingsController, type: :request do include_context "logged in DfE user" - include_context "Degree subject autocomplete enabled" let! :school do Bookings::School.find_by!(urn: urn).tap do |s| diff --git a/spec/controllers/schools/placement_requests/acceptance/confirm_booking_controller_spec.rb b/spec/controllers/schools/placement_requests/acceptance/confirm_booking_controller_spec.rb index deab65bffd..55876ccbf9 100644 --- a/spec/controllers/schools/placement_requests/acceptance/confirm_booking_controller_spec.rb +++ b/spec/controllers/schools/placement_requests/acceptance/confirm_booking_controller_spec.rb @@ -3,7 +3,6 @@ describe Schools::PlacementRequests::Acceptance::ConfirmBookingController, type: :request do include_context "logged in DfE user" - include_context "Degree subject autocomplete enabled" let!(:pr) { create(:bookings_placement_request, school: @current_user_school) } before { create(:bookings_profile, school: @current_user_school) } diff --git a/spec/controllers/schools/placement_requests/acceptance/make_changes_controller_spec.rb b/spec/controllers/schools/placement_requests/acceptance/make_changes_controller_spec.rb index 44d5a3daf3..2c307aa9fe 100644 --- a/spec/controllers/schools/placement_requests/acceptance/make_changes_controller_spec.rb +++ b/spec/controllers/schools/placement_requests/acceptance/make_changes_controller_spec.rb @@ -3,7 +3,6 @@ describe Schools::PlacementRequests::Acceptance::MakeChangesController, type: :request do include_context "logged in DfE user" - include_context "Degree subject autocomplete enabled" let!(:pr) { create(:bookings_placement_request, school: @current_user_school) } diff --git a/spec/controllers/schools/placement_requests/acceptance/preview_confirmation_email_controller_spec.rb b/spec/controllers/schools/placement_requests/acceptance/preview_confirmation_email_controller_spec.rb index 8f52ea7386..838e08414f 100644 --- a/spec/controllers/schools/placement_requests/acceptance/preview_confirmation_email_controller_spec.rb +++ b/spec/controllers/schools/placement_requests/acceptance/preview_confirmation_email_controller_spec.rb @@ -3,7 +3,6 @@ describe Schools::PlacementRequests::Acceptance::PreviewConfirmationEmailController, type: :request do include_context "logged in DfE user" - include_context "Degree subject autocomplete enabled" let :school_experience do instance_double(Bookings::Gitis::SchoolExperience) diff --git a/spec/controllers/schools/placement_requests/cancellations/notification_deliveries_controller_spec.rb b/spec/controllers/schools/placement_requests/cancellations/notification_deliveries_controller_spec.rb index ff9c566db8..aaefdc31a7 100644 --- a/spec/controllers/schools/placement_requests/cancellations/notification_deliveries_controller_spec.rb +++ b/spec/controllers/schools/placement_requests/cancellations/notification_deliveries_controller_spec.rb @@ -3,7 +3,6 @@ describe Schools::PlacementRequests::Cancellations::NotificationDeliveriesController, type: :request do include_context "logged in DfE user" - include_context "Degree subject autocomplete enabled" let :school do Bookings::School.find_by!(urn: urn).tap do |s| diff --git a/spec/controllers/schools/placement_requests/cancellations_controller_spec.rb b/spec/controllers/schools/placement_requests/cancellations_controller_spec.rb index 1a6ffee620..9113d91194 100644 --- a/spec/controllers/schools/placement_requests/cancellations_controller_spec.rb +++ b/spec/controllers/schools/placement_requests/cancellations_controller_spec.rb @@ -3,7 +3,6 @@ describe Schools::PlacementRequests::CancellationsController, type: :request do include_context "logged in DfE user" - include_context "Degree subject autocomplete enabled" let :school do Bookings::School.find_by!(urn: urn).tap do |s| diff --git a/spec/controllers/schools/placement_requests/past_attendance_controller_spec.rb b/spec/controllers/schools/placement_requests/past_attendance_controller_spec.rb index d3d3128f6a..8ebf388435 100644 --- a/spec/controllers/schools/placement_requests/past_attendance_controller_spec.rb +++ b/spec/controllers/schools/placement_requests/past_attendance_controller_spec.rb @@ -3,7 +3,6 @@ describe Schools::PlacementRequests::PastAttendanceController, type: :request do include_context "logged in DfE user" - include_context "Degree subject autocomplete enabled" let(:school) { Bookings::School.find_by! urn: urn } let!(:profile) { create :bookings_profile, school: school } diff --git a/spec/controllers/schools/placement_requests/under_consideration_controller_spec.rb b/spec/controllers/schools/placement_requests/under_consideration_controller_spec.rb index f91ef9ee97..cc615ca7d8 100644 --- a/spec/controllers/schools/placement_requests/under_consideration_controller_spec.rb +++ b/spec/controllers/schools/placement_requests/under_consideration_controller_spec.rb @@ -3,7 +3,6 @@ describe Schools::PlacementRequests::UnderConsiderationController, type: :request do include_context "logged in DfE user" - include_context "Degree subject autocomplete enabled" describe '#place_under_consideration' do include_context "logged in DfE user" diff --git a/spec/controllers/schools/placement_requests_controller_spec.rb b/spec/controllers/schools/placement_requests_controller_spec.rb index ae3e48e951..997c1751ce 100644 --- a/spec/controllers/schools/placement_requests_controller_spec.rb +++ b/spec/controllers/schools/placement_requests_controller_spec.rb @@ -4,7 +4,6 @@ describe Schools::PlacementRequestsController, type: :request do include ActiveSupport::Testing::TimeHelpers include_context "logged in DfE user" - include_context "Degree subject autocomplete enabled" let :school do Bookings::School.find_by! urn: urn diff --git a/spec/controllers/schools/previous_bookings_controller_spec.rb b/spec/controllers/schools/previous_bookings_controller_spec.rb index bee4eca3fd..a1cd418944 100644 --- a/spec/controllers/schools/previous_bookings_controller_spec.rb +++ b/spec/controllers/schools/previous_bookings_controller_spec.rb @@ -3,7 +3,6 @@ describe Schools::PreviousBookingsController, type: :request do include_context "logged in DfE user" - include_context "Degree subject autocomplete enabled" let! :school do Bookings::School.find_by!(urn: urn).tap do |s| diff --git a/spec/controllers/schools/rejected_requests_controller_spec.rb b/spec/controllers/schools/rejected_requests_controller_spec.rb index 258dd84e5c..7bdd52d054 100644 --- a/spec/controllers/schools/rejected_requests_controller_spec.rb +++ b/spec/controllers/schools/rejected_requests_controller_spec.rb @@ -3,7 +3,6 @@ describe Schools::RejectedRequestsController, type: :request do include_context "logged in DfE user" - include_context "Degree subject autocomplete enabled" let :school do Bookings::School.find_by!(urn: urn).tap do |school| diff --git a/spec/controllers/schools/withdrawn_requests_controller_spec.rb b/spec/controllers/schools/withdrawn_requests_controller_spec.rb index b2e0b18419..cb0ba906b5 100644 --- a/spec/controllers/schools/withdrawn_requests_controller_spec.rb +++ b/spec/controllers/schools/withdrawn_requests_controller_spec.rb @@ -3,7 +3,6 @@ describe Schools::WithdrawnRequestsController, type: :request do include_context "logged in DfE user" - include_context "Degree subject autocomplete enabled" let :school do Bookings::School.find_by!(urn: urn).tap do |school| diff --git a/spec/services/candidates/registrations/education_spec.rb b/spec/services/candidates/registrations/education_spec.rb index 6b450f02b5..947250f537 100644 --- a/spec/services/candidates/registrations/education_spec.rb +++ b/spec/services/candidates/registrations/education_spec.rb @@ -77,35 +77,4 @@ end end end - - describe '#degree_subject_autocomplete?' do - before do - allow(ENV).to receive(:fetch).and_call_original - allow(ENV).to receive(:fetch).with("DEGREE_SUBJECT_AUTOCOMPLETE_ENABLED", false).and_return(degree_subject_autocomplete_flag) - end - - context "when DEGREE_SUBJECT_AUTOCOMPLETE_ENABLED is not set" do - let(:degree_subject_autocomplete_flag) { nil } - - it "returns false" do - expect(subject).not_to be_degree_subject_autocomplete - end - end - - context "when DEGREE_SUBJECT_AUTOCOMPLETE_ENABLED=0" do - let(:degree_subject_autocomplete_flag) { "0" } - - it "returns false" do - expect(subject).not_to be_degree_subject_autocomplete - end - end - - context "when DEGREE_SUBJECT_AUTOCOMPLETE_ENABLED=1" do - let(:degree_subject_autocomplete_flag) { "1" } - - it "returns true" do - expect(subject).to be_degree_subject_autocomplete - end - end - end end diff --git a/spec/support/degree_subject_autocomplete.rb b/spec/support/degree_subject_autocomplete.rb deleted file mode 100644 index a3cc2997e9..0000000000 --- a/spec/support/degree_subject_autocomplete.rb +++ /dev/null @@ -1,17 +0,0 @@ -shared_context "Degree subject autocomplete" do - before do - allow(ENV).to receive(:fetch) - .with("DEGREE_SUBJECT_AUTOCOMPLETE_ENABLED", false) - .and_return(degree_subject_autocomplete_flag) - end -end - -shared_context "Degree subject autocomplete enabled" do - include_context "Degree subject autocomplete" - let(:degree_subject_autocomplete_flag) { "1" } -end - -shared_context "Degree subject autocomplete disabled" do - include_context "Degree subject autocomplete" - let(:degree_subject_autocomplete_flag) { "0" } -end diff --git a/yarn.lock b/yarn.lock index b073754630..0a750f9148 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1578,6 +1578,11 @@ eventlistener-polyfill "^1.0.5" mutation-observer-inner-html-shim "^1.0.0" +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + "@trysound/sax@0.2.0": version "0.2.0" resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" @@ -1740,6 +1745,15 @@ dependencies: "@types/istanbul-lib-report" "*" +"@types/jsdom@^20.0.0": + version "20.0.1" + resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.1.tgz#07c14bc19bd2f918c1929541cdaacae894744808" + integrity sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ== + dependencies: + "@types/node" "*" + "@types/tough-cookie" "*" + parse5 "^7.0.0" + "@types/json-schema@*", "@types/json-schema@^7.0.8": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" @@ -1828,6 +1842,11 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== +"@types/tough-cookie@*": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" + integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== + "@types/webpack@5": version "5.28.5" resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-5.28.5.tgz#0e9d9a15efa09bbda2cef41356ca4ac2031ea9a2" @@ -2004,6 +2023,11 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== +abab@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -2024,16 +2048,43 @@ accessible-autocomplete@^3.0.0: resolved "https://registry.yarnpkg.com/accessible-autocomplete/-/accessible-autocomplete-3.0.0.tgz#f66ed03fb22d78f721326d187ee491dddbadec75" integrity sha512-Kpm6EX+jjD0AurWfzSP4EVLEKsLUWCazZwidjum+8FCRtSINeaPzVa3ElKVGWvSqVZN9zjeSBF8cirhYEZjW1A== +acorn-globals@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3" + integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q== + dependencies: + acorn "^8.1.0" + acorn-walk "^8.0.2" + acorn-import-assertions@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== +acorn-walk@^8.0.2: + version "8.3.4" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" + integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== + dependencies: + acorn "^8.11.0" + +acorn@^8.1.0, acorn@^8.11.0, acorn@^8.8.1: + version "8.12.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== + acorn@^8.7.1, acorn@^8.8.2: version "8.8.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + ajv-formats@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" @@ -2144,6 +2195,11 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + autoprefixer@^9.6.1: version "9.8.8" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" @@ -2515,6 +2571,13 @@ colorette@^2.0.10, colorette@^2.0.14: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -2808,11 +2871,37 @@ csso@^5.0.5: dependencies: css-tree "~2.2.0" +cssom@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" + integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + custom-event-polyfill@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/custom-event-polyfill/-/custom-event-polyfill-1.0.7.tgz#9bc993ddda937c1a30ccd335614c6c58c4f87aee" integrity sha512-TDDkd5DkaZxZFM8p+1I3yAlvM3rSr1wbrOliG4yJiwinMZN8z/iGL7BTlDkrJcYTmgUSb4ywVCc3ZaUtOtC76w== +data-urls@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" + integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ== + dependencies: + abab "^2.0.6" + whatwg-mimetype "^3.0.0" + whatwg-url "^11.0.0" + debug@2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -2820,6 +2909,13 @@ debug@2.6.9: dependencies: ms "2.0.0" +debug@4: + version "4.3.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== + dependencies: + ms "^2.1.3" + debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" @@ -2827,6 +2923,11 @@ debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: dependencies: ms "2.1.2" +decimal.js@^10.4.2: + version "10.4.3" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== + dedent@^1.0.0: version "1.5.1" resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" @@ -2856,6 +2957,11 @@ define-properties@^1.1.3: dependencies: object-keys "^1.0.12" +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -2913,6 +3019,13 @@ domelementtype@^2.3.0: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== +domexception@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" + integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== + dependencies: + webidl-conversions "^7.0.0" + domhandler@^5.0.2, domhandler@^5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" @@ -2967,7 +3080,7 @@ enhanced-resolve@^5.15.0: graceful-fs "^4.2.4" tapable "^2.2.0" -entities@^4.2.0: +entities@^4.2.0, entities@^4.4.0: version "4.5.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== @@ -3014,6 +3127,17 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== +escodegen@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" + integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionalDependencies: + source-map "~0.6.1" + eslint-scope@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" @@ -3022,7 +3146,7 @@ eslint-scope@5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -esprima@^4.0.0: +esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -3225,6 +3349,15 @@ follow-redirects@^1.0.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -3377,6 +3510,13 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" +html-encoding-sniffer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" + integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== + dependencies: + whatwg-encoding "^2.0.0" + html-entities@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488" @@ -3418,6 +3558,15 @@ http-parser-js@>=0.5.1: resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.5.tgz#d7c30d5d3c90d865b4a2e870181f9d6f22ac7ac5" integrity sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA== +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + http-proxy-middleware@^2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" @@ -3438,6 +3587,14 @@ http-proxy@^1.18.1: follow-redirects "^1.0.0" requires-port "^1.0.0" +https-proxy-agent@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -3450,6 +3607,13 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" +iconv-lite@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + icss-utils@^5.0.0, icss-utils@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" @@ -3589,6 +3753,11 @@ is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + is-stream@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" @@ -3777,6 +3946,20 @@ jest-each@^29.7.0: jest-util "^29.7.0" pretty-format "^29.7.0" +jest-environment-jsdom@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz#d206fa3551933c3fd519e5dfdb58a0f5139a837f" + integrity sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/jsdom" "^20.0.0" + "@types/node" "*" + jest-mock "^29.7.0" + jest-util "^29.7.0" + jsdom "^20.0.0" + jest-environment-node@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" @@ -4061,6 +4244,38 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" +jsdom@^20.0.0: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db" + integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ== + dependencies: + abab "^2.0.6" + acorn "^8.8.1" + acorn-globals "^7.0.0" + cssom "^0.5.0" + cssstyle "^2.3.0" + data-urls "^3.0.2" + decimal.js "^10.4.2" + domexception "^4.0.0" + escodegen "^2.0.0" + form-data "^4.0.0" + html-encoding-sniffer "^3.0.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.1" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.2" + parse5 "^7.1.1" + saxes "^6.0.0" + symbol-tree "^3.2.4" + tough-cookie "^4.1.2" + w3c-xmlserializer "^4.0.0" + webidl-conversions "^7.0.0" + whatwg-encoding "^2.0.0" + whatwg-mimetype "^3.0.0" + whatwg-url "^11.0.0" + ws "^8.11.0" + xml-name-validator "^4.0.0" + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -4258,7 +4473,7 @@ mime-db@1.52.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.27, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -4312,7 +4527,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3: +ms@2.1.3, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -4394,6 +4609,11 @@ num2fraction@^1.2.2: resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= +nwsapi@^2.2.2: + version "2.2.12" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.12.tgz#fb6af5c0ec35b27b4581eb3bbad34ec9e5c696f8" + integrity sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w== + object-inspect@^1.9.0: version "1.12.2" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" @@ -4519,6 +4739,13 @@ parse-json@^5.0.0, parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" +parse5@^7.0.0, parse5@^7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" + integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== + dependencies: + entities "^4.4.0" + parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -5200,11 +5427,21 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" +psl@^1.1.33: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + punycode@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== +punycode@^2.1.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + pure-rand@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.0.tgz#701996ceefa253507923a0e864c17ab421c04a7c" @@ -5217,6 +5454,11 @@ qs@6.11.0: dependencies: side-channel "^1.0.4" +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -5440,7 +5682,7 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -"safer-buffer@>= 2.1.2 < 3": +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -5461,6 +5703,13 @@ sass@^1.77.6: immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" +saxes@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" + integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== + dependencies: + xmlchars "^2.2.0" + schema-utils@^3.1.1, schema-utils@^3.2.0, schema-utils@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" @@ -5660,7 +5909,7 @@ source-map-support@~0.5.20: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.6.0, source-map@^0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -5823,6 +6072,11 @@ svgo@^3.3.2: csso "^5.0.5" picocolors "^1.0.0" +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" @@ -5885,6 +6139,23 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== +tough-cookie@^4.1.2: + version "4.1.4" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36" + integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" + +tr46@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" + integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== + dependencies: + punycode "^2.1.1" + type-detect@4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" @@ -5936,6 +6207,11 @@ uniq@^1.0.1: resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" @@ -5956,6 +6232,14 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -5985,6 +6269,13 @@ vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= +w3c-xmlserializer@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073" + integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw== + dependencies: + xml-name-validator "^4.0.0" + walker@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" @@ -6007,6 +6298,11 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + webpack-assets-manifest@5: version "5.2.1" resolved "https://registry.yarnpkg.com/webpack-assets-manifest/-/webpack-assets-manifest-5.2.1.tgz#7ebe4c882efdc343029ed2f54a6f7ce990406f08" @@ -6143,6 +6439,26 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== +whatwg-encoding@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" + integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== + dependencies: + iconv-lite "0.6.3" + +whatwg-mimetype@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" + integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== + +whatwg-url@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" + integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== + dependencies: + tr46 "^3.0.0" + webidl-conversions "^7.0.0" + which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -6177,11 +6493,26 @@ write-file-atomic@^4.0.2: imurmurhash "^0.1.4" signal-exit "^3.0.7" +ws@^8.11.0: + version "8.18.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" + integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== + ws@^8.13.0: version "8.17.1" resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== +xml-name-validator@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" + integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"