Browse Source

Only enhance select element once

pull/182/head
baarkerlounger 4 years ago
parent
commit
23a4f59e13
  1. 5
      app/webpacker/controllers/accessible_autocomplete_controller.js
  2. 8
      spec/features/form/accessible_autocomplete_spec.rb
  3. 11
      spec/fixtures/forms/2021_2022.json

5
app/webpacker/controllers/accessible_autocomplete_controller.js

@ -3,10 +3,15 @@ import accessibleAutocomplete from "accessible-autocomplete"
import 'accessible-autocomplete/dist/accessible-autocomplete.min.css' import 'accessible-autocomplete/dist/accessible-autocomplete.min.css'
export default class extends Controller { export default class extends Controller {
static values = { enhanced: Boolean, default: false }
connect() { connect() {
if(!this.enhancedValue){
accessibleAutocomplete.enhanceSelectElement({ accessibleAutocomplete.enhanceSelectElement({
defaultValue: '', defaultValue: '',
selectElement: this.element selectElement: this.element
}) })
this.enhancedValue = true
}
} }
} }

8
spec/features/form/accessible_autocomplete_spec.rb

@ -24,4 +24,12 @@ RSpec.describe "Accessible Automcomplete" do
find("#case-log-la-field").click.native.send_keys("T", "h", "a", "n", :down, :enter) find("#case-log-la-field").click.native.send_keys("T", "h", "a", "n", :down, :enter)
expect(find("#case-log-la-field").value).to eq("Thanet") expect(find("#case-log-la-field").value).to eq("Thanet")
end end
it "maintains enhancement state across back navigation", js: true do
visit("/logs/#{case_log.id}/accessible-select")
find("#case-log-la-field").click.native.send_keys("T", "h", "a", "n", :down, :enter)
click_button("Save and continue")
click_link(text: "Back")
expect(page).to have_selector("input", class: "autocomplete__input", count: 1)
end
end end

11
spec/fixtures/forms/2021_2022.json vendored

@ -193,11 +193,12 @@
"type": "select", "type": "select",
"check_answer_label": "Accessible Select", "check_answer_label": "Accessible Select",
"answer_options": { "answer_options": {
"0": "Adur", "" : "Select an option",
"1": "Lewisham", "E07000223": "Adur",
"2": "Oxford", "E09000023": "Lewisham",
"3": "Thanet", "E07000178": "Oxford",
"4": "York" "E07000114": "Thanet",
"E06000014": "York"
} }
} }
} }

Loading…
Cancel
Save