Sha256: 623fa3a3014694cb7408f53f800da5ddce9859635bb7c2dc3e81baeb3516b626
Contents?: true
Size: 1.44 KB
Versions: 1
Compression:
Stored size: 1.44 KB
Contents
module AktionTestRails module Matchers module FactoryGirl module Validation def have_valid_factory(factory_name) ValidFactoryMatcher.new(factory_name) end class ValidFactoryMatcher < AktionTest::Matchers::Base def initialize(factory_name) @factory_name = factory_name end def matches?(subject) factory_exists? && factory_creates_valid_record? end def expectation ":#{@factory_name} to be a valid factory." end def problem message = "\n" if factory_exists? if @record.errors.full_messages.any? message << "Failed Validations:\n" @record.errors.full_messages.each do |error| message << " #{error}\n" end end else message << "No factory by the name :#{@factory_name} found\n" end message end def negative_problem end def description "has a valid factory named :#{@factory_name}" end protected def factory_exists? ::FactoryGirl.factories.registered?(@factory_name) end def factory_creates_valid_record? @record = ::FactoryGirl.build(@factory_name) @record.valid? end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
aktion_test_rails-0.2.0 | lib/aktion_test_rails/matchers/factory_girl/validation.rb |