eac_rails_base0 0.52.1 → 0.54.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8e448e7de6f197a4764c52f7adff9462a934463cd03f0807c70e0724239e5559
4
- data.tar.gz: dca62cf72477ae8e4f316938f3c13c2cd20259df15689e197f000434ad0294ec
3
+ metadata.gz: 59bd05d4b3afb7a339af9d57e08e4da3a31284e9be6c0178f73dcb4f44262359
4
+ data.tar.gz: 1f09748d8a42d42ae35765b3104e7eda25a40f23c874d1d84119188103455ec2
5
5
  SHA512:
6
- metadata.gz: 9fd308b092cc628c162325f8b126d570bb694369c1c5ee75e055e9cdf4dad7ff93dc49cd773c18926a6f098b59018e32211795eca31ec12cd7b3a66d5f588d33
7
- data.tar.gz: a954391ed407a58fda0072d9fc36e7d837ec22518025582f2bbd5389a4fbfd41254ce18d484e69d1ac1c4f63094d545ba572ffc3ce80850a3651b737453e1687
6
+ metadata.gz: 2ee7a63b776ef727792796a699c5e9e31d29a947c0d274f017eedea3e5cb750fdeea3a5b18ed772fb7eb17766ad3b9c8a75335719b748438f5762ce670ce4f50
7
+ data.tar.gz: f56a0be90898ced09076f5fdcf16a35616d5586eec450027e8eabf63cf5fd549f14c63a76ceefda0507ea833fb6580ac21eaec6704b61e10f3428fb43c15cc8b
@@ -50,6 +50,8 @@ module EacRailsBase0
50
50
  def aranha_main_menu_admin_entries
51
51
  {
52
52
  ::Aranha::Address.model_name.human(count: 2) => [aranha.addresses_path],
53
+ ::Aranha::ProcessorConfiguration.model_name.human(count: 2) =>
54
+ [aranha.processor_configurations_path],
53
55
  ::Aranha::StartPoint.model_name.human(count: 2) => [aranha.start_points_path]
54
56
  }
55
57
  end
@@ -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
- ::EacRailsBase0::BooleanValue.to_b(ENV['action_mailer_smtp_enable_starttls_auto'])
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}"]
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/speaker'
4
+ require 'eac_ruby_utils/speaker'
5
+
6
+ unless ::EacRubyUtils::Speaker.context.optional_current
7
+ ::EacRubyUtils::Speaker.context.push(::EacCli::Speaker.new)
8
+ end
@@ -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'
@@ -58,6 +58,7 @@ module EacRailsBase0
58
58
 
59
59
  can :manage, ::EacUsersSupport::User
60
60
  can :manage, ::Aranha::Address
61
+ can :manage, ::Aranha::ProcessorConfiguration
61
62
  can :manage, ::Aranha::StartPoint
62
63
  can :manage, ::BrRailties::FederalUnit
63
64
  can :manage, ::BrRailties::Municipality
@@ -12,8 +12,7 @@ module EacRailsBase0
12
12
  map_devise
13
13
  map_devise_invitable
14
14
  map_controller 'EacUsersSupport::Admin::Users', :manage, ::EacUsersSupport::User
15
- map_controller 'Aranha::Addresses', :manage, ::Aranha::Address
16
- map_controller 'Aranha::StartPoints', :manage, ::Aranha::StartPoint
15
+ map_aranha
17
16
  map_controller 'BrRailties::FederalUnits', :manage, ::BrRailties::FederalUnit
18
17
  map_controller 'BrRailties::Municipalities', :manage, ::BrRailties::Municipality
19
18
  map_controller 'ScheduledTasks', :manage, ::ScheduledTask
@@ -24,6 +23,12 @@ module EacRailsBase0
24
23
  def map_eac_rails_base0
25
24
  map_controller 'EacRailsBase0::Mailer', :manage, :eac_rails_base0_mailer
26
25
  end
26
+
27
+ def map_aranha
28
+ map_controller 'Aranha::Addresses', :manage, ::Aranha::Address
29
+ map_controller 'Aranha::ProcessorConfigurations', :manage, ::Aranha::ProcessorConfiguration
30
+ map_controller 'Aranha::StartPoints', :manage, ::Aranha::StartPoint
31
+ end
27
32
  end
28
33
  end
29
34
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module EacRailsBase0
6
+ module Rspec
7
+ require_sub __FILE__
8
+ end
9
+ end
@@ -0,0 +1,114 @@
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
+ module Setup
9
+ def self.extended(obj)
10
+ return unless obj.rails_app_path
11
+
12
+ %w[engines admin_user non_admin_user admin_example non_admin_example
13
+ anonymous_example].each do |m|
14
+ obj.send("setup_#{m}")
15
+ end
16
+ end
17
+
18
+ private
19
+
20
+ def setup_engines
21
+ ::FactoryBot.definition_file_paths += ::EacRailsBase0::XEngine.local.flat_map do |engine|
22
+ %w[factories test/factories spec/factories].map do |subpath|
23
+ engine.config.root.join(subpath).to_path
24
+ end
25
+ end
26
+ ::FactoryBot.find_definitions
27
+ end
28
+
29
+ def setup_admin_user
30
+ ::FactoryBot.define do
31
+ factory :admin_user, class: ::EacUsersSupport::User do
32
+ email { 'admin@example.com' }
33
+ password { 'mysecret' }
34
+ confirmed_at { ::Time.zone.now }
35
+ end
36
+ end
37
+ end
38
+
39
+ def setup_non_admin_user
40
+ ::FactoryBot.define do
41
+ factory :non_admin_user, class: ::EacUsersSupport::User do
42
+ email { 'nonadmin@example.com' }
43
+ password { 'mysecret' }
44
+ confirmed_at { ::Time.zone.now }
45
+ end
46
+ end
47
+ end
48
+
49
+ def setup_admin_example # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
50
+ ::RSpec.shared_context 'when user is admin', shared_context: :metadata do
51
+ let(:user) { ::FactoryBot.create(:admin_user) }
52
+
53
+ before do
54
+ visit '/users/sign_in'
55
+ fill_in ::I18n.translate!('activerecord.attributes.eac_users_support/user.email'),
56
+ with: user.email
57
+ fill_in ::I18n.translate!('activerecord.attributes.eac_users_support/user.password'),
58
+ with: user.password
59
+ click_button ::I18n.translate!('devise.log_in')
60
+ end
61
+
62
+ it 'user should be logged' do
63
+ expect(page).to have_content user.email
64
+ expect(::EacUsersSupport::User.current_user).not_to be_nil
65
+ end
66
+ end
67
+ end
68
+
69
+ def setup_non_admin_example # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
70
+ ::RSpec.shared_context 'when user is non admin', shared_context: :metadata do
71
+ let(:user) { ::FactoryBot.create(:non_admin_user) }
72
+
73
+ before do
74
+ visit '/users/sign_in'
75
+ fill_in ::I18n.translate!('activerecord.attributes.eac_users_support/user.email'),
76
+ with: user.email
77
+ fill_in ::I18n.translate!('activerecord.attributes.eac_users_support/user.password'),
78
+ with: user.password
79
+ click_button ::I18n.translate!('devise.log_in')
80
+ end
81
+
82
+ it 'user should be logged' do
83
+ expect(page).to have_content user.email
84
+ expect(::EacUsersSupport::User.current_user).not_to be_nil
85
+ end
86
+ end
87
+ end
88
+
89
+ def setup_anonymous_example # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
90
+ ::RSpec.shared_context 'when user is anonymous', shared_context: :metadata do
91
+ before do
92
+ visit '/'
93
+ if link_exist?(::I18n.translate!('devise.log_out'))
94
+ click_link(::I18n.translate!('devise.log_out'))
95
+ elsif !link_exist?(::I18n.translate!('devise.log_in'))
96
+ raise 'login nor logout link found'
97
+ end
98
+ end
99
+
100
+ it 'user should be not logged' do
101
+ expect(::EacUsersSupport::User.current_user).to be_nil
102
+ end
103
+
104
+ def link_exist?(locator) # rubocop:disable Lint/NestedMethodDefinition
105
+ find_link(locator)
106
+ true
107
+ rescue Capybara::ElementNotFound
108
+ false
109
+ end
110
+ end
111
+ end
112
+ end
113
+ end
114
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacRailsBase0
4
- VERSION = '0.52.1'
4
+ VERSION = '0.54.0'
5
5
  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.52.1
4
+ version: 0.54.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: 2020-12-27 00:00:00.000000000 Z
11
+ date: 2021-08-15 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
@@ -50,14 +44,14 @@ dependencies:
50
44
  requirements:
51
45
  - - "~>"
52
46
  - !ruby/object:Gem::Version
53
- version: '0.2'
47
+ version: '0.6'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
51
  requirements:
58
52
  - - "~>"
59
53
  - !ruby/object:Gem::Version
60
- version: '0.2'
54
+ version: '0.6'
61
55
  - !ruby/object:Gem::Dependency
62
56
  name: bootstrap-sass
63
57
  requirement: !ruby/object:Gem::Requirement
@@ -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: eac_rails_utils
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.10'
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.10'
153
+ version: '0.21'
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: 0.21.1
185
157
  - !ruby/object:Gem::Dependency
186
- name: eac_ruby_gem_support
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.1'
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.1'
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,48 +194,34 @@ dependencies:
228
194
  requirements:
229
195
  - - "~>"
230
196
  - !ruby/object:Gem::Version
231
- version: '0.32'
197
+ version: '0.74'
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.32'
204
+ version: '0.74'
239
205
  - !ruby/object:Gem::Dependency
240
206
  name: eac_users_support
241
207
  requirement: !ruby/object:Gem::Requirement
242
208
  requirements:
243
209
  - - "~>"
244
210
  - !ruby/object:Gem::Version
245
- version: '0.8'
211
+ version: '0.9'
246
212
  - - ">="
247
213
  - !ruby/object:Gem::Version
248
- version: 0.8.2
214
+ version: 0.9.1
249
215
  type: :runtime
250
216
  prerelease: false
251
217
  version_requirements: !ruby/object:Gem::Requirement
252
218
  requirements:
253
219
  - - "~>"
254
220
  - !ruby/object:Gem::Version
255
- version: '0.8'
221
+ version: '0.9'
256
222
  - - ">="
257
223
  - !ruby/object:Gem::Version
258
- 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'
224
+ version: 0.9.1
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
@@ -529,47 +467,53 @@ dependencies:
529
467
  - !ruby/object:Gem::Version
530
468
  version: 1.3.0
531
469
  - !ruby/object:Gem::Dependency
532
- name: web-console
470
+ name: pg
533
471
  requirement: !ruby/object:Gem::Requirement
534
472
  requirements:
535
473
  - - "~>"
536
474
  - !ruby/object:Gem::Version
537
- version: '2.0'
475
+ version: '0.15'
538
476
  type: :runtime
539
477
  prerelease: false
540
478
  version_requirements: !ruby/object:Gem::Requirement
541
479
  requirements:
542
480
  - - "~>"
543
481
  - !ruby/object:Gem::Version
544
- version: '2.0'
482
+ version: '0.15'
545
483
  - !ruby/object:Gem::Dependency
546
- name: pg
484
+ name: rails_12factor
547
485
  requirement: !ruby/object:Gem::Requirement
548
486
  requirements:
549
- - - "~>"
487
+ - - ">="
550
488
  - !ruby/object:Gem::Version
551
- version: '0.15'
489
+ version: '0'
552
490
  type: :runtime
553
491
  prerelease: false
554
492
  version_requirements: !ruby/object:Gem::Requirement
555
493
  requirements:
556
- - - "~>"
494
+ - - ">="
557
495
  - !ruby/object:Gem::Version
558
- version: '0.15'
496
+ version: '0'
559
497
  - !ruby/object:Gem::Dependency
560
- name: rails_12factor
498
+ name: eac_rails_gem_support
561
499
  requirement: !ruby/object:Gem::Requirement
562
500
  requirements:
501
+ - - "~>"
502
+ - !ruby/object:Gem::Version
503
+ version: '0.1'
563
504
  - - ">="
564
505
  - !ruby/object:Gem::Version
565
- version: '0'
566
- type: :runtime
506
+ version: 0.1.1
507
+ type: :development
567
508
  prerelease: false
568
509
  version_requirements: !ruby/object:Gem::Requirement
569
510
  requirements:
511
+ - - "~>"
512
+ - !ruby/object:Gem::Version
513
+ version: '0.1'
570
514
  - - ">="
571
515
  - !ruby/object:Gem::Version
572
- version: '0'
516
+ version: 0.1.1
573
517
  description:
574
518
  email:
575
519
  executables:
@@ -625,6 +569,7 @@ files:
625
569
  - config/initializers/mime_types.rb
626
570
  - config/initializers/patches.rb
627
571
  - config/initializers/session_store.rb
572
+ - config/initializers/speaker.rb
628
573
  - config/initializers/wrap_parameters.rb
629
574
  - config/locales/en.yml
630
575
  - config/locales/pt-BR.yml
@@ -663,15 +608,12 @@ files:
663
608
  - lib/eac_rails_base0/app_generator/templates/config/routes.rb
664
609
  - lib/eac_rails_base0/app_generator/templates/gitignore
665
610
  - lib/eac_rails_base0/app_generator/templates/lib/local_plugins.rb
666
- - lib/eac_rails_base0/boolean_value.rb
667
611
  - lib/eac_rails_base0/engine.rb
668
612
  - lib/eac_rails_base0/gems.rb
669
613
  - lib/eac_rails_base0/patches/eac_rails_utils_links_helper_patch.rb
670
614
  - lib/eac_rails_base0/patches/url_for_patch.rb
671
- - lib/eac_rails_base0/spec_helper.rb
672
- - lib/eac_rails_base0/spec_helper/capybara.rb
673
- - lib/eac_rails_base0/spec_helper/eac_users_support.rb
674
- - lib/eac_rails_base0/spec_helper/factory_bot.rb
615
+ - lib/eac_rails_base0/rspec.rb
616
+ - lib/eac_rails_base0/rspec/setup.rb
675
617
  - lib/eac_rails_base0/version.rb
676
618
  - lib/eac_rails_base0/x_engine.rb
677
619
  - lib/fog.rb
@@ -708,7 +650,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
708
650
  - !ruby/object:Gem::Version
709
651
  version: '0'
710
652
  requirements: []
711
- rubygems_version: 3.0.8
653
+ rubygems_version: 3.1.6
712
654
  signing_key:
713
655
  specification_version: 4
714
656
  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,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'capybara/rspec'
4
-
5
- RSpec.configure do |config|
6
- config.include Capybara::DSL, file_path: 'spec/requests'
7
- end
@@ -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)