github.com/cozy/cozy-stack@v0.0.0-20240603063001-31110fa4cae1/tests/system/lib/test/timeout.rb (about)

     1  # Adapted from https://github.com/grosser/maxitest/blob/master/lib/maxitest/timeout.rb
     2  # It looks like it is not compatible with pry-rescue
     3  require 'minitest'
     4  require 'timeout'
     5  
     6  module TestTimeout
     7    class << self
     8      attr_accessor :timeout
     9    end
    10  
    11    class TestCaseTimeout < StandardError
    12      def message
    13        "Test took too long to finish, aborting."
    14      end
    15    end
    16  
    17    def run(*, &block)
    18      timeout = TestTimeout.timeout || 500
    19      begin
    20        ::Timeout.timeout(timeout, TestCaseTimeout) { super }
    21      rescue TestCaseTimeout => e
    22        failures << UnexpectedError.new(e)
    23      end
    24    end
    25  end
    26  
    27  Minitest::Test.send :prepend, TestTimeout