discourse/lib/autospec/rspec_runner.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

59 lines
1.8 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
2013-11-02 06:57:50 +08:00
module Autospec
class RspecRunner < BaseRunner
WATCHERS = {}
def self.watch(pattern, &blk)
WATCHERS[pattern] = blk
end
def watchers
WATCHERS
end
2013-11-02 06:57:50 +08:00
# Discourse specific
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/components/#{m[1]}_spec.rb" }
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
watch(%r{^app/(.+)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
watch(%r{^spec/.+_spec\.rb$})
watch(%r{^spec/support/.+\.rb$}) { "spec" }
watch("app/controllers/application_controller.rb") { "spec/requests" }
watch(%r{app/controllers/(.+).rb}) { |m| "spec/requests/#{m[1]}_spec.rb" }
2013-11-02 06:57:50 +08:00
watch(%r{^app/views/(.+)/.+\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
watch(%r{^spec/fabricators/.+_fabricator\.rb$}) { "spec" }
watch(%r{^app/assets/javascripts/pretty-text/.*\.js\.es6$}) do
"spec/components/pretty_text_spec.rb"
end
watch(%r{^plugins/.*/discourse-markdown/.*\.js\.es6$}) { "spec/components/pretty_text_spec.rb" }
watch(%r{^plugins/.*/spec/.*\.rb})
2018-05-21 13:19:10 +08:00
watch(%r{^(plugins/.*/)plugin\.rb}) { |m| "#{m[1]}spec" }
watch(%r{^(plugins/.*)/(lib|app)}) { |m| "#{m[1]}/spec/integration" }
2017-10-23 07:24:07 +08:00
watch(%r{^(plugins/.*)/lib/(.*)\.rb}) { |m| "#{m[1]}/spec/lib/#{m[2]}_spec.rb" }
2013-11-02 06:57:50 +08:00
RELOADERS = Set.new
def self.reload(pattern)
RELOADERS << pattern
end
def reloaders
RELOADERS
end
2013-11-02 06:57:50 +08:00
# we are using a simple runner at the moment, whole idea of using a reloader is no longer needed
watch("spec/rails_helper.rb")
watch(%r{config/.+\.rb})
#reload(%r{app/helpers/.+\.rb})
2013-11-02 06:57:50 +08:00
def failed_specs
specs = []
path = "./tmp/rspec_result"
specs = File.readlines(path) if File.exist?(path)
specs
end
end
end