forked from refinery/refinerycms
/
testing.rake
68 lines (56 loc) · 1.91 KB
/
testing.rake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
namespace :refinery do
namespace :testing do
desc "Generates a dummy app for testing"
task :dummy_app => [:setup_dummy_app, :setup_extension, :migrate_dummy_app]
task :setup_dummy_app do
require 'refinerycms'
params = %w(--quiet)
params << "--database=#{ENV['DB']}" if ENV['DB']
Refinery::DummyGenerator.start params
Refinery::CmsGenerator.start %w[--quiet --fresh-installation]
end
# This task is a hook to allow engines to pass configuration
# Just define this inside your engine's Rakefile or a .rake file
# and pass arbitrary code. Example:
#
# namespace :refinery do
# namespace :testing do
# task :setup_extension do
# require 'refinerycms-my-engine'
# Refinery::MyEngineGenerator.start %w[--quiet]
# end
# end
# end
task :setup_extension do
end
task :migrate_dummy_app do
engines = %w(
refinery
refinery_settings
refinery_authentication
seo_meta_engine
refinery_pages
refinery_images
refinery_resources
)
task_params = [%Q{ bundle exec rake -f #{Refinery::Testing::Railtie.target_engine_path.join('Rakefile')} }]
task_params << %Q{ app:railties:install:migrations FROM="#{engines.join(', ')}" }
task_params << %Q{ app:db:drop app:db:create app:db:migrate app:db:seed app:db:test:prepare }
task_params << %Q{ RAILS_ENV=development --quiet }
system task_params.join(' ')
end
desc "Remove the dummy app used for testing"
task :clean_dummy_app do
path = Refinery::Testing::Railtie.target_engine_path.join('spec', 'dummy')
path.rmtree if path.exist?
end
namespace :engine do
desc "Initialize the testing environment"
task :setup => [:init_test_database]
task :init_test_database => [
'app:db:migrate',
'app:db:test:prepare'
]
end
end
end