Merge pull request #976 from ZmagoD/zd_SCI_1998

adds spec/features loader [fixes SCI-1998]
This commit is contained in:
Zmago Devetak 2018-02-01 16:11:48 +01:00 committed by GitHub
commit 82c651b3cb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 52 additions and 0 deletions

6
.gitignore vendored
View file

@ -62,3 +62,9 @@ coverage
/node_modules
.DS_Store
app/javascript/src/componentLoader/components/*
# ignore addon features
features/addons
spec/addons
!features/addons/.gitkeep
!spec/addons/.gitkeep

View file

@ -0,0 +1,46 @@
require 'singleton'
class AddonsSpecLoader
include Singleton
include AddonsHelper
# rspec will recognise symlinks in the second run
def mount
FileUtils.rm_f Dir.glob("#{Dir.pwd}/spec/addons/*")
available_addons.each do |addon|
specs_path = "addons/#{addon}/spec"
next unless Dir.exist? specs_path
File.symlink("#{Dir.pwd}/#{specs_path}",
"#{Dir.pwd}/spec/addons/#{addon}")
end
end
# cucumber cannot resolve path with symlinks so we copy files from addons
def copy_to_features
FileUtils.rm_f Dir.glob("#{Dir.pwd}/features/addons/*")
available_addons.each do |addon|
feature_path = "addons/#{addon}/features"
next unless Dir.exist? feature_path
FileUtils.copy_entry("#{Dir.pwd}/#{feature_path}",
"#{Dir.pwd}/features/addons/#{addon}")
end
end
private
def available_addons
list_all_addons.map { |addon| addon.to_s.split('::').last.underscore }
end
end
if ENV['RAILS_ENV'].in? %w(test development)
begin
puts '[sciNote] Generating symlinks for addons!'
puts '[sciNote] Copying features from addons!'
AddonsSpecLoader.instance.mount
AddonsSpecLoader.instance.copy_to_features
rescue
puts '[sciNote] Unable to load specs from addons!'
puts '[sciNote] Your system does not support symlink!'
end
end

0
features/addons/.gitkeep Normal file
View file