mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-09 03:20:21 +00:00
add rake task to catch all subfolders under /spec
This commit is contained in:
6
.github/workflows/build.yml
vendored
6
.github/workflows/build.yml
vendored
@@ -257,7 +257,7 @@ jobs:
|
||||
run: RAILS_ENV=test bundle exec rake karma:run
|
||||
|
||||
- name: Run all other tests
|
||||
run: bundle exec rspec --profile --pattern "engines/*/spec/{,/*/**}/*_spec.rb,spec/{helpers, initializers, jobs, mailers, queries, requests, services, validators, views}/{,/*/**}/*_spec.rb"
|
||||
run: bundle exec rake ofn:specs:run:excluding_folders["models,controllers,serializers,features,lib"]
|
||||
|
||||
test-the-rest:
|
||||
runs-on: ubuntu-18.04
|
||||
@@ -297,5 +297,5 @@ jobs:
|
||||
bundle exec rake db:create RAILS_ENV=test
|
||||
bundle exec rake db:schema:load RAILS_ENV=test
|
||||
|
||||
- name: Run admin feature folders, serializers, jobs, lib
|
||||
run: bundle exec rspec --profile --pattern "spec/features/admin/*/*_spec.rb,spec/lib/{,/*/**}/*_spec.rb"
|
||||
- name: Run admin feature folders, engines, lib
|
||||
run: bundle exec rspec --profile --pattern "engines/*/spec/{,/*/**}/*_spec.rb,spec/features/admin/*/*_spec.rb,spec/lib/{,/*/**}/*_spec.rb"
|
||||
|
||||
@@ -1,5 +1,31 @@
|
||||
namespace :ofn do
|
||||
namespace :specs do
|
||||
namespace :run do
|
||||
def spec_folders
|
||||
Pathname("spec/").children.select(&:directory?).map { |p|
|
||||
p.split.last.to_s
|
||||
}.reject { |p| %w(support factories javascripts performance).include?(p) }
|
||||
end
|
||||
|
||||
def execute_rspec_for_pattern(pattern)
|
||||
system "bundle exec rspec --profile --pattern \"#{pattern}\""
|
||||
end
|
||||
|
||||
def execute_rspec_for_spec_folder(folder)
|
||||
execute_rspec_for_pattern("spec/#{folder}/{,/*/**}/*_spec.rb")
|
||||
end
|
||||
|
||||
def execute_rspec_for_spec_folders(folders)
|
||||
folders = folders.join(",") if folders.is_a?(Array)
|
||||
execute_rspec_for_pattern("spec/{#{folders}}/{,/*/**}/*_spec.rb")
|
||||
end
|
||||
|
||||
desc "Run Rspec tests excluding folders"
|
||||
task :excluding_folders, [:folders] do |_task, args|
|
||||
execute_rspec_for_spec_folders(spec_folders - (args[:folders].split(",") + args.extras))
|
||||
end
|
||||
end
|
||||
|
||||
namespace :engines do
|
||||
def detect_engine_paths
|
||||
Pathname("engines/").children.select(&:directory?)
|
||||
|
||||
Reference in New Issue
Block a user