eac_rails_base0 0.52.2 → 0.55.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: 97b2aceeb99f1416d6e957212b8711dece7fa858f3688e21949ec8db172f8443
4
- data.tar.gz: 1ff24528f450aec8085274adfefd4d46b1df1ef9524afa4b074f16d5f16f5abe
3
+ metadata.gz: 96633b3ccfdc719249e98c99493d5e1dd1fd8200b7827abdb872c90da00c07fc
4
+ data.tar.gz: f611a56f2e790a3f662c2894a55371269cb9f771a0c8c769897838fb9ee99dd1
5
5
  SHA512:
6
- metadata.gz: 6af83918b2c682880880572ba53a7401d84947996d61d3e68ec329c6f512ad18e5c76992699fa879e292848c8ca5f56080e67203be52742b2a040e92d78e91c2
7
- data.tar.gz: 4c92d69dfabb26d934e9cc5e14c3faf4d9ce45263b033ae85ed1a0772607893757a22f5e9c0fab62109549e1e19d00ac2bceb4d73d08b7bb0feb3179495a2ba8
6
+ metadata.gz: 782d98f134bf8cd69f8504516e2b6868866a0c3a1c468044f872405ae0e6215004d52b7b70a1f346bc8534453692cce648a014f00472d2c42a9e56db8fe7282c
7
+ data.tar.gz: 9128b387a343b1ee71db6262f0ce4329c5575fae8444b21dddb0f6e89964d6c59896c618f0f16f987f52416af158407e15f5842338e3848e52f60cca7808d68c
@@ -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
@@ -8,9 +8,9 @@ module EacRailsBase0
8
8
  r[current_user.to_s] = {
9
9
  'Alterar senha' => [eac_users_support.edit_user_registration_path]
10
10
  }
11
- r['Sair'] = [eac_users_support.destroy_user_session_path, link_method: :delete]
11
+ r[t('devise.log_out')] = [eac_users_support.destroy_user_session_path, link_method: :delete]
12
12
  else
13
- r['Entrar'] = [eac_users_support.new_user_session_path]
13
+ r[t('devise.log_in')] = [eac_users_support.new_user_session_path]
14
14
  end
15
15
  r
16
16
  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
@@ -1,4 +1,8 @@
1
1
  en:
2
+ devise:
3
+ log_in: Log in
4
+ log_out: Log out
5
+ update_password: Update password
2
6
  eac_rails_base0:
3
7
  mailer:
4
8
  info: 'E-mail information'
@@ -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
@@ -6,7 +6,7 @@ module EacRailsBase0App
6
6
  class Application < Rails::Application
7
7
  module All
8
8
  common_concern do
9
- setup('assets_cache', 'dependencies', 'localization', 'load_paths', 'loggers')
9
+ setup('app_root', 'assets_cache', 'dependencies', 'localization', 'load_paths', 'loggers')
10
10
  end
11
11
 
12
12
  module ClassMethods
@@ -14,11 +14,10 @@ module EacRailsBase0App
14
14
  ::File.join(::Dir.tmpdir, ::Rails.root.to_path.parameterize, 'tmp')
15
15
  end
16
16
 
17
- def rails_root(dir)
18
- return dir if ::File.exist?(::File.join(dir, 'config.ru'))
19
- raise 'config.ru not found in ascendent path' if dir == '/'
17
+ def setup_app_root
18
+ return unless defined?(APP_PATH)
20
19
 
21
- rails_root(::File.dirname(dir))
20
+ config.root = find_root(APP_PATH)
22
21
  end
23
22
 
24
23
  def setup_assets_cache
@@ -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.2'
4
+ VERSION = '0.55.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eac_rails_base0
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.52.2
4
+ version: 0.55.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: 2021-04-01 00:00:00.000000000 Z
11
+ date: 2021-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_scaffold
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.2'
47
+ version: '0.6'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.2'
54
+ version: '0.6'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bootstrap-sass
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -86,20 +86,6 @@ dependencies:
86
86
  - - ">="
87
87
  - !ruby/object:Gem::Version
88
88
  version: 0.4.1
89
- - !ruby/object:Gem::Dependency
90
- name: byebug
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: '0'
96
- type: :runtime
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- version: '0'
103
89
  - !ruby/object:Gem::Dependency
104
90
  name: can_can_dry
105
91
  requirement: !ruby/object:Gem::Requirement
@@ -114,20 +100,6 @@ dependencies:
114
100
  - - "~>"
115
101
  - !ruby/object:Gem::Version
116
102
  version: '0.5'
117
- - !ruby/object:Gem::Dependency
118
- name: capybara
119
- requirement: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: '0'
124
- type: :runtime
125
- prerelease: false
126
- version_requirements: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - ">="
129
- - !ruby/object:Gem::Version
130
- version: '0'
131
103
  - !ruby/object:Gem::Dependency
132
104
  name: carrierwave
133
105
  requirement: !ruby/object:Gem::Requirement
@@ -163,39 +135,39 @@ dependencies:
163
135
  - !ruby/object:Gem::Version
164
136
  version: 4.2.2
165
137
  - !ruby/object:Gem::Dependency
166
- name: eac_rails_utils
138
+ name: eac_cli
167
139
  requirement: !ruby/object:Gem::Requirement
168
140
  requirements:
169
141
  - - "~>"
170
142
  - !ruby/object:Gem::Version
171
- version: '0.10'
143
+ version: '0.21'
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: 0.21.1
172
147
  type: :runtime
173
148
  prerelease: false
174
149
  version_requirements: !ruby/object:Gem::Requirement
175
150
  requirements:
176
151
  - - "~>"
177
152
  - !ruby/object:Gem::Version
178
- version: '0.10'
153
+ version: '0.21'
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: 0.21.1
179
157
  - !ruby/object:Gem::Dependency
180
- name: eac_ruby_gem_support
158
+ name: eac_rails_utils
181
159
  requirement: !ruby/object:Gem::Requirement
182
160
  requirements:
183
161
  - - "~>"
184
162
  - !ruby/object:Gem::Version
185
- version: '0.1'
186
- - - ">="
187
- - !ruby/object:Gem::Version
188
- version: 0.1.1
163
+ version: '0.10'
189
164
  type: :runtime
190
165
  prerelease: false
191
166
  version_requirements: !ruby/object:Gem::Requirement
192
167
  requirements:
193
168
  - - "~>"
194
169
  - !ruby/object:Gem::Version
195
- version: '0.1'
196
- - - ">="
197
- - !ruby/object:Gem::Version
198
- version: 0.1.1
170
+ version: '0.10'
199
171
  - !ruby/object:Gem::Dependency
200
172
  name: eac_ruby_gems_utils
201
173
  requirement: !ruby/object:Gem::Requirement
@@ -222,48 +194,34 @@ dependencies:
222
194
  requirements:
223
195
  - - "~>"
224
196
  - !ruby/object:Gem::Version
225
- version: '0.32'
197
+ version: '0.74'
226
198
  type: :runtime
227
199
  prerelease: false
228
200
  version_requirements: !ruby/object:Gem::Requirement
229
201
  requirements:
230
202
  - - "~>"
231
203
  - !ruby/object:Gem::Version
232
- version: '0.32'
204
+ version: '0.74'
233
205
  - !ruby/object:Gem::Dependency
234
206
  name: eac_users_support
235
207
  requirement: !ruby/object:Gem::Requirement
236
208
  requirements:
237
209
  - - "~>"
238
210
  - !ruby/object:Gem::Version
239
- version: '0.8'
211
+ version: '0.9'
240
212
  - - ">="
241
213
  - !ruby/object:Gem::Version
242
- version: 0.8.2
214
+ version: 0.9.3
243
215
  type: :runtime
244
216
  prerelease: false
245
217
  version_requirements: !ruby/object:Gem::Requirement
246
218
  requirements:
247
219
  - - "~>"
248
220
  - !ruby/object:Gem::Version
249
- version: '0.8'
221
+ version: '0.9'
250
222
  - - ">="
251
223
  - !ruby/object:Gem::Version
252
- version: 0.8.2
253
- - !ruby/object:Gem::Dependency
254
- name: factory_bot_rails
255
- requirement: !ruby/object:Gem::Requirement
256
- requirements:
257
- - - "~>"
258
- - !ruby/object:Gem::Version
259
- version: '4.0'
260
- type: :runtime
261
- prerelease: false
262
- version_requirements: !ruby/object:Gem::Requirement
263
- requirements:
264
- - - "~>"
265
- - !ruby/object:Gem::Version
266
- version: '4.0'
224
+ version: 0.9.3
267
225
  - !ruby/object:Gem::Dependency
268
226
  name: fog-aws
269
227
  requirement: !ruby/object:Gem::Requirement
@@ -424,20 +382,6 @@ dependencies:
424
382
  - - ">="
425
383
  - !ruby/object:Gem::Version
426
384
  version: 3.10.1
427
- - !ruby/object:Gem::Dependency
428
- name: rspec-rails
429
- requirement: !ruby/object:Gem::Requirement
430
- requirements:
431
- - - "~>"
432
- - !ruby/object:Gem::Version
433
- version: '3.7'
434
- type: :runtime
435
- prerelease: false
436
- version_requirements: !ruby/object:Gem::Requirement
437
- requirements:
438
- - - "~>"
439
- - !ruby/object:Gem::Version
440
- version: '3.7'
441
385
  - !ruby/object:Gem::Dependency
442
386
  name: sass-rails
443
387
  requirement: !ruby/object:Gem::Requirement
@@ -522,20 +466,6 @@ dependencies:
522
466
  - - ">="
523
467
  - !ruby/object:Gem::Version
524
468
  version: 1.3.0
525
- - !ruby/object:Gem::Dependency
526
- name: web-console
527
- requirement: !ruby/object:Gem::Requirement
528
- requirements:
529
- - - "~>"
530
- - !ruby/object:Gem::Version
531
- version: '2.0'
532
- type: :runtime
533
- prerelease: false
534
- version_requirements: !ruby/object:Gem::Requirement
535
- requirements:
536
- - - "~>"
537
- - !ruby/object:Gem::Version
538
- version: '2.0'
539
469
  - !ruby/object:Gem::Dependency
540
470
  name: pg
541
471
  requirement: !ruby/object:Gem::Requirement
@@ -564,6 +494,20 @@ dependencies:
564
494
  - - ">="
565
495
  - !ruby/object:Gem::Version
566
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.3'
504
+ type: :development
505
+ prerelease: false
506
+ version_requirements: !ruby/object:Gem::Requirement
507
+ requirements:
508
+ - - "~>"
509
+ - !ruby/object:Gem::Version
510
+ version: '0.3'
567
511
  description:
568
512
  email:
569
513
  executables:
@@ -619,6 +563,7 @@ files:
619
563
  - config/initializers/mime_types.rb
620
564
  - config/initializers/patches.rb
621
565
  - config/initializers/session_store.rb
566
+ - config/initializers/speaker.rb
622
567
  - config/initializers/wrap_parameters.rb
623
568
  - config/locales/en.yml
624
569
  - config/locales/pt-BR.yml
@@ -657,15 +602,12 @@ files:
657
602
  - lib/eac_rails_base0/app_generator/templates/config/routes.rb
658
603
  - lib/eac_rails_base0/app_generator/templates/gitignore
659
604
  - lib/eac_rails_base0/app_generator/templates/lib/local_plugins.rb
660
- - lib/eac_rails_base0/boolean_value.rb
661
605
  - lib/eac_rails_base0/engine.rb
662
606
  - lib/eac_rails_base0/gems.rb
663
607
  - lib/eac_rails_base0/patches/eac_rails_utils_links_helper_patch.rb
664
608
  - lib/eac_rails_base0/patches/url_for_patch.rb
665
- - lib/eac_rails_base0/spec_helper.rb
666
- - lib/eac_rails_base0/spec_helper/capybara.rb
667
- - lib/eac_rails_base0/spec_helper/eac_users_support.rb
668
- - lib/eac_rails_base0/spec_helper/factory_bot.rb
609
+ - lib/eac_rails_base0/rspec.rb
610
+ - lib/eac_rails_base0/rspec/setup.rb
669
611
  - lib/eac_rails_base0/version.rb
670
612
  - lib/eac_rails_base0/x_engine.rb
671
613
  - lib/fog.rb
@@ -702,7 +644,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
702
644
  - !ruby/object:Gem::Version
703
645
  version: '0'
704
646
  requirements: []
705
- rubygems_version: 3.0.9
647
+ rubygems_version: 3.1.6
706
648
  signing_key:
707
649
  specification_version: 4
708
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,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)