devise_specs 0.0.5 → 0.0.7
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/.rubocop.yml +18 -0
- data/.travis.yml +1 -1
- data/Gemfile +2 -0
- data/README.md +132 -11
- data/Rakefile +2 -0
- data/devise_specs.gemspec +7 -5
- data/lib/devise/specs/railtie.rb +2 -0
- data/lib/devise_specs.rb +2 -0
- data/lib/generators/devise/specs_generator.rb +14 -10
- data/lib/generators/devise/templates/devise.rb.tt +2 -0
- data/lib/generators/devise/templates/factory_bot.rb.tt +2 -0
- data/lib/generators/devise/templates/resource_resets_password_spec.rb.tt +3 -1
- data/lib/generators/devise/templates/resource_signs_in_spec.rb.tt +7 -5
- data/lib/generators/devise/templates/resource_signs_out_spec.rb.tt +6 -4
- data/lib/generators/devise/templates/resource_signs_up_spec.rb.tt +7 -5
- metadata +18 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6a1cff4227df932e424d78abf6edb5b7ea7c1967ba78abc6c2f71f7773393a11
|
4
|
+
data.tar.gz: 511be708c002602adb73dd8875b59eef83e7030340904cb1cde25f625ad5f08d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12a2d48080c2e790f1df127f1d0610c68b40ae86e7f546b65594c7580bac69f622d484fe8b4e596fcac732e0c0b89ae501722d4e3ef2709faa29320416afb2ec
|
7
|
+
data.tar.gz: 156d45d57be65190824d54bc77154f46f7a9440672698793f484d61f7d56a10a14e4f2317b1d21c8364fd8444f92c4cd9a8abb3d42de395a1de5f1a53f49fe97
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
AllCops:
|
2
|
+
TargetRubyVersion: 2.7
|
3
|
+
Layout/EmptyLineAfterMagicComment:
|
4
|
+
AutoCorrect: true
|
5
|
+
Style/FrozenStringLiteralComment:
|
6
|
+
AutoCorrect: true
|
7
|
+
Style/StringLiterals:
|
8
|
+
AutoCorrect: true
|
9
|
+
Style/ClassAndModuleChildren:
|
10
|
+
AutoCorrect: true
|
11
|
+
Style/HashSyntax:
|
12
|
+
AutoCorrect: true
|
13
|
+
Style/HashEachMethods:
|
14
|
+
Enabled: true
|
15
|
+
Style/HashTransformKeys:
|
16
|
+
Enabled: true
|
17
|
+
Style/HashTransformValues:
|
18
|
+
Enabled: true
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# devise_specs
|
2
2
|
|
3
|
-
|
3
|
+
Drop-in upgrade of legacy `devise-specs` gem.
|
4
|
+
|
5
|
+
`devise_specs` is a Rails generator that adds the Devise authentication acceptance tests when you run the `devise` generator. The tests are RSpec feature specs containing Factory Bot or Fabrication fixture replacement methods and Capybara actions.
|
4
6
|
|
5
7
|
Generated feature specs test the following features:
|
6
8
|
* Registration
|
@@ -36,12 +38,12 @@ and then run `bundle install`.
|
|
36
38
|
|
37
39
|
Generate the RSpec configuratoin files:
|
38
40
|
```
|
39
|
-
$ rails generate rspec:install
|
41
|
+
$ bundle exec rails generate rspec:install
|
40
42
|
```
|
41
43
|
|
42
44
|
Generate the Devise configuration files and follow the setup instructions to define the default url options, root route and flash messages:
|
43
45
|
```
|
44
|
-
$ rails generate devise:install
|
46
|
+
$ bundle exec rails generate devise:install
|
45
47
|
```
|
46
48
|
|
47
49
|
Configure the Action Mailer URL options for the test environment using the following line in `config/environments/test.rb`:
|
@@ -49,21 +51,139 @@ Configure the Action Mailer URL options for the test environment using the follo
|
|
49
51
|
config.action_mailer.default_url_options = { host: 'localhost', port: 3001 }
|
50
52
|
```
|
51
53
|
|
52
|
-
Add the authentication links to the layout
|
54
|
+
Add the authentication links to the layout in `app/views/layouts/application.html.erb`, `user_signed_in?` should be `admin_signed_in?` if your Devise model is `Admin`:
|
53
55
|
```erb
|
56
|
+
<%= stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
|
57
|
+
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
|
58
|
+
</head>
|
59
|
+
|
60
|
+
<body>
|
61
|
+
<p class='notice'><%= notice %></p>
|
62
|
+
<p class='alert'><%= alert %></p>
|
63
|
+
<ul class="hmenu">
|
64
|
+
<%= render 'devise/menu/account_items' %>
|
65
|
+
</ul>
|
66
|
+
<%= yield %>
|
67
|
+
</body>
|
68
|
+
|
69
|
+
```
|
70
|
+
|
71
|
+
In `app/views/devise/menu/_account_items.html.erb`, please add:
|
72
|
+
```ruby
|
54
73
|
<% if user_signed_in? %>
|
55
|
-
|
74
|
+
<li>
|
75
|
+
<%= link_to('Edit registration', edit_user_registration_path) %>
|
76
|
+
</li>
|
77
|
+
<li>
|
78
|
+
<%= link_to('Sign out', destroy_user_session_path, method: :delete) %>
|
79
|
+
</li>
|
56
80
|
<% else %>
|
57
|
-
|
58
|
-
|
81
|
+
<li>
|
82
|
+
<%- if controller_name != 'sessions' %>
|
83
|
+
<%= link_to 'Sign in', new_session_path(resource_name) %>
|
84
|
+
<% end %>
|
85
|
+
</li>
|
86
|
+
<li>
|
87
|
+
<%- if devise_mapping.registerable? && controller_name != 'registrations' %>
|
88
|
+
<%= link_to 'Create an account', new_registration_path(resource_name) %><br />
|
89
|
+
<% end %>
|
90
|
+
</li>
|
59
91
|
<% end %>
|
92
|
+
|
93
|
+
```
|
94
|
+
|
95
|
+
In `app/views/devise/shared/_links.html.erb`, verify you only have the following:
|
96
|
+
```ruby
|
97
|
+
<%- if devise_mapping.recoverable? && controller_name != 'passwords' && controller_name != 'registrations' %>
|
98
|
+
<%= link_to 'Forgot your password?', new_password_path(resource_name) %><br />
|
99
|
+
<% end %>
|
100
|
+
|
101
|
+
<%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
|
102
|
+
<%= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name) %><br />
|
103
|
+
<% end %>
|
104
|
+
|
105
|
+
<%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %>
|
106
|
+
<%= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name) %><br />
|
107
|
+
<% end %>
|
108
|
+
|
109
|
+
<%- if devise_mapping.omniauthable? %>
|
110
|
+
<%- resource_class.omniauth_providers.each do |provider| %>
|
111
|
+
<%= link_to "Sign in with #{OmniAuth::Utils.camelize(provider)}", omniauth_authorize_path(resource_name, provider) %><br />
|
112
|
+
<% end %>
|
113
|
+
<% end %>
|
114
|
+
|
115
|
+
```
|
116
|
+
|
117
|
+
In `app/views/devise/sessions/new.html.erb`, add:
|
118
|
+
```ruby
|
119
|
+
<h2>Sign in</h2>
|
120
|
+
|
121
|
+
<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
|
122
|
+
<div class="field">
|
123
|
+
<%= f.label :email %><br />
|
124
|
+
<%= f.email_field :email, autofocus: true, autocomplete: 'email' %>
|
125
|
+
</div>
|
126
|
+
|
127
|
+
<div class="field">
|
128
|
+
<%= f.label :password %><br />
|
129
|
+
<%= f.password_field :password, autocomplete: 'current-password' %>
|
130
|
+
</div>
|
131
|
+
|
132
|
+
<% if devise_mapping.rememberable? %>
|
133
|
+
<div class="field">
|
134
|
+
<%= f.check_box :remember_me %>
|
135
|
+
<%= f.label :remember_me %>
|
136
|
+
</div>
|
137
|
+
<% end %>
|
138
|
+
|
139
|
+
<div class="actions">
|
140
|
+
<%= f.submit 'Sign in' %>
|
141
|
+
</div>
|
142
|
+
<% end %>
|
143
|
+
|
144
|
+
<%= render 'devise/shared/links' %>
|
145
|
+
|
146
|
+
```
|
147
|
+
|
148
|
+
In `app/views/devise/registrations/new.html.erb`, add:
|
149
|
+
```ruby
|
150
|
+
<h2>Create your Account</h2>
|
151
|
+
|
152
|
+
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
|
153
|
+
<%= render 'devise/shared/error_messages', resource: resource %>
|
154
|
+
|
155
|
+
<div class="field">
|
156
|
+
<%= f.label :email %><br />
|
157
|
+
<%= f.email_field :email, autofocus: true, autocomplete: 'email' %>
|
158
|
+
</div>
|
159
|
+
|
160
|
+
<div class="field">
|
161
|
+
<%= f.label :password %>
|
162
|
+
<% if @minimum_password_length %>
|
163
|
+
<em>(<%= @minimum_password_length %> characters minimum)</em>
|
164
|
+
<% end %><br />
|
165
|
+
<%= f.password_field :password, autocomplete: 'new-password' %>
|
166
|
+
</div>
|
167
|
+
|
168
|
+
<div class="field">
|
169
|
+
<%= f.label :password_confirmation %><br />
|
170
|
+
<%= f.password_field :password_confirmation, autocomplete: 'new-password' %>
|
171
|
+
</div>
|
172
|
+
|
173
|
+
<div class="actions">
|
174
|
+
<%= f.submit 'Create Account' %>
|
175
|
+
</div>
|
176
|
+
<% end %>
|
177
|
+
|
178
|
+
<%= render 'devise/shared/links' %>
|
179
|
+
|
60
180
|
```
|
61
181
|
|
62
182
|
## Usage
|
63
183
|
|
64
184
|
Specs are created automatically when you generate a Devise model, e.g. `User`:
|
65
185
|
```
|
66
|
-
$ rails generate devise User
|
186
|
+
$ bundle exec rails generate devise User
|
67
187
|
...
|
68
188
|
invoke specs
|
69
189
|
gsub spec/rails_helper.rb
|
@@ -78,7 +198,7 @@ $ rails generate devise User
|
|
78
198
|
|
79
199
|
If a Devise model is already present, run the `devise:specs` generator directly:
|
80
200
|
```
|
81
|
-
$ rails generate devise:specs User
|
201
|
+
$ bundle exec rails generate devise:specs User
|
82
202
|
```
|
83
203
|
|
84
204
|
Run the migrations:
|
@@ -91,13 +211,14 @@ Make sure the specs pass:
|
|
91
211
|
$ rspec spec/features
|
92
212
|
.........
|
93
213
|
|
94
|
-
Finished in
|
214
|
+
Finished in 0.93371 seconds (files took 1.88 seconds to load)
|
95
215
|
9 examples, 0 failures
|
216
|
+
|
96
217
|
```
|
97
218
|
|
98
219
|
## Documentation
|
99
220
|
|
100
|
-
Visit the [Relish docs](https://relishapp.com/andrii/devise_specs/docs) for all the available features and examples of the generated feature specs.
|
221
|
+
Visit the [Relish docs](https://relishapp.com/andrii/devise_specs/docs) for all the available features and legacy examples of the generated feature specs.
|
101
222
|
|
102
223
|
## Output
|
103
224
|
|
data/Rakefile
CHANGED
data/devise_specs.gemspec
CHANGED
@@ -1,17 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
Gem::Specification.new do |s|
|
2
4
|
s.name = 'devise_specs'
|
3
|
-
s.version = '0.0.
|
5
|
+
s.version = '0.0.7'
|
4
6
|
s.authors = ["Gaspard d'Hautefeuille"]
|
5
7
|
s.email = 'ruby@dhautefeuille.eu'
|
6
|
-
s.summary = 'Generates the Devise acceptance tests
|
8
|
+
s.summary = 'Drop-in upgrade of legacy devise-specs gem. Generates the Devise acceptance tests for Rails 6+.'
|
7
9
|
s.homepage = 'https://github.com/HLFH/devise_specs'
|
8
10
|
s.license = 'MIT'
|
9
11
|
s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(spec|features|fixtures)/}) }
|
10
|
-
|
11
|
-
s.required_ruby_version = '>= 2.
|
12
|
+
|
13
|
+
s.required_ruby_version = '>= 2.7'
|
12
14
|
|
13
15
|
s.add_runtime_dependency 'devise', '~> 4.7', '>= 4.7.1'
|
14
16
|
|
15
|
-
s.add_development_dependency 'rake', '~> 13.0', '>= 13.0.1'
|
16
17
|
s.add_development_dependency 'aruba', '~> 1.0'
|
18
|
+
s.add_development_dependency 'rake', '~> 13.0', '>= 13.0.1'
|
17
19
|
end
|
data/lib/devise/specs/railtie.rb
CHANGED
data/lib/devise_specs.rb
CHANGED
@@ -1,11 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Devise
|
2
4
|
module Generators
|
3
5
|
class SpecsGenerator < Rails::Generators::NamedBase
|
4
6
|
ATTRIBUTES = %(
|
5
|
-
email 'username@example.com'
|
6
|
-
password 'password')
|
7
|
+
email { 'username@example.com' }
|
8
|
+
password { 'password' })
|
7
9
|
|
8
|
-
source_root File.expand_path(
|
10
|
+
source_root File.expand_path('templates', __dir__)
|
9
11
|
|
10
12
|
def require_supporting_files
|
11
13
|
uncomment_lines 'spec/rails_helper.rb', /spec.support.*rb.*require/
|
@@ -52,19 +54,21 @@ module Devise
|
|
52
54
|
end
|
53
55
|
|
54
56
|
def insert_factory_bot_attributes
|
55
|
-
|
56
|
-
|
57
|
-
|
57
|
+
frozen = "# frozen_string_literal: true\n\n"
|
58
|
+
path = "spec/factories/#{plural_name}.rb"
|
59
|
+
attrs = "#{ATTRIBUTES.gsub(/^ {4}/, '')}\n end\nend\n"
|
60
|
+
data = "FactoryBot.define do\n factory :#{singular_name} do"
|
58
61
|
|
59
|
-
create_file path, data + attrs
|
62
|
+
create_file path, frozen + data + attrs
|
60
63
|
end
|
61
64
|
|
62
65
|
def insert_fabrication_attributes
|
63
|
-
|
64
|
-
|
66
|
+
frozen = "# frozen_string_literal: true\n\n"
|
67
|
+
path = "spec/fabricators/#{singular_name}_fabricator.rb"
|
68
|
+
attrs = "#{ATTRIBUTES.gsub(/^ {6}/, '')}\nend\n"
|
65
69
|
after = "Fabricator(:#{singular_name}) do"
|
66
70
|
|
67
|
-
create_file path, data + attrs
|
71
|
+
create_file path, frozen + data + attrs
|
68
72
|
end
|
69
73
|
end
|
70
74
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rails_helper'
|
2
4
|
|
3
5
|
feature '<%= human_name %> resets a password' do
|
@@ -40,7 +42,7 @@ feature '<%= human_name %> resets a password' do
|
|
40
42
|
click_button 'Change my password'
|
41
43
|
|
42
44
|
expect(page).to have_text 'Your password has been changed successfully.'
|
43
|
-
expect(page).to have_current_path
|
45
|
+
expect(page).to have_current_path authenticated_root_path
|
44
46
|
end
|
45
47
|
|
46
48
|
scenario 'password reset token is invalid' do
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rails_helper'
|
2
4
|
|
3
5
|
feature '<%= human_name %> signs in' do
|
@@ -12,11 +14,11 @@ feature '<%= human_name %> signs in' do
|
|
12
14
|
|
13
15
|
fill_in 'Email', with: <%= singular_name %>.email
|
14
16
|
fill_in 'Password', with: <%= singular_name %>.password
|
15
|
-
click_button '
|
17
|
+
click_button 'Sign in'
|
16
18
|
|
17
19
|
expect(page).to have_text 'Signed in successfully.'
|
18
|
-
expect(page).to have_link 'Sign
|
19
|
-
expect(page).to have_current_path
|
20
|
+
expect(page).to have_link 'Sign out'
|
21
|
+
expect(page).to have_current_path authenticated_root_path
|
20
22
|
end
|
21
23
|
|
22
24
|
scenario 'with invalid credentials' do
|
@@ -30,9 +32,9 @@ feature '<%= human_name %> signs in' do
|
|
30
32
|
|
31
33
|
fill_in 'Email', with: <%= singular_name %>.email
|
32
34
|
fill_in 'Password', with: <%= singular_name %>.password
|
33
|
-
click_button '
|
35
|
+
click_button 'Sign in'
|
34
36
|
|
35
37
|
expect(page).to have_text 'Invalid Email or password.'
|
36
|
-
expect(page).to have_no_link 'Sign
|
38
|
+
expect(page).to have_no_link 'Sign out'
|
37
39
|
end
|
38
40
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rails_helper'
|
2
4
|
|
3
5
|
feature '<%= human_name %> signs out' do
|
@@ -10,12 +12,12 @@ feature '<%= human_name %> signs out' do
|
|
10
12
|
|
11
13
|
sign_in <%= singular_name %>
|
12
14
|
|
13
|
-
visit
|
15
|
+
visit authenticated_root_path
|
14
16
|
|
15
|
-
click_link 'Sign
|
17
|
+
click_link 'Sign out'
|
16
18
|
|
17
19
|
expect(page).to have_text 'Signed out successfully.'
|
18
|
-
expect(page).to have_no_link 'Sign
|
19
|
-
expect(page).to have_current_path
|
20
|
+
expect(page).to have_no_link 'Sign out'
|
21
|
+
expect(page).to have_current_path unauthenticated_root_path
|
20
22
|
end
|
21
23
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rails_helper'
|
2
4
|
|
3
5
|
feature '<%= human_name %> signs up' do
|
@@ -7,20 +9,20 @@ feature '<%= human_name %> signs up' do
|
|
7
9
|
fill_in 'Email', with: 'username@example.com'
|
8
10
|
fill_in 'Password', with: 'password'
|
9
11
|
fill_in 'Password confirmation', with: 'password'
|
10
|
-
click_button '
|
12
|
+
click_button 'Create Account'
|
11
13
|
|
12
14
|
expect(page).to have_text 'Welcome! You have signed up successfully.'
|
13
|
-
expect(page).to have_link 'Sign
|
14
|
-
expect(page).to have_current_path
|
15
|
+
expect(page).to have_link 'Sign out'
|
16
|
+
expect(page).to have_current_path authenticated_root_path
|
15
17
|
end
|
16
18
|
|
17
19
|
scenario 'with invalid data' do
|
18
20
|
visit new_<%= singular_name %>_registration_path
|
19
21
|
|
20
|
-
click_button '
|
22
|
+
click_button 'Create Account'
|
21
23
|
|
22
24
|
expect(page).to have_text "Email can't be blank"
|
23
25
|
expect(page).to have_text "Password can't be blank"
|
24
|
-
expect(page).to have_no_link 'Sign
|
26
|
+
expect(page).to have_no_link 'Sign out'
|
25
27
|
end
|
26
28
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devise_specs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gaspard d'Hautefeuille
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: devise
|
@@ -31,39 +31,39 @@ dependencies:
|
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 4.7.1
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
34
|
+
name: aruba
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '
|
40
|
-
- - ">="
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
version: 13.0.1
|
39
|
+
version: '1.0'
|
43
40
|
type: :development
|
44
41
|
prerelease: false
|
45
42
|
version_requirements: !ruby/object:Gem::Requirement
|
46
43
|
requirements:
|
47
44
|
- - "~>"
|
48
45
|
- !ruby/object:Gem::Version
|
49
|
-
version: '
|
50
|
-
- - ">="
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version: 13.0.1
|
46
|
+
version: '1.0'
|
53
47
|
- !ruby/object:Gem::Dependency
|
54
|
-
name:
|
48
|
+
name: rake
|
55
49
|
requirement: !ruby/object:Gem::Requirement
|
56
50
|
requirements:
|
57
51
|
- - "~>"
|
58
52
|
- !ruby/object:Gem::Version
|
59
|
-
version: '
|
53
|
+
version: '13.0'
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 13.0.1
|
60
57
|
type: :development
|
61
58
|
prerelease: false
|
62
59
|
version_requirements: !ruby/object:Gem::Requirement
|
63
60
|
requirements:
|
64
61
|
- - "~>"
|
65
62
|
- !ruby/object:Gem::Version
|
66
|
-
version: '
|
63
|
+
version: '13.0'
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 13.0.1
|
67
67
|
description:
|
68
68
|
email: ruby@dhautefeuille.eu
|
69
69
|
executables: []
|
@@ -72,6 +72,7 @@ extra_rdoc_files: []
|
|
72
72
|
files:
|
73
73
|
- ".codeclimate.yml"
|
74
74
|
- ".gitignore"
|
75
|
+
- ".rubocop.yml"
|
75
76
|
- ".travis.yml"
|
76
77
|
- CHANGELOG.md
|
77
78
|
- Gemfile
|
@@ -99,7 +100,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
99
100
|
requirements:
|
100
101
|
- - ">="
|
101
102
|
- !ruby/object:Gem::Version
|
102
|
-
version: 2.
|
103
|
+
version: '2.7'
|
103
104
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
105
|
requirements:
|
105
106
|
- - ">="
|
@@ -109,5 +110,6 @@ requirements: []
|
|
109
110
|
rubygems_version: 3.1.2
|
110
111
|
signing_key:
|
111
112
|
specification_version: 4
|
112
|
-
summary: Generates the Devise acceptance
|
113
|
+
summary: Drop-in upgrade of legacy devise-specs gem. Generates the Devise acceptance
|
114
|
+
tests for Rails 6+.
|
113
115
|
test_files: []
|