mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-25 01:23:23 +00:00
The task name follows the directory name under engines/. For example,
for the Web engine in engines/web, run:
bundle exec rake openfoodnetwork:specs:engines:web:rspec
31 lines
805 B
Ruby
31 lines
805 B
Ruby
namespace :openfoodnetwork do
|
|
namespace :specs do
|
|
namespace :engines do
|
|
def detect_engine_paths
|
|
Pathname("engines/").children.select(&:directory?)
|
|
end
|
|
|
|
def engine_name_for_engine(engine_path)
|
|
engine_path.basename.to_path
|
|
end
|
|
|
|
def execute_rspec_for_engine(engine_path)
|
|
system "cd #{engine_path.expand_path} && bundle exec rspec"
|
|
end
|
|
|
|
engine_paths = detect_engine_paths
|
|
|
|
engine_paths.each do |engine_path|
|
|
engine_name = engine_name_for_engine(engine_path)
|
|
|
|
namespace engine_name do
|
|
task :rspec do
|
|
success = execute_rspec_for_engine(engine_path)
|
|
abort "Failure when running tests for engine \"#{engine_name}\"" unless success
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|