faalis 2.0.8 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +2 -0
- data.tar.gz.sig +0 -0
- data/Rakefile +15 -9
- data/app/assets/javascripts/faalis/dashboard/application.js.erb +4 -3
- data/app/assets/javascripts/faalis/dashboard/init.js.coffee +1 -1
- data/{spec/dummy/public/favicon.ico → app/assets/javascripts/faalis/dashboard/lib/amd.js.coffee.erb} +0 -0
- data/app/assets/stylesheets/faalis/dashboard/share.scss +5 -0
- data/app/controllers/faalis/assets_controller.rb +6 -0
- data/app/controllers/faalis/dashboard/user_messages_controller.rb +27 -0
- data/app/models/application_record.rb +3 -0
- data/app/models/faalis/group.rb +4 -3
- data/app/models/faalis/permission.rb +2 -2
- data/app/models/faalis/user.rb +1 -7
- data/app/models/faalis/user_message.rb +6 -0
- data/app/policies/faalis/user_message_policy.rb +9 -0
- data/app/policies/faalis/user_policy.rb +1 -1
- data/app/views/faalis/dashboard/resource/edit.html.slim +1 -1
- data/app/views/faalis/dashboard/resource/show.html.slim +1 -2
- data/app/views/faalis/dashboard/shared/_header.html.erb +2 -2
- data/app/views/faalis/dashboard/user_messages/_form.html.slim +0 -0
- data/app/views/faalis/dashboard/user_messages/create.js.erb +0 -0
- data/app/views/faalis/dashboard/user_messages/destroy.js.erb +0 -0
- data/app/views/faalis/dashboard/user_messages/new.html.slim +72 -0
- data/app/views/layouts/faalis/dashboard.html.erb +2 -1
- data/config/locales/faalis.en.yml +2 -1
- data/config/routes.rb +6 -21
- data/db/migrate/20160310105736_create_faalis_user_messages.rb +16 -0
- data/lib/faalis.rb +1 -1
- data/lib/faalis/configuration.rb +79 -52
- data/lib/faalis/dashboard/dsl.rb +1 -0
- data/lib/faalis/dashboard/models/sidebar.rb +42 -16
- data/lib/faalis/dashboard/sections/resource.rb +152 -130
- data/lib/faalis/dashboard/sections/resource_create.rb +1 -3
- data/lib/faalis/engine.rb +7 -5
- data/lib/faalis/orm.rb +5 -5
- data/lib/faalis/version.rb +1 -1
- data/{spec → test}/dummy/README.rdoc +0 -0
- data/{spec → test}/dummy/Rakefile +0 -0
- data/{spec → test}/dummy/app/assets/javascripts/application.js +0 -0
- data/{spec → test}/dummy/app/assets/javascripts/dashboard/application.js +0 -0
- data/{spec → test}/dummy/app/assets/stylesheets/application.css +0 -0
- data/{spec → test}/dummy/app/assets/stylesheets/dashboard/ltr/application.css +0 -0
- data/{spec → test}/dummy/app/assets/stylesheets/dashboard/rtl/application.css +0 -0
- data/{spec → test}/dummy/app/assets/stylesheets/ltr/application.css +0 -0
- data/{spec → test}/dummy/app/assets/stylesheets/rtl/application.css +0 -0
- data/{spec → test}/dummy/app/controllers/api_controller.rb +0 -0
- data/{spec → test}/dummy/app/controllers/application_controller.rb +0 -0
- data/{spec → test}/dummy/app/controllers/dashboard/application_controller.rb +0 -0
- data/{spec → test}/dummy/app/helpers/application_helper.rb +0 -0
- data/{spec → test}/dummy/app/policies/application_policy.rb +0 -0
- data/{spec → test}/dummy/app/views/layouts/application.html.erb +0 -0
- data/{spec → test}/dummy/bin/bundle +0 -0
- data/{spec → test}/dummy/bin/rails +0 -0
- data/{spec → test}/dummy/bin/rake +0 -0
- data/{spec → test}/dummy/config.ru +0 -0
- data/{spec → test}/dummy/config/application.rb +0 -0
- data/{spec → test}/dummy/config/boot.rb +0 -0
- data/{spec → test}/dummy/config/database.yml +0 -0
- data/{spec → test}/dummy/config/environment.rb +0 -0
- data/{spec → test}/dummy/config/environments/development.rb +0 -0
- data/{spec → test}/dummy/config/environments/production.rb +0 -0
- data/{spec → test}/dummy/config/environments/test.rb +2 -0
- data/{spec → test}/dummy/config/initializers/backtrace_silencers.rb +0 -0
- data/{spec → test}/dummy/config/initializers/devise.rb +0 -0
- data/{spec → test}/dummy/config/initializers/faalis.rb +0 -0
- data/{spec → test}/dummy/config/initializers/faalis_assets.rb +0 -0
- data/{spec → test}/dummy/config/initializers/filter_parameter_logging.rb +0 -0
- data/{spec → test}/dummy/config/initializers/formstatic.rb +0 -0
- data/{spec → test}/dummy/config/initializers/formtastic.rb +0 -0
- data/{spec → test}/dummy/config/initializers/inflections.rb +0 -0
- data/{spec → test}/dummy/config/initializers/kaminari_config.rb +0 -0
- data/{spec → test}/dummy/config/initializers/mime_types.rb +0 -0
- data/{spec → test}/dummy/config/initializers/secret_token.rb +0 -0
- data/{spec → test}/dummy/config/initializers/session_store.rb +0 -0
- data/{spec → test}/dummy/config/initializers/wrap_parameters.rb +0 -0
- data/{spec → test}/dummy/config/locales/en.yml +0 -0
- data/{spec → test}/dummy/config/routes.rb +0 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/{spec → test}/dummy/lib/templates/slim/scaffold/_form.html.slim +0 -0
- data/test/dummy/log/test.log +0 -0
- data/{spec → test}/dummy/public/404.html +0 -0
- data/{spec → test}/dummy/public/422.html +0 -0
- data/{spec → test}/dummy/public/500.html +0 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/fabricators/faalis/groups.rb +27 -0
- data/test/fabricators/faalis/permissions.rb +14 -0
- data/test/fabricators/faalis/users.rb +17 -0
- data/test/generators/install_generator_test.rb +84 -0
- data/test/integration/faalis/authentication_test.rb +36 -0
- data/test/integration/faalis/dashboard_test.rb +64 -0
- data/test/test_helper.rb +72 -0
- metadata +291 -150
- metadata.gz.sig +1 -0
- data/app/controllers/faalis/api/v1/conversations_controller.rb +0 -120
- data/app/controllers/faalis/api/v1/groups_controller.rb +0 -71
- data/app/controllers/faalis/api/v1/logs_controller.rb +0 -12
- data/app/controllers/faalis/api/v1/permissions_controller.rb +0 -61
- data/app/controllers/faalis/api/v1/profiles_controller.rb +0 -42
- data/app/controllers/faalis/api/v1/users_controller.rb +0 -75
- data/lib/faalis_application.rb +0 -446
- data/lib/faalis_plugin.rb +0 -477
- data/spec/factories/faalis/groups.rb +0 -31
- data/spec/factories/faalis/permissions.rb +0 -16
- data/spec/factories/faalis/users.rb +0 -23
- data/spec/features/dashboard_spec.rb +0 -36
- data/spec/features/record_not_found_spec.rb +0 -24
- data/spec/features/sign_in_spec.rb +0 -37
- data/spec/generators/install_spec.rb +0 -58
- data/spec/models/faalis/group_spec.rb +0 -32
- data/spec/models/faalis/permission_spec.rb +0 -15
- data/spec/models/faalis/user_spec.rb +0 -100
- data/spec/policies/faalis/admin_only_policy_spec.rb +0 -39
- data/spec/policies/faalis/application_policy_spec.rb +0 -49
- data/spec/spec_helper.rb +0 -89
- data/spec/support/factory_girl.rb +0 -3
@@ -200,9 +200,7 @@ module Faalis::Dashboard::Sections
|
|
200
200
|
# end
|
201
201
|
# end
|
202
202
|
def in_form(&block)
|
203
|
-
|
204
|
-
path = controller_path.gsub(name, '').gsub(/dashboard\//, '')
|
205
|
-
model = "#{path}#{name}".classify.constantize
|
203
|
+
model = model_class
|
206
204
|
form_props = Faalis::Dashboard::DSL::Create.new(model)
|
207
205
|
|
208
206
|
unless block_given?
|
data/lib/faalis/engine.rb
CHANGED
@@ -18,13 +18,13 @@
|
|
18
18
|
# -----------------------------------------------------------------------------
|
19
19
|
|
20
20
|
require_relative './middlewares/locale'
|
21
|
+
require_relative './configuration'
|
21
22
|
|
22
23
|
module Faalis
|
23
24
|
|
24
25
|
# `Engine` class of **Faalis**.
|
25
26
|
class Engine < ::Rails::Engine
|
26
|
-
|
27
|
-
extend Faalis::Configuration
|
27
|
+
extend ::Faalis::Configuration
|
28
28
|
|
29
29
|
# TODO: Add a facility to allow developers to select
|
30
30
|
# features of faalis
|
@@ -38,15 +38,17 @@ module Faalis
|
|
38
38
|
end
|
39
39
|
|
40
40
|
config.generators do |g|
|
41
|
-
g.test_framework :
|
42
|
-
g.fixture_replacement :
|
43
|
-
g.integration_tool :
|
41
|
+
g.test_framework :minitest, fixture_replacement: :fabrication
|
42
|
+
g.fixture_replacement :fabrication, dir: "test/fabricators"
|
43
|
+
g.integration_tool :minitest
|
44
44
|
g.assets false
|
45
45
|
g.helper false
|
46
46
|
end
|
47
47
|
|
48
48
|
def self.setup
|
49
49
|
yield self
|
50
|
+
|
51
|
+
load_dependencies_based_on_configuration
|
50
52
|
end
|
51
53
|
|
52
54
|
# Override devise layout
|
data/lib/faalis/orm.rb
CHANGED
@@ -13,17 +13,17 @@ module Faalis
|
|
13
13
|
|
14
14
|
# current orm
|
15
15
|
def self.current
|
16
|
-
Faalis::Engine.orm.to_s
|
16
|
+
::Faalis::Engine.orm.to_s
|
17
17
|
end
|
18
18
|
|
19
19
|
# This class method returns the base class of current ORM
|
20
20
|
# It will be used in models to specify which class to inherit
|
21
21
|
# from, based on current ORM
|
22
22
|
def self.proper_base_class
|
23
|
-
return ActiveRecord::Base if active_record?
|
24
|
-
return Object if mongoid?
|
25
|
-
Faalis::Engine.orm = 'active_record'
|
26
|
-
ActiveRecord::Base
|
23
|
+
return ::ActiveRecord::Base if active_record?
|
24
|
+
return ::Object if mongoid?
|
25
|
+
::Faalis::Engine.orm = 'active_record'
|
26
|
+
::ActiveRecord::Base
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
data/lib/faalis/version.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# Read about factories at https://github.com/thoughtbot/factory_girl
|
2
|
+
|
3
|
+
def group(role)
|
4
|
+
# get existing group or create new one
|
5
|
+
Faalis::Group.where(role: role).first || Fabricate("#{role}_group")
|
6
|
+
end
|
7
|
+
|
8
|
+
Fabricator :guest_group, class_name: 'Faalis::Group' do
|
9
|
+
name 'Guest'
|
10
|
+
role 'guest'
|
11
|
+
end
|
12
|
+
|
13
|
+
Fabricator :admin_group, class_name: 'Faalis::Group' do
|
14
|
+
name 'Admin'
|
15
|
+
role 'admin'
|
16
|
+
end
|
17
|
+
|
18
|
+
Fabricator :manager_group, class_name: 'Faalis::Group' do
|
19
|
+
name 'Manager'
|
20
|
+
role 'manager'
|
21
|
+
|
22
|
+
permissions do
|
23
|
+
[:index, :show, :update, :create, :destroy].map do |x|
|
24
|
+
define_permission(x, :group)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# Read about factories at https://github.com/thoughtbot/factory_girl
|
2
|
+
|
3
|
+
def define_permission(action, model)
|
4
|
+
perm = Faalis::Permission.find_by(permission_type: action,
|
5
|
+
model: "Faalis::#{model.to_s.titleize}")
|
6
|
+
perm || Fabricate("#{action}_#{model}")
|
7
|
+
end
|
8
|
+
|
9
|
+
[:index, :show, :update, :create, :destroy].each do |action|
|
10
|
+
Fabricator "#{action}_group".to_sym, class_name: 'Faalis::Permission' do
|
11
|
+
model 'Faalis::Group'
|
12
|
+
permission_type action
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
Fabricator :user, class_name: 'Faalis::User' do
|
2
|
+
first_name Faker::Name.first_name
|
3
|
+
last_name Faker::Name.first_name
|
4
|
+
email { sequence(:email) { |n| "person#{n}@example.com" } }
|
5
|
+
end
|
6
|
+
|
7
|
+
Fabricator :admin, from: :user do
|
8
|
+
groups(count: 1){ Fabricate(:admin_group) }
|
9
|
+
end
|
10
|
+
|
11
|
+
Fabricator :guest, from: :user do
|
12
|
+
groups(count: 1){ Fabricate(:guest_group) }
|
13
|
+
end
|
14
|
+
|
15
|
+
Fabricator :manager, from: :user do
|
16
|
+
groups(count: 1){ Fabricate(:manager_group) }
|
17
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# require 'test_helper'
|
2
|
+
# require 'generators/faalis/install_generator'
|
3
|
+
|
4
|
+
# class InstallGeneratorTest < Rails::Generators::TestCase
|
5
|
+
# tests ::Faalis::Generators::InstallGenerator
|
6
|
+
# destination File.expand_path('../../dummy/tmp/install', __FILE__)
|
7
|
+
# setup :prepare_destination
|
8
|
+
|
9
|
+
# def run_generator(args=self.default_arguments, config={})
|
10
|
+
# args += ['--skip-bundle'] unless args.include? '--dev'
|
11
|
+
# self.generator_class.start(args, config.reverse_merge(destination_root: destination_root))
|
12
|
+
# end
|
13
|
+
|
14
|
+
# before do
|
15
|
+
# path = File.expand_path('../../dummy/tmp/install', __FILE__)
|
16
|
+
# dummy = File.expand_path('../../dummy/', __FILE__)
|
17
|
+
|
18
|
+
# mkdir_p path
|
19
|
+
# mkdir_p("#{path}/config/initializers")
|
20
|
+
# mkdir_p("#{path}/app/controllers")
|
21
|
+
# mkdir_p("#{path}/db")
|
22
|
+
# mkdir_p("#{path}/bin")
|
23
|
+
# touch("#{path}/config/routes.rb")
|
24
|
+
# touch("#{path}/Gemfile")
|
25
|
+
# touch("#{path}/config/initializers/assets.rb")
|
26
|
+
# touch("#{path}/config/initializers/formtastic.rb")
|
27
|
+
# touch("#{path}/db/seeds.rb")
|
28
|
+
# cp("#{dummy}/bin/rails", "#{path}/bin/rails")
|
29
|
+
# cp("#{dummy}/config/boot.rb", "#{path}/config/boot.rb")
|
30
|
+
# cp("#{dummy}/config/application.rb", "#{path}/config/application.rb")
|
31
|
+
# touch("#{path}/app/controllers/application_controller.rb")
|
32
|
+
|
33
|
+
# # run_generator
|
34
|
+
# end
|
35
|
+
|
36
|
+
# after do
|
37
|
+
# capture(:stdout) do
|
38
|
+
# path = File.expand_path('../../dummy/tmp/install', __FILE__)
|
39
|
+
# rm_rf path
|
40
|
+
# end
|
41
|
+
# end
|
42
|
+
|
43
|
+
# def test_copies_the_files
|
44
|
+
# run_generator
|
45
|
+
|
46
|
+
# assert_file 'config/initializers/faalis.rb'
|
47
|
+
# assert_file 'config/initializers/devise.rb'
|
48
|
+
# assert_file 'db/seeds.rb'
|
49
|
+
# assert_file 'app/controllers/api_controller.rb'
|
50
|
+
# assert_file 'app/controllers/dashboard/application_controller.rb'
|
51
|
+
# assert_file 'app/policies/application_policy.rb'
|
52
|
+
# assert_file 'app/assets/javascripts/dashboard/application.js'
|
53
|
+
# assert_file 'app/assets/stylesheets/dashboard/ltr/application.css'
|
54
|
+
# assert_file 'app/assets/stylesheets/dashboard/rtl/application.css'
|
55
|
+
# end
|
56
|
+
# end
|
57
|
+
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
# # def content_of(path)
|
62
|
+
# # full_path = "#{destination_root}/#{path}"
|
63
|
+
# # File.read(full_path)
|
64
|
+
# # end
|
65
|
+
|
66
|
+
# # before :all do
|
67
|
+
# # prepare_destination
|
68
|
+
|
69
|
+
# # path = File.expand_path('../../dummy/tmp/', __FILE__)
|
70
|
+
|
71
|
+
# # FileUtils.mkdir_p("#{path}/config/initializers")
|
72
|
+
# # FileUtils.mkdir_p("#{path}/app/controllers")
|
73
|
+
# # FileUtils.mkdir_p("#{path}/db")
|
74
|
+
|
75
|
+
# # FileUtils.touch("#{path}/config/routes.rb")
|
76
|
+
# # FileUtils.touch("#{path}/Gemfile")
|
77
|
+
# # FileUtils.touch("#{path}/config/initializers/assets.rb")
|
78
|
+
# # FileUtils.touch("#{path}/config/initializers/formtastic.rb")
|
79
|
+
# # FileUtils.touch("#{path}/db/seeds.rb")
|
80
|
+
|
81
|
+
|
82
|
+
# # FileUtils.touch("#{path}/app/controllers/application_controller.rb")
|
83
|
+
# # run_generator
|
84
|
+
# # end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class AuthenticationTest < ActionDispatch::IntegrationTest
|
4
|
+
def setup
|
5
|
+
@admin = Fabricate(:admin, password: '123123123',
|
6
|
+
password_confirmation: '123123123',
|
7
|
+
email: 'admin@example.com')
|
8
|
+
|
9
|
+
@admin.save
|
10
|
+
@guest = Fabricate(:guest, password: '123123123',
|
11
|
+
password_confirmation: '123123123')
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
test 'authentication is up and running' do
|
16
|
+
visit user_session_path
|
17
|
+
|
18
|
+
assert_text 'Sign In'
|
19
|
+
assert_css '.login-box-msg'
|
20
|
+
assert_selector '#user_email'
|
21
|
+
assert_selector '#user_password'
|
22
|
+
end
|
23
|
+
|
24
|
+
test 'authentication allows user to successfully log in using valid credentials' do
|
25
|
+
visit dashboard_index_path
|
26
|
+
|
27
|
+
fill_in 'user_email', with: @admin.email
|
28
|
+
fill_in 'user_password', with: '123123123'
|
29
|
+
|
30
|
+
click_button 'sign_in'
|
31
|
+
|
32
|
+
assert_text 'Dashboard'
|
33
|
+
assert_no_text 'Sign In'
|
34
|
+
assert_equal current_path, dashboard_index_path
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class DashboardTest < ActionDispatch::IntegrationTest
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@admin = Fabricate(:admin, password: '123123123',
|
7
|
+
password_confirmation: '123123123')
|
8
|
+
|
9
|
+
@guest = Fabricate(:guest, password: '123123123',
|
10
|
+
password_confirmation: '123123123')
|
11
|
+
@faalis = Faalis::Engine.routes.url_helpers
|
12
|
+
end
|
13
|
+
|
14
|
+
test "loads normally after login" do
|
15
|
+
login_as(@admin, scope: :user)
|
16
|
+
path = "/#{Faalis::Engine.dashboard_namespace}"
|
17
|
+
|
18
|
+
visit faalis.dashboard_index_path
|
19
|
+
|
20
|
+
assert_equal page.status_code, 200
|
21
|
+
assert_text 'Faalis'
|
22
|
+
assert_text 'Dashboard'
|
23
|
+
assert_no_text '404'
|
24
|
+
assert_no_text 'Oops!'
|
25
|
+
assert_equal current_path, path
|
26
|
+
end
|
27
|
+
|
28
|
+
test 'does not load with anonymous users' do
|
29
|
+
visit @faalis.dashboard_index_path
|
30
|
+
|
31
|
+
assert_equal page.status_code, 200
|
32
|
+
assert_equal current_path, @faalis.user_session_path
|
33
|
+
end
|
34
|
+
|
35
|
+
test 'does not provide authentication section for guests' do
|
36
|
+
visit @faalis.dashboard_index_path
|
37
|
+
|
38
|
+
assert_equal page.status_code, 200
|
39
|
+
assert_no_text('User Management')
|
40
|
+
assert_no_text('Users')
|
41
|
+
assert_no_text('Groups')
|
42
|
+
end
|
43
|
+
|
44
|
+
test 'User try to find a resource which does not exists via js format.' do
|
45
|
+
login_as(@admin, scope: :user)
|
46
|
+
|
47
|
+
visit @faalis.dashboard_auth_user_path({ id: 3242, format: :js})
|
48
|
+
|
49
|
+
assert_equal page.status_code, 200
|
50
|
+
assert_text('error_message(')
|
51
|
+
end
|
52
|
+
|
53
|
+
test 'User try to find a valid resource' do
|
54
|
+
login_as(@admin, scope: :user)
|
55
|
+
|
56
|
+
visit @faalis.dashboard_auth_user_path({ id: 1 })
|
57
|
+
|
58
|
+
assert_equal page.status_code, 200
|
59
|
+
assert_no_text('404')
|
60
|
+
assert_text('User')
|
61
|
+
assert_no_text('Oops!')
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
ENV["RAILS_ENV"] ||= 'test'
|
2
|
+
|
3
|
+
require File.expand_path("../../test/dummy/config/environment", __FILE__)
|
4
|
+
require "rails/test_help"
|
5
|
+
#require "mocha/mini_test"
|
6
|
+
|
7
|
+
# FABRICATION -----------------------------------
|
8
|
+
require 'fabrication'
|
9
|
+
|
10
|
+
Fabrication.configure do |config|
|
11
|
+
config.fabricator_path = 'test/fabricators/faalis/'
|
12
|
+
config.path_prefix = Faalis::Engine.root
|
13
|
+
end
|
14
|
+
|
15
|
+
# MINITEST REPORTER -----------------------------
|
16
|
+
require "minitest/reporters"
|
17
|
+
|
18
|
+
Minitest::Reporters.use!(Minitest::Reporters::ProgressReporter.new,
|
19
|
+
ENV,
|
20
|
+
Minitest.backtrace_filter)
|
21
|
+
|
22
|
+
|
23
|
+
class ActiveSupport::TestCase
|
24
|
+
fixtures :all
|
25
|
+
end
|
26
|
+
|
27
|
+
# CAPYBARA ---------------------------------------
|
28
|
+
# Capybara and poltergeist integration
|
29
|
+
require 'minitest/rails/capybara'
|
30
|
+
require 'capybara/rails'
|
31
|
+
require 'capybara/poltergeist'
|
32
|
+
|
33
|
+
class ActionDispatch::IntegrationTest
|
34
|
+
include Capybara::DSL
|
35
|
+
include Capybara::Assertions
|
36
|
+
include Faalis::Engine.routes.url_helpers
|
37
|
+
include Warden::Test::Helpers
|
38
|
+
|
39
|
+
Warden.test_mode!
|
40
|
+
|
41
|
+
after do
|
42
|
+
Warden.test_reset!
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
Capybara.javascript_driver = :poltergeist
|
47
|
+
|
48
|
+
|
49
|
+
# DATABASE CLEANER -------------------------------
|
50
|
+
|
51
|
+
require 'database_cleaner'
|
52
|
+
require 'minitest/around/spec'
|
53
|
+
|
54
|
+
class Minitest::Spec
|
55
|
+
around do |tests|
|
56
|
+
DatabaseCleaner.cleaning(&tests)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
# CONNECTION POOL --------------------------------
|
61
|
+
require 'connection_pool'
|
62
|
+
|
63
|
+
class ActiveRecord::Base
|
64
|
+
mattr_accessor :shared_connection
|
65
|
+
@@shared_connection = nil
|
66
|
+
|
67
|
+
def self.connection
|
68
|
+
@@shared_connection || ::ConnectionPool::Wrapper.new(:size => 1) { retrieve_connection }
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
ActiveRecord::Base.shared_connection = ActiveRecord::Base.connection
|