Sha256: f12f2e6641ad97c2ad2b722ae805b0d4d0c15f40dbe6c391404173b79d551d03

Contents?: true

Size: 1.25 KB

Versions: 5

Compression:

Stored size: 1.25 KB

Contents

require_relative '../helpers/pluralization_helpers'
require_relative '../helpers/rails_version_helpers'

module AcceptanceTests
  module Matchers
    def indicate_number_of_tests_was_run(expected_output)
      IndicateNumberOfTestsWasRunMatcher.new(expected_output)
    end

    class IndicateNumberOfTestsWasRunMatcher
      include PluralizationHelpers
      include RailsVersionHelpers

      def initialize(number)
        @number = number
      end

      def matches?(runner)
        @runner = runner
        expected_output === actual_output
      end

      def failure_message
        message = "Expected output to indicate that #{some_tests_were_run}.\n" +
          "Expected output: #{expected_output}\n"

        if actual_output.empty?
          message << 'Actual output: (empty)'
        else
          message << "Actual output:\n#{actual_output}"
        end

        message
      end

      protected

      attr_reader :number, :runner

      private

      def expected_output
        /#{number} (tests|runs), #{number} assertions, 0 failures, 0 errors(, 0 skips)?/
      end

      def actual_output
        runner.output
      end

      def some_tests_were_run
        pluralize(number, 'test was', 'tests were') + ' run'
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/shoulda-matchers-2.8.0/spec/support/acceptance/matchers/indicate_number_of_tests_was_run_matcher.rb
shoulda-matchers-3.0.0.rc1 spec/support/acceptance/matchers/indicate_number_of_tests_was_run_matcher.rb
shoulda-matchers-2.8.0 spec/support/acceptance/matchers/indicate_number_of_tests_was_run_matcher.rb
shoulda-matchers-2.8.0.rc2 spec/support/acceptance/matchers/indicate_number_of_tests_was_run_matcher.rb
shoulda-matchers-2.8.0.rc1 spec/support/acceptance/matchers/indicate_number_of_tests_was_run_matcher.rb