diff --git a/spec/components/custom_wizard/submission_spec.rb b/spec/components/custom_wizard/submission_spec.rb index a9caaa0a..4e8d86c0 100644 --- a/spec/components/custom_wizard/submission_spec.rb +++ b/spec/components/custom_wizard/submission_spec.rb @@ -13,39 +13,44 @@ describe CustomWizard::Submission do before do CustomWizard::Template.save(template_json, skip_jobs: true) - - template_json_2 = template_json.dup - template_json_2["id"] = "super_mega_fun_wizard_2" - CustomWizard::Template.save(template_json_2, skip_jobs: true) - @wizard = CustomWizard::Wizard.create(template_json["id"], user) - @wizard2 = CustomWizard::Wizard.create(template_json["id"], user2) - @wizard3 = CustomWizard::Wizard.create(template_json_2["id"], user) - @count = CustomWizard::Submission::PAGE_LIMIT + 20 - - @count.times do |index| - described_class.new(@wizard, step_1_field_1: "I am user submission #{index + 1}").save - end - described_class.new(@wizard2, step_1_field_1: "I am another user's submission").save - described_class.new(@wizard3, step_1_field_1: "I am a user submission on another wizard").save + described_class.new(@wizard, step_1_field_1: "I am user submission").save end it "saves a user's submission" do expect( described_class.get(@wizard, user.id).fields["step_1_field_1"] - ).to eq("I am user submission #{@count}") + ).to eq("I am user submission") end - it "list submissions by wizard" do - expect(described_class.list(@wizard).total).to eq(@count + 1) - end + context "#list" do + before do + template_json_2 = template_json.dup + template_json_2["id"] = "super_mega_fun_wizard_2" + CustomWizard::Template.save(template_json_2, skip_jobs: true) - it "list submissions by wizard and user" do - expect(described_class.list(@wizard, user_id: user.id).total).to eq(@count) - end + @wizard2 = CustomWizard::Wizard.create(template_json["id"], user2) + @wizard3 = CustomWizard::Wizard.create(template_json_2["id"], user) + @count = CustomWizard::Submission::PAGE_LIMIT + 20 - it "paginates submission lists" do - expect(described_class.list(@wizard, page: 1).submissions.size).to eq((@count + 1) - CustomWizard::Submission::PAGE_LIMIT) + @count.times do |index| + described_class.new(@wizard, step_1_field_1: "I am user submission #{index + 1}").save + end + described_class.new(@wizard2, step_1_field_1: "I am another user's submission").save + described_class.new(@wizard3, step_1_field_1: "I am a user submission on another wizard").save + end + + it "list submissions by wizard" do + expect(described_class.list(@wizard).total).to eq(@count + 2) + end + + it "list submissions by wizard and user" do + expect(described_class.list(@wizard, user_id: user.id).total).to eq(@count + 1) + end + + it "paginates submission lists" do + expect(described_class.list(@wizard, page: 1).submissions.size).to eq((@count + 2) - CustomWizard::Submission::PAGE_LIMIT) + end end context "#cleanup_incomplete_submissions" do @@ -54,10 +59,10 @@ describe CustomWizard::Submission do described_class.new(@wizard, step_1_field_1: "I am the second submission").save builder = CustomWizard::Builder.new(@wizard.id, @wizard.user) builder.build - sub_list = described_class.list(@wizard, user_id: @wizard.user.id) + submissions = described_class.list(@wizard, user_id: @wizard.user.id).submissions - expect(sub_list.length).to eq(1) - expect(sub_list.first.fields["step_1_field_1"]).to eq("I am the second submission") + expect(submissions.length).to eq(1) + expect(submissions.first.fields["step_1_field_1"]).to eq("I am the second submission") end it "handles submissions without 'updated_at' field correctly" do @@ -70,10 +75,10 @@ describe CustomWizard::Submission do PluginStore.set("#{@wizard.id}_submissions", @wizard.user.id, sub_data) builder = CustomWizard::Builder.new(@wizard.id, @wizard.user) builder.build - sub_list = described_class.list(@wizard, user_id: @wizard.user.id) + submissions = described_class.list(@wizard, user_id: @wizard.user.id).submissions - expect(sub_list.length).to eq(1) - expect(sub_list.first.fields["step_1_field_1"]).to eq("I am the third submission") + expect(submissions.length).to eq(1) + expect(submissions.first.fields["step_1_field_1"]).to eq("I am the third submission") end it "handles submissions with and without 'updated_at' field correctly" do @@ -87,10 +92,10 @@ describe CustomWizard::Submission do builder = CustomWizard::Builder.new(@wizard.id, @wizard.user) builder.build - sub_list = described_class.list(@wizard, user_id: @wizard.user.id) + submissions = described_class.list(@wizard, user_id: @wizard.user.id).submissions - expect(sub_list.length).to eq(1) - expect(sub_list.first.fields["step_1_field_1"]).to eq("I am the third submission") + expect(submissions.length).to eq(1) + expect(submissions.first.fields["step_1_field_1"]).to eq("I am the third submission") end end end diff --git a/spec/requests/custom_wizard/wizard_controller_spec.rb b/spec/requests/custom_wizard/wizard_controller_spec.rb index 87ff7efe..26f90040 100644 --- a/spec/requests/custom_wizard/wizard_controller_spec.rb +++ b/spec/requests/custom_wizard/wizard_controller_spec.rb @@ -84,9 +84,9 @@ describe CustomWizard::WizardController do CustomWizard::Submission.new(@wizard, step_1_field_1: "Hello World").save current_submission = @wizard.current_submission put '/w/super-mega-fun-wizard/skip.json' - list = CustomWizard::Submission.list(@wizard) + submissions = CustomWizard::Submission.list(@wizard).submissions - expect(list.any? { |submission| submission.id == current_submission.id }).to eq(false) + expect(submissions.any? { |submission| submission.id == current_submission.id }).to eq(false) end it "starts from the first step if user visits after skipping the wizard" do