7 changed files with 49 additions and 8 deletions
			
			
		@ -0,0 +1,6 @@ | 
				
			|||||||
 | 
					module FormPageErrorHelper | 
				
			||||||
 | 
					  def remove_other_page_errors(case_log, page) | 
				
			||||||
 | 
					    other_page_error_ids = case_log.errors.map(&:attribute) - page.questions.map { |q| q.id.to_sym }.concat([:base]) | 
				
			||||||
 | 
					    other_page_error_ids.each { |id| case_log.errors.delete(id) } | 
				
			||||||
 | 
					  end | 
				
			||||||
 | 
					end | 
				
			||||||
@ -0,0 +1,24 @@ | 
				
			|||||||
 | 
					require "rails_helper" | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RSpec.describe FormPageErrorHelper do | 
				
			||||||
 | 
					  describe "#remove_other_page_errors" do | 
				
			||||||
 | 
					    context "removes non base other questions" do | 
				
			||||||
 | 
					      let!(:case_log) { FactoryBot.create(:case_log, :in_progress) } | 
				
			||||||
 | 
					      let!(:form) { case_log.form } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      before do | 
				
			||||||
 | 
					        case_log.errors.add :layear, "error" | 
				
			||||||
 | 
					        case_log.errors.add :period, "error_one" | 
				
			||||||
 | 
					        case_log.errors.add :base, "error_too" | 
				
			||||||
 | 
					      end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      it "returns details and user tabs" do | 
				
			||||||
 | 
					        page = form.get_page("rent") | 
				
			||||||
 | 
					        remove_other_page_errors(case_log, page) | 
				
			||||||
 | 
					        expect(case_log.errors.count).to eq(2) | 
				
			||||||
 | 
					        expect(case_log.errors.map(&:attribute)).to include(:period) | 
				
			||||||
 | 
					        expect(case_log.errors.map(&:attribute)).to include(:base) | 
				
			||||||
 | 
					      end | 
				
			||||||
 | 
					    end | 
				
			||||||
 | 
					  end | 
				
			||||||
 | 
					end | 
				
			||||||
					Loading…
					
					
				
		Reference in new issue