Skip to content

Commit eab12f8

Browse files
committed
Ensure form is present in draft question in tests
The previous commit broke some tests, as some tests were using test data for draft_question without a corresponding form existing. This commit adds a form to these tests to make them more realistic and fix the tests.
1 parent 44665eb commit eab12f8

11 files changed

+28
-17
lines changed

spec/input_objects/pages/address_settings_input_spec.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
require "rails_helper"
22

33
RSpec.describe Pages::AddressSettingsInput, type: :model do
4+
let(:form) { create :form }
45
let(:address_settings_input) { build :address_settings_input, draft_question: }
5-
let(:draft_question) { build :draft_question, answer_type: "address", form_id: 1 }
6+
let(:draft_question) { build :draft_question, answer_type: "address", form_id: form.id }
67

78
it "has a valid factory" do
89
expect(address_settings_input).to be_valid

spec/input_objects/pages/date_settings_input_spec.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
require "rails_helper"
22

33
RSpec.describe Pages::DateSettingsInput, type: :model do
4+
let(:form) { create :form }
45
let(:date_settings_input) { build :date_settings_input, draft_question: }
5-
let(:draft_question) { build :draft_question, answer_type: "date", form_id: 1 }
6+
let(:draft_question) { build :draft_question, answer_type: "date", form_id: form.id }
67

78
it "has a valid factory" do
89
expect(date_settings_input).to be_valid

spec/input_objects/pages/guidance_input_spec.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
require "rails_helper"
22

33
RSpec.describe Pages::GuidanceInput, type: :model do
4+
let(:form) { create :form }
45
let(:guidance_input) { build :guidance_input, page_heading:, guidance_markdown:, draft_question: }
5-
let(:draft_question) { build :draft_question, page_heading:, guidance_markdown: }
6+
let(:draft_question) { build :draft_question, page_heading:, guidance_markdown:, form_id: form.id }
67
let(:page_heading) { "New guidance heading" }
78
let(:guidance_markdown) { "## Level heading 2" }
89

spec/input_objects/pages/name_settings_input_spec.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
require "rails_helper"
22

33
RSpec.describe Pages::NameSettingsInput, type: :model do
4+
let(:form) { create :form }
45
let(:name_settings_input) { build :name_settings_input, draft_question: }
5-
let(:draft_question) { build :draft_question, answer_type: "name", form_id: 1 }
6+
let(:draft_question) { build :draft_question, answer_type: "name", form_id: form.id }
67

78
it "has a valid factory" do
89
expect(name_settings_input).to be_valid

spec/input_objects/pages/question_input_spec.rb

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
require "rails_helper"
22

33
RSpec.describe Pages::QuestionInput, type: :model do
4+
let(:form) { create :form }
45
let(:question_input) { build :question_input, answer_type:, question_text:, draft_question:, is_optional:, is_repeatable: }
5-
let(:draft_question) { build :draft_question, question_text: }
6+
let(:draft_question) { build :draft_question, question_text:, form_id: form.id }
67
let(:question_text) { "What is your full name?" }
78
let(:is_optional) { "false" }
89
let(:is_repeatable) { "false" }
@@ -78,7 +79,7 @@
7879
end
7980

8081
describe "#hint_text" do
81-
let(:question_input) { build :question_input, hint_text: }
82+
let(:question_input) { build :question_input, hint_text:, draft_question: }
8283
let(:hint_text) { "Enter your full name as it appears in your passport" }
8384

8485
it "is valid if hint text is empty" do
@@ -113,7 +114,7 @@
113114
end
114115

115116
describe "#is_optional" do
116-
let(:question_input) { build :question_input, is_optional: }
117+
let(:question_input) { build :question_input, is_optional:, draft_question: }
117118

118119
context "when is_optional is nil" do
119120
let(:is_optional) { nil }
@@ -156,7 +157,7 @@
156157
end
157158

158159
describe "#is_repeatable" do
159-
let(:question_input) { build :question_input, is_repeatable: }
160+
let(:question_input) { build :question_input, is_repeatable:, draft_question: }
160161

161162
context "and is_repeatable is nil" do
162163
let(:is_repeatable) { nil }
@@ -209,7 +210,7 @@
209210
describe "selection options" do
210211
let(:selection_options) { (1..31).to_a.map { |i| { name: i.to_s } } }
211212
let(:only_one_option) { "false" }
212-
let(:draft_question) { build :selection_draft_question, answer_settings: { selection_options:, only_one_option: } }
213+
let(:draft_question) { build :selection_draft_question, answer_settings: { selection_options:, only_one_option: }, form_id: form.id }
213214

214215
context "when only_one_option is true" do
215216
let(:only_one_option) { "true" }
@@ -240,7 +241,7 @@
240241
end
241242

242243
context "when answer type is not selection" do
243-
let(:draft_question) { build :name_draft_question, answer_settings: { selection_options:, only_one_option: } }
244+
let(:draft_question) { build :name_draft_question, answer_settings: { selection_options:, only_one_option: }, form_id: form.id }
244245

245246
it "is valid" do
246247
expect(question_input).to be_valid

spec/input_objects/pages/question_text_input_spec.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
require "rails_helper"
22

33
RSpec.describe Pages::QuestionTextInput, type: :model do
4+
let(:form) { create :form }
45
let(:question_text_input) { build :question_text_input, draft_question: }
5-
let(:draft_question) { build :draft_question, answer_type: "selection", form_id: 1 }
6+
let(:draft_question) { build :draft_question, answer_type: "selection", form_id: form.id }
67

78
it "has a valid factory" do
89
expect(question_text_input).to be_valid

spec/input_objects/pages/selection/bulk_options_input_spec.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
require "rails_helper"
22

33
RSpec.describe Pages::Selection::BulkOptionsInput, type: :model do
4+
let(:form) { create :form }
45
let(:bulk_options_input) { build :bulk_options_input, draft_question: }
56
let(:only_one_option) { "true" }
6-
let(:draft_question) { build :draft_question, answer_type: "selection", answer_settings: { only_one_option: } }
7+
let(:draft_question) { create :draft_question, answer_type: "selection", answer_settings: { only_one_option: }, form_id: form.id }
78

89
it "has a valid factory" do
910
expect(bulk_options_input).to be_valid
@@ -75,7 +76,7 @@
7576
end
7677

7778
context "when include_none_of_the_above is not 'true' or 'false'" do
78-
let(:bulk_options_input) { build :bulk_options_input, include_none_of_the_above: nil }
79+
let(:bulk_options_input) { build :bulk_options_input, include_none_of_the_above: nil, draft_question: }
7980

8081
it "is invalid" do
8182
error_message = I18n.t("activemodel.errors.models.pages/selection/bulk_options_input.attributes.include_none_of_the_above.inclusion")

spec/input_objects/pages/selection/options_input_spec.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
require "rails_helper"
22

33
RSpec.describe Pages::Selection::OptionsInput do
4+
let(:form) { create :form }
45
let(:only_one_option) { "true" }
5-
let(:draft_question) { build :draft_question, answer_type: "selection", answer_settings: { only_one_option: } }
6+
let(:draft_question) { build :draft_question, answer_type: "selection", answer_settings: { only_one_option: }, form_id: form.id }
67
let(:selection_options) { [{ name: "option 1" }, { name: "option 2" }] }
78

89
describe "validations" do

spec/input_objects/pages/selection/type_input_spec.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
RSpec.describe Pages::Selection::TypeInput do
44
subject(:input) { described_class.new(draft_question:, only_one_option:) }
55

6-
let(:draft_question) { build :draft_question, answer_type: "selection" }
6+
let(:form) { create :form }
7+
8+
let(:draft_question) { build :draft_question, answer_type: "selection", form_id: form.id }
79
let(:only_one_option) { nil }
810

911
describe "validations" do

spec/input_objects/pages/text_settings_input_spec.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
require "rails_helper"
22

33
RSpec.describe Pages::TextSettingsInput, type: :model do
4+
let(:form) { create :form }
45
let(:text_settings_input) { build :text_settings_input, draft_question: }
5-
let(:draft_question) { build :draft_question, answer_type: "text", form_id: 1 }
6+
let(:draft_question) { build :draft_question, answer_type: "text", form_id: form.id }
67

78
it "has a valid factory" do
89
expect(text_settings_input).to be_valid

0 commit comments

Comments
 (0)