forked from refinery/refinerycms
-
Notifications
You must be signed in to change notification settings - Fork 12
/
testing.rake
54 lines (44 loc) · 1.46 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
namespace :refinery do
namespace :testing do
desc "Generates a dummy app for testing"
task :dummy_app => [:setup_dummy_app, :setup_extension, :init_test_database]
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]
Dir.chdir Refinery::Testing::Railtie.target_extension_path
end
# This task is a hook to allow extensions to pass configuration
# Just define this inside your extension's Rakefile or a .rake file
# and pass arbitrary code. Example:
#
# namespace :refinery do
# namespace :testing do
# task :setup_extension do
# require 'refinerycms-my-extension'
# Refinery::MyEngineGenerator.start %w[--quiet]
# end
# end
# end
task :setup_extension do
end
desc "Remove the dummy app used for testing"
task :clean_dummy_app do
dummy_app_path.rmtree if dummy_app_path.exist?
end
task :init_test_database do
load 'rails/tasks/engine.rake'
Rake::Task["app:db:test:prepare"].invoke
end
task :conditionally_setup_dummy_app do
unless dummy_app_path.exist?
Rake::Task["refinery:testing:dummy_app"].invoke
end
end
def dummy_app_path
Refinery::Testing::Railtie.target_extension_path.join('spec', 'dummy')
end
end
end