Browse Source

Set input value

pull/607/head
baarkerlounger 3 years ago
parent
commit
852532a053
  1. 2
      app/components/search_component.html.erb
  2. 5
      app/components/search_component.rb
  3. 2
      app/views/users/index.html.erb
  4. 11
      spec/components/search_component_spec.rb

2
app/components/search_component.html.erb

@ -5,7 +5,7 @@
<%= label %>
</label>
<input class="govuk-input app-search__input" id="search-field" name="search-field" type="search" autocomplete="off">
<input class="govuk-input app-search__input" id="search-field" name="search-field" type="search" autocomplete="off" value="<%= value %>">
</div>
<button class="govuk-button app-search__button undefined" data-module="govuk-button">

5
app/components/search_component.rb

@ -1,9 +1,10 @@
class SearchComponent < ViewComponent::Base
attr_reader :current_user, :label
attr_reader :current_user, :label, :value
def initialize(current_user:, label:)
def initialize(current_user:, label:, value: nil)
@current_user = current_user
@label = label
@value = value
super
end

2
app/views/users/index.html.erb

@ -8,7 +8,7 @@
<%= govuk_button_link_to "Invite user", new_user_path, html: { method: :get } %>
<% end %>
<%= render SearchComponent.new(current_user:, label: "Search by name or email address") %>
<%= render SearchComponent.new(current_user:, label: "Search by name or email address", value: @searched) %>
<%= govuk_table do |table| %>
<%= table.caption(classes: %w[govuk-!-font-size-19 govuk-!-font-weight-regular]) do |caption| %>

11
spec/components/search_component_spec.rb

@ -4,9 +4,10 @@ RSpec.describe SearchComponent, type: :component do
let(:current_user) { FactoryBot.create(:user, :support) }
let(:label) { "Search by name or email address" }
let(:page) { Capybara::Node::Simple.new(rendered_component) }
let(:value) { nil }
before do
render_inline(described_class.new(current_user:, label:))
render_inline(described_class.new(current_user:, label:, value:))
end
it "renders a search bar" do
@ -16,4 +17,12 @@ RSpec.describe SearchComponent, type: :component do
it "renders the given label" do
expect(page).to have_content(label)
end
context "when a search term has been entered" do
let(:value) { "search term" }
it "shows the search term in the input field" do
expect(page).to have_field("search-field", type: "search", with: value)
end
end
end

Loading…
Cancel
Save