eac_rails_base0 0.52.0 → 0.53.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/config/initializers/action_mailer.rb +1 -1
- data/config/initializers/speaker.rb +8 -0
- data/lib/eac_rails_base0.rb +0 -1
- data/lib/eac_rails_base0/app_base/application/envvars.rb +1 -1
- data/lib/eac_rails_base0/rspec.rb +9 -0
- data/lib/eac_rails_base0/rspec/setup.rb +116 -0
- data/lib/eac_rails_base0/version.rb +1 -1
- metadata +34 -98
- data/lib/eac_rails_base0/boolean_value.rb +0 -16
- data/lib/eac_rails_base0/spec_helper.rb +0 -29
- data/lib/eac_rails_base0/spec_helper/capybara.rb +0 -7
- data/lib/eac_rails_base0/spec_helper/eac_users_support.rb +0 -84
- data/lib/eac_rails_base0/spec_helper/factory_bot.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 309880b1cad226e7d5eca8cf4070121ff05c59c0897779636bfed488672dc616
|
4
|
+
data.tar.gz: 50b55d0c59aaad55355782e4971d50b9be793aaf3dfe3e7b159eb017759919ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7270a394cddcb88fcb2a38f8c23cf29d3bd569ad89333828da5e278c46505460543a288be4d6bcb4d9e7f46af2d20b9a17fbf3e7dd1d201f04f5d6d4748cc5a1
|
7
|
+
data.tar.gz: 3132f0e276d26d14aaaa5615461e8682231b40587d1c2cb95b1fe16e7c1706de20c3ac16e8389541211e84e89f61b355e9c49aa199b6ea8ce39617fa5c42d7fb
|
@@ -10,7 +10,7 @@ unless ::Rails.env.test?
|
|
10
10
|
password: ENV['action_mailer_smtp_password'],
|
11
11
|
authentication: ENV['action_mailer_smtp_authentication'],
|
12
12
|
enable_starttls_auto:
|
13
|
-
::
|
13
|
+
::EacRubyUtils::Boolean.parse(ENV['action_mailer_smtp_enable_starttls_auto'])
|
14
14
|
}
|
15
15
|
%i[host port].each do |option|
|
16
16
|
value = ENV["action_mailer_default_url_#{option}"]
|
data/lib/eac_rails_base0.rb
CHANGED
@@ -20,6 +20,5 @@ end
|
|
20
20
|
require_dependency 'eac_rails_base0/gems'
|
21
21
|
require_dependency 'eac_rails_base0/app_base/ability_mapping'
|
22
22
|
require_dependency 'eac_rails_base0/app_base/ability'
|
23
|
-
require_dependency 'eac_rails_base0/boolean_value'
|
24
23
|
require_dependency 'eac_rails_base0/patches/url_for_patch'
|
25
24
|
require_dependency 'eac_rails_base0/x_engine'
|
@@ -32,7 +32,7 @@ module EacRailsBase0App
|
|
32
32
|
vars = ::EacRubyUtils::Yaml.load(path.read)
|
33
33
|
raise "\"#{path}\" does not contain a Hash" unless vars.is_a?(::Hash)
|
34
34
|
|
35
|
-
vars.each { |name, value| ENV[name.to_s] = value }
|
35
|
+
vars.each { |name, value| ENV[name.to_s] = value.to_s }
|
36
36
|
end
|
37
37
|
|
38
38
|
def setup_envvars
|
@@ -0,0 +1,116 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'factory_bot'
|
5
|
+
|
6
|
+
module EacRailsBase0
|
7
|
+
module Rspec
|
8
|
+
class Setup
|
9
|
+
common_constructor :setup_obj
|
10
|
+
|
11
|
+
def perform
|
12
|
+
return unless defined?(::Rails)
|
13
|
+
|
14
|
+
%w[engines admin_user non_admin_user admin_example non_admin_example
|
15
|
+
anonymous_example].each do |m|
|
16
|
+
send("setup_#{m}")
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def setup_engines
|
23
|
+
::FactoryBot.definition_file_paths += ::EacRailsBase0::XEngine.local.flat_map do |engine|
|
24
|
+
%w[factories test/factories spec/factories].map do |subpath|
|
25
|
+
engine.config.root.join(subpath).to_path
|
26
|
+
end
|
27
|
+
end
|
28
|
+
::FactoryBot.find_definitions
|
29
|
+
end
|
30
|
+
|
31
|
+
def setup_admin_user
|
32
|
+
::FactoryBot.define do
|
33
|
+
factory :admin_user, class: ::EacUsersSupport::User do
|
34
|
+
email { 'admin@example.com' }
|
35
|
+
password { 'mysecret' }
|
36
|
+
confirmed_at { ::Time.zone.now }
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def setup_non_admin_user
|
42
|
+
::FactoryBot.define do
|
43
|
+
factory :non_admin_user, class: ::EacUsersSupport::User do
|
44
|
+
email { 'nonadmin@example.com' }
|
45
|
+
password { 'mysecret' }
|
46
|
+
confirmed_at { ::Time.zone.now }
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def setup_admin_example # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
52
|
+
::RSpec.shared_context 'when user is admin', shared_context: :metadata do
|
53
|
+
let(:user) { ::FactoryBot.create(:admin_user) }
|
54
|
+
|
55
|
+
before do
|
56
|
+
visit '/users/sign_in'
|
57
|
+
fill_in ::I18n.translate!('activerecord.attributes.eac_users_support/user.email'),
|
58
|
+
with: user.email
|
59
|
+
fill_in ::I18n.translate!('activerecord.attributes.eac_users_support/user.password'),
|
60
|
+
with: user.password
|
61
|
+
click_button ::I18n.translate!('devise.log_in')
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'user should be logged' do
|
65
|
+
expect(page).to have_content user.email
|
66
|
+
expect(::EacUsersSupport::User.current_user).not_to be_nil
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def setup_non_admin_example # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
72
|
+
::RSpec.shared_context 'when user is non admin', shared_context: :metadata do
|
73
|
+
let(:user) { ::FactoryBot.create(:non_admin_user) }
|
74
|
+
|
75
|
+
before do
|
76
|
+
visit '/users/sign_in'
|
77
|
+
fill_in ::I18n.translate!('activerecord.attributes.eac_users_support/user.email'),
|
78
|
+
with: user.email
|
79
|
+
fill_in ::I18n.translate!('activerecord.attributes.eac_users_support/user.password'),
|
80
|
+
with: user.password
|
81
|
+
click_button ::I18n.translate!('devise.log_in')
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'user should be logged' do
|
85
|
+
expect(page).to have_content user.email
|
86
|
+
expect(::EacUsersSupport::User.current_user).not_to be_nil
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
def setup_anonymous_example # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
92
|
+
::RSpec.shared_context 'when user is anonymous', shared_context: :metadata do
|
93
|
+
before do
|
94
|
+
visit '/'
|
95
|
+
if link_exist?(::I18n.translate!('devise.log_out'))
|
96
|
+
click_link(::I18n.translate!('devise.log_out'))
|
97
|
+
elsif !link_exist?(::I18n.translate!('devise.log_in'))
|
98
|
+
raise 'login nor logout link found'
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
it 'user should be not logged' do
|
103
|
+
expect(::EacUsersSupport::User.current_user).to be_nil
|
104
|
+
end
|
105
|
+
|
106
|
+
def link_exist?(locator) # rubocop:disable Lint/NestedMethodDefinition
|
107
|
+
find_link(locator)
|
108
|
+
true
|
109
|
+
rescue Capybara::ElementNotFound
|
110
|
+
false
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
metadata
CHANGED
@@ -1,23 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eac_rails_base0
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.53.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Esquilo Azul Company
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: active_scaffold
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '3.5'
|
20
|
-
- - ">="
|
21
18
|
- !ruby/object:Gem::Version
|
22
19
|
version: 3.5.5
|
23
20
|
type: :runtime
|
@@ -25,9 +22,6 @@ dependencies:
|
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
24
|
- - "~>"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '3.5'
|
30
|
-
- - ">="
|
31
25
|
- !ruby/object:Gem::Version
|
32
26
|
version: 3.5.5
|
33
27
|
- !ruby/object:Gem::Dependency
|
@@ -92,20 +86,6 @@ dependencies:
|
|
92
86
|
- - ">="
|
93
87
|
- !ruby/object:Gem::Version
|
94
88
|
version: 0.4.1
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
|
-
name: byebug
|
97
|
-
requirement: !ruby/object:Gem::Requirement
|
98
|
-
requirements:
|
99
|
-
- - ">="
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '0'
|
102
|
-
type: :runtime
|
103
|
-
prerelease: false
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
requirements:
|
106
|
-
- - ">="
|
107
|
-
- !ruby/object:Gem::Version
|
108
|
-
version: '0'
|
109
89
|
- !ruby/object:Gem::Dependency
|
110
90
|
name: can_can_dry
|
111
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -120,20 +100,6 @@ dependencies:
|
|
120
100
|
- - "~>"
|
121
101
|
- !ruby/object:Gem::Version
|
122
102
|
version: '0.5'
|
123
|
-
- !ruby/object:Gem::Dependency
|
124
|
-
name: capybara
|
125
|
-
requirement: !ruby/object:Gem::Requirement
|
126
|
-
requirements:
|
127
|
-
- - ">="
|
128
|
-
- !ruby/object:Gem::Version
|
129
|
-
version: '0'
|
130
|
-
type: :runtime
|
131
|
-
prerelease: false
|
132
|
-
version_requirements: !ruby/object:Gem::Requirement
|
133
|
-
requirements:
|
134
|
-
- - ">="
|
135
|
-
- !ruby/object:Gem::Version
|
136
|
-
version: '0'
|
137
103
|
- !ruby/object:Gem::Dependency
|
138
104
|
name: carrierwave
|
139
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -169,39 +135,39 @@ dependencies:
|
|
169
135
|
- !ruby/object:Gem::Version
|
170
136
|
version: 4.2.2
|
171
137
|
- !ruby/object:Gem::Dependency
|
172
|
-
name:
|
138
|
+
name: eac_cli
|
173
139
|
requirement: !ruby/object:Gem::Requirement
|
174
140
|
requirements:
|
175
141
|
- - "~>"
|
176
142
|
- !ruby/object:Gem::Version
|
177
|
-
version: '0.
|
143
|
+
version: '0.21'
|
144
|
+
- - ">="
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: 0.21.1
|
178
147
|
type: :runtime
|
179
148
|
prerelease: false
|
180
149
|
version_requirements: !ruby/object:Gem::Requirement
|
181
150
|
requirements:
|
182
151
|
- - "~>"
|
183
152
|
- !ruby/object:Gem::Version
|
184
|
-
version: '0.
|
153
|
+
version: '0.21'
|
154
|
+
- - ">="
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
version: 0.21.1
|
185
157
|
- !ruby/object:Gem::Dependency
|
186
|
-
name:
|
158
|
+
name: eac_rails_utils
|
187
159
|
requirement: !ruby/object:Gem::Requirement
|
188
160
|
requirements:
|
189
161
|
- - "~>"
|
190
162
|
- !ruby/object:Gem::Version
|
191
|
-
version: '0.
|
192
|
-
- - ">="
|
193
|
-
- !ruby/object:Gem::Version
|
194
|
-
version: 0.1.1
|
163
|
+
version: '0.10'
|
195
164
|
type: :runtime
|
196
165
|
prerelease: false
|
197
166
|
version_requirements: !ruby/object:Gem::Requirement
|
198
167
|
requirements:
|
199
168
|
- - "~>"
|
200
169
|
- !ruby/object:Gem::Version
|
201
|
-
version: '0.
|
202
|
-
- - ">="
|
203
|
-
- !ruby/object:Gem::Version
|
204
|
-
version: 0.1.1
|
170
|
+
version: '0.10'
|
205
171
|
- !ruby/object:Gem::Dependency
|
206
172
|
name: eac_ruby_gems_utils
|
207
173
|
requirement: !ruby/object:Gem::Requirement
|
@@ -228,14 +194,14 @@ dependencies:
|
|
228
194
|
requirements:
|
229
195
|
- - "~>"
|
230
196
|
- !ruby/object:Gem::Version
|
231
|
-
version: '0.
|
197
|
+
version: '0.72'
|
232
198
|
type: :runtime
|
233
199
|
prerelease: false
|
234
200
|
version_requirements: !ruby/object:Gem::Requirement
|
235
201
|
requirements:
|
236
202
|
- - "~>"
|
237
203
|
- !ruby/object:Gem::Version
|
238
|
-
version: '0.
|
204
|
+
version: '0.72'
|
239
205
|
- !ruby/object:Gem::Dependency
|
240
206
|
name: eac_users_support
|
241
207
|
requirement: !ruby/object:Gem::Requirement
|
@@ -256,20 +222,6 @@ dependencies:
|
|
256
222
|
- - ">="
|
257
223
|
- !ruby/object:Gem::Version
|
258
224
|
version: 0.8.2
|
259
|
-
- !ruby/object:Gem::Dependency
|
260
|
-
name: factory_bot_rails
|
261
|
-
requirement: !ruby/object:Gem::Requirement
|
262
|
-
requirements:
|
263
|
-
- - "~>"
|
264
|
-
- !ruby/object:Gem::Version
|
265
|
-
version: '4.0'
|
266
|
-
type: :runtime
|
267
|
-
prerelease: false
|
268
|
-
version_requirements: !ruby/object:Gem::Requirement
|
269
|
-
requirements:
|
270
|
-
- - "~>"
|
271
|
-
- !ruby/object:Gem::Version
|
272
|
-
version: '4.0'
|
273
225
|
- !ruby/object:Gem::Dependency
|
274
226
|
name: fog-aws
|
275
227
|
requirement: !ruby/object:Gem::Requirement
|
@@ -430,20 +382,6 @@ dependencies:
|
|
430
382
|
- - ">="
|
431
383
|
- !ruby/object:Gem::Version
|
432
384
|
version: 3.10.1
|
433
|
-
- !ruby/object:Gem::Dependency
|
434
|
-
name: rspec-rails
|
435
|
-
requirement: !ruby/object:Gem::Requirement
|
436
|
-
requirements:
|
437
|
-
- - "~>"
|
438
|
-
- !ruby/object:Gem::Version
|
439
|
-
version: '3.7'
|
440
|
-
type: :runtime
|
441
|
-
prerelease: false
|
442
|
-
version_requirements: !ruby/object:Gem::Requirement
|
443
|
-
requirements:
|
444
|
-
- - "~>"
|
445
|
-
- !ruby/object:Gem::Version
|
446
|
-
version: '3.7'
|
447
385
|
- !ruby/object:Gem::Dependency
|
448
386
|
name: sass-rails
|
449
387
|
requirement: !ruby/object:Gem::Requirement
|
@@ -528,20 +466,6 @@ dependencies:
|
|
528
466
|
- - ">="
|
529
467
|
- !ruby/object:Gem::Version
|
530
468
|
version: 1.3.0
|
531
|
-
- !ruby/object:Gem::Dependency
|
532
|
-
name: web-console
|
533
|
-
requirement: !ruby/object:Gem::Requirement
|
534
|
-
requirements:
|
535
|
-
- - "~>"
|
536
|
-
- !ruby/object:Gem::Version
|
537
|
-
version: '2.0'
|
538
|
-
type: :runtime
|
539
|
-
prerelease: false
|
540
|
-
version_requirements: !ruby/object:Gem::Requirement
|
541
|
-
requirements:
|
542
|
-
- - "~>"
|
543
|
-
- !ruby/object:Gem::Version
|
544
|
-
version: '2.0'
|
545
469
|
- !ruby/object:Gem::Dependency
|
546
470
|
name: pg
|
547
471
|
requirement: !ruby/object:Gem::Requirement
|
@@ -570,6 +494,20 @@ dependencies:
|
|
570
494
|
- - ">="
|
571
495
|
- !ruby/object:Gem::Version
|
572
496
|
version: '0'
|
497
|
+
- !ruby/object:Gem::Dependency
|
498
|
+
name: eac_rails_gem_support
|
499
|
+
requirement: !ruby/object:Gem::Requirement
|
500
|
+
requirements:
|
501
|
+
- - "~>"
|
502
|
+
- !ruby/object:Gem::Version
|
503
|
+
version: '0.1'
|
504
|
+
type: :development
|
505
|
+
prerelease: false
|
506
|
+
version_requirements: !ruby/object:Gem::Requirement
|
507
|
+
requirements:
|
508
|
+
- - "~>"
|
509
|
+
- !ruby/object:Gem::Version
|
510
|
+
version: '0.1'
|
573
511
|
description:
|
574
512
|
email:
|
575
513
|
executables:
|
@@ -625,6 +563,7 @@ files:
|
|
625
563
|
- config/initializers/mime_types.rb
|
626
564
|
- config/initializers/patches.rb
|
627
565
|
- config/initializers/session_store.rb
|
566
|
+
- config/initializers/speaker.rb
|
628
567
|
- config/initializers/wrap_parameters.rb
|
629
568
|
- config/locales/en.yml
|
630
569
|
- config/locales/pt-BR.yml
|
@@ -663,15 +602,12 @@ files:
|
|
663
602
|
- lib/eac_rails_base0/app_generator/templates/config/routes.rb
|
664
603
|
- lib/eac_rails_base0/app_generator/templates/gitignore
|
665
604
|
- lib/eac_rails_base0/app_generator/templates/lib/local_plugins.rb
|
666
|
-
- lib/eac_rails_base0/boolean_value.rb
|
667
605
|
- lib/eac_rails_base0/engine.rb
|
668
606
|
- lib/eac_rails_base0/gems.rb
|
669
607
|
- lib/eac_rails_base0/patches/eac_rails_utils_links_helper_patch.rb
|
670
608
|
- lib/eac_rails_base0/patches/url_for_patch.rb
|
671
|
-
- lib/eac_rails_base0/
|
672
|
-
- lib/eac_rails_base0/
|
673
|
-
- lib/eac_rails_base0/spec_helper/eac_users_support.rb
|
674
|
-
- lib/eac_rails_base0/spec_helper/factory_bot.rb
|
609
|
+
- lib/eac_rails_base0/rspec.rb
|
610
|
+
- lib/eac_rails_base0/rspec/setup.rb
|
675
611
|
- lib/eac_rails_base0/version.rb
|
676
612
|
- lib/eac_rails_base0/x_engine.rb
|
677
613
|
- lib/fog.rb
|
@@ -708,7 +644,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
708
644
|
- !ruby/object:Gem::Version
|
709
645
|
version: '0'
|
710
646
|
requirements: []
|
711
|
-
rubygems_version: 3.
|
647
|
+
rubygems_version: 3.1.6
|
712
648
|
signing_key:
|
713
649
|
specification_version: 4
|
714
650
|
summary: A Rails base for multiple Rails projects developed by Esquilo Azul Company.
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module EacRailsBase0
|
4
|
-
class BooleanValue
|
5
|
-
def self.to_b(object)
|
6
|
-
return false if object.blank?
|
7
|
-
|
8
|
-
if object.is_a?(String)
|
9
|
-
object = object.strip
|
10
|
-
object.present? && object != '0' && object != 'false'
|
11
|
-
else
|
12
|
-
object ? true : false
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
begin
|
4
|
-
ActiveRecord::Migration.maintain_test_schema!
|
5
|
-
rescue ActiveRecord::PendingMigrationError => e
|
6
|
-
::Rails.logger.fatal(e)
|
7
|
-
::Kernel.exit 1 # rubocop:disable Rails/Exit
|
8
|
-
end
|
9
|
-
|
10
|
-
RSpec.configure do |config|
|
11
|
-
config.expect_with :rspec do |expectations|
|
12
|
-
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
13
|
-
end
|
14
|
-
|
15
|
-
config.mock_with :rspec do |mocks|
|
16
|
-
mocks.verify_partial_doubles = true
|
17
|
-
end
|
18
|
-
|
19
|
-
config.shared_context_metadata_behavior = :apply_to_host_groups
|
20
|
-
config.example_status_persistence_file_path = ::Rails.root.join('tmp', 'cache', 'rspec.txt')
|
21
|
-
config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
22
|
-
config.use_transactional_fixtures = true
|
23
|
-
config.infer_spec_type_from_file_location!
|
24
|
-
config.filter_rails_from_backtrace!
|
25
|
-
end
|
26
|
-
|
27
|
-
require 'eac_ruby_utils/require_sub'
|
28
|
-
::EacRubyUtils.require_sub __FILE__
|
29
|
-
require 'aranha/parsers/spec/source_target_fixtures_example'
|
@@ -1,84 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'devise'
|
4
|
-
require_relative 'factory_bot'
|
5
|
-
|
6
|
-
RSpec.configure do |config|
|
7
|
-
config.include Warden::Test::Helpers
|
8
|
-
|
9
|
-
config.after(:each) do
|
10
|
-
Warden.test_reset!
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
FactoryBot.define do
|
15
|
-
factory :admin_user, class: ::EacUsersSupport::User do
|
16
|
-
email { 'admin@example.com' }
|
17
|
-
password { 'mysecret' }
|
18
|
-
confirmed_at { ::Time.zone.now }
|
19
|
-
end
|
20
|
-
|
21
|
-
factory :non_admin_user, class: ::EacUsersSupport::User do
|
22
|
-
email { 'nonadmin@example.com' }
|
23
|
-
password { 'mysecret' }
|
24
|
-
confirmed_at { ::Time.zone.now }
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
RSpec.shared_context 'when user is admin', shared_context: :metadata do
|
29
|
-
let(:user) { ::FactoryBot.create(:admin_user) }
|
30
|
-
|
31
|
-
before do
|
32
|
-
visit '/users/sign_in'
|
33
|
-
fill_in ::I18n.translate!('activerecord.attributes.eac_users_support/user.email'),
|
34
|
-
with: user.email
|
35
|
-
fill_in ::I18n.translate!('activerecord.attributes.eac_users_support/user.password'),
|
36
|
-
with: user.password
|
37
|
-
click_button ::I18n.translate!('devise.log_in')
|
38
|
-
end
|
39
|
-
|
40
|
-
it 'user should be logged' do
|
41
|
-
expect(page).to have_content user.email
|
42
|
-
expect(::EacUsersSupport::User.current_user).not_to be_nil
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
RSpec.shared_context 'when user is non admin', shared_context: :metadata do
|
47
|
-
let(:user) { ::FactoryBot.create(:non_admin_user) }
|
48
|
-
|
49
|
-
before do
|
50
|
-
visit '/users/sign_in'
|
51
|
-
fill_in ::I18n.translate!('activerecord.attributes.eac_users_support/user.email'),
|
52
|
-
with: user.email
|
53
|
-
fill_in ::I18n.translate!('activerecord.attributes.eac_users_support/user.password'),
|
54
|
-
with: user.password
|
55
|
-
click_button ::I18n.translate!('devise.log_in')
|
56
|
-
end
|
57
|
-
|
58
|
-
it 'user should be logged' do
|
59
|
-
expect(page).to have_content user.email
|
60
|
-
expect(::EacUsersSupport::User.current_user).not_to be_nil
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
RSpec.shared_context 'when user is anonymous', shared_context: :metadata do
|
65
|
-
before do
|
66
|
-
visit '/'
|
67
|
-
if link_exist?(::I18n.translate!('devise.log_out'))
|
68
|
-
click_link(::I18n.translate!('devise.log_out'))
|
69
|
-
elsif !link_exist?(::I18n.translate!('devise.log_in'))
|
70
|
-
raise 'login nor logout link found'
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
it 'user should be not logged' do
|
75
|
-
expect(::EacUsersSupport::User.current_user).to be_nil
|
76
|
-
end
|
77
|
-
|
78
|
-
def link_exist?(locator)
|
79
|
-
find_link(locator)
|
80
|
-
true
|
81
|
-
rescue Capybara::ElementNotFound
|
82
|
-
false
|
83
|
-
end
|
84
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'factory_bot_rails'
|
4
|
-
|
5
|
-
RSpec.configure do |config|
|
6
|
-
config.include FactoryBot::Syntax::Methods
|
7
|
-
end
|
8
|
-
|
9
|
-
::FactoryBot.definition_file_paths += ::EacRailsBase0::XEngine.local.flat_map do |engine|
|
10
|
-
%w[factories test/factories spec/factories].map do |subpath|
|
11
|
-
engine.config.root.join(subpath).to_path
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
::FactoryBot.find_definitions
|
16
|
-
|
17
|
-
Spring.after_fork { FactoryBot.reload } if defined?(Spring)
|