Sha256: 68f03b3cc93a7bf18e0ab9bcd6f80a230a8e8e66a7f417cb8fe7fcb2a85e6c8f
Contents?: true
Size: 1.24 KB
Versions: 2
Compression:
Stored size: 1.24 KB
Contents
module AktionTestRails module Matchers module FactoryGirl def have_a_valid_factory(factory_name) ValidFactoryMatcher.new(factory_name) end class ValidFactoryMatcher def initialize(factory_name) @factory_name = factory_name end def matches?(subject) factory_exists? && factory_creates_valid_record? end def failure_message message = "Expected :#{@factory_name} to be a valid factory." if factory_exists? if @record.errors.full_messages.any? message << "\n Failed Validations:" @record.errors.full_messages.each do |error| message << "\n #{error}" end end else message << "\n No factory by the name :#{@factory_name} found" end message 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
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
aktion_test_rails-0.1.1 | lib/aktion_test_rails/matchers/factory_girl/have_a_valid_factory.rb |
aktion_test_rails-0.1.0 | lib/aktion_test_rails/matchers/factory_girl/have_a_valid_factory.rb |