|
|
|
describe "questions/_numeric_question.html.erb" do
|
|
|
|
context "when given a label, value constraints and hint text" do
|
|
|
|
let(:label) { "Test Label" }
|
|
|
|
let(:min) { "1" }
|
|
|
|
let(:max) { "150" }
|
|
|
|
let(:hint_text) { "Some text that describes the question in more detail" }
|
|
|
|
let(:locals) { { label: label, minimum: min, maximum: max, hint_text: hint_text } }
|
|
|
|
|
|
|
|
before(:each) do
|
|
|
|
render partial: "numeric_question", locals: locals
|
|
|
|
end
|
|
|
|
|
|
|
|
it "displays a numeric entry field with a label" do
|
|
|
|
expect(rendered).to have_selector('//input[@type="number"]')
|
|
|
|
expect(rendered).to have_selector("//label[contains('#{label}')]")
|
|
|
|
end
|
|
|
|
|
|
|
|
it "validates for a given minimum input" do
|
|
|
|
expect(rendered).to have_selector("//input[@min=#{min}]")
|
|
|
|
end
|
|
|
|
|
|
|
|
it "validates for a given maximum input" do
|
|
|
|
expect(rendered).to have_selector("//input[@max=#{max}]")
|
|
|
|
end
|
|
|
|
|
|
|
|
it "displays hint text" do
|
|
|
|
expect(rendered).to have_selector("//div[@class='govuk-hint']")
|
|
|
|
expect(rendered).to have_css("#numeric_hint", text: hint_text.to_s)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|