rails_apps_pages 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.textile +5 -0
- data/README.textile +14 -23
- data/lib/generators/pages/users/templates/spec/features/users/sign_in_spec.rb +51 -0
- data/lib/generators/pages/users/templates/spec/features/users/sign_out_spec.rb +23 -0
- data/lib/generators/pages/users/templates/spec/features/users/user_delete_spec.rb +2 -2
- data/lib/generators/pages/users/templates/spec/features/users/user_edit_spec.rb +3 -3
- data/lib/generators/pages/users/templates/spec/features/users/user_index_spec.rb +3 -3
- data/lib/generators/pages/users/templates/spec/features/users/user_show_spec.rb +3 -3
- data/lib/generators/pages/users/templates/spec/features/visitors/sign_up_spec.rb +6 -6
- data/lib/generators/pages/users/templates/spec/support/helpers/session_helpers.rb +2 -2
- data/lib/generators/pages/users/templates/users/_user.html.erb +1 -3
- data/lib/generators/pages/users/users_generator.rb +2 -2
- data/lib/rails_apps_pages/version.rb +1 -1
- metadata +4 -4
- data/lib/generators/pages/users/templates/spec/features/users/log_in_spec.rb +0 -51
- data/lib/generators/pages/users/templates/spec/features/users/log_out_spec.rb +0 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 93df00c2f292c726ccf29cde993c8e9a0a92e86d
|
4
|
+
data.tar.gz: 045617145b26230cd2c7b12edd0d37ac8f111cf9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c8cbb65357eb861bd3583370eb0ab13aef1e6ea84c628748a94e9f04c5af39b307a4a261121ebe39a28c7f79b5003b3240589499977f2a8dbde8474e2e2ee56
|
7
|
+
data.tar.gz: dfa5e99f6da8e10d7b59e8fb026c52d685d306d5c14703ef7eb69c50c828bb357eb0684fa02debec76b2c04288150abb98b795968913c273e224a5914e36918e
|
data/CHANGELOG.textile
CHANGED
data/README.textile
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
h1. !http://railsapps.github.io/images/rails-36x36.jpg(RailsApps Page Gem)! RailsApps Pages Gem
|
2
2
|
|
3
|
-
Use this gem to add pages to a Rails application, including controllers, views, and
|
3
|
+
Use this gem to add pages to a Rails application, including controllers, views, routing, and tests.
|
4
4
|
|
5
5
|
RailsApps Pages is a utility gem to use during development. You can remove it after generating the pages you need. It was originally written for use by the "Rails Composer":http://railsapps.github.io/rails-composer/ tool. Use Rails Composer to build any of the "RailApps example applications":http://railsapps.github.io/ for use as starter apps.
|
6
6
|
|
@@ -52,6 +52,7 @@ The generator will create:
|
|
52
52
|
|
53
53
|
* app/views/visitors/index.html.erb
|
54
54
|
* app/controllers/visitors_controller.rb
|
55
|
+
* plus tests (if RSpec is installed)
|
55
56
|
|
56
57
|
It will add a route to the *config/routes.rb* file:
|
57
58
|
|
@@ -72,12 +73,13 @@ $ rails generate pages:about
|
|
72
73
|
The generator will create:
|
73
74
|
|
74
75
|
* app/views/pages/about.html.erb
|
76
|
+
* plus tests (if RSpec is installed)
|
75
77
|
|
76
78
|
You'll need to install the "high_voltage gem":https://github.com/thoughtbot/high_voltage for the "About" page. The high_voltage gem makes it easy to add pages with static content (text that doesn't change), incorporating a site-wide application layout. The high_voltage gem provides the controller and routes needed to display any pages found in the *app/views/pages/* folder.
|
77
79
|
|
78
80
|
h2. Generate User Pages Requiring Authentication
|
79
81
|
|
80
|
-
If you have a User model and authentication with Devise, you
|
82
|
+
If you have a User model and authentication with Devise, you can add pages to display a list of users or each user's profile, restricted to signed in users.
|
81
83
|
|
82
84
|
To run the generator and create pages to accompany a User model:
|
83
85
|
|
@@ -87,50 +89,39 @@ $ rails generate pages:users
|
|
87
89
|
|
88
90
|
The generator will create:
|
89
91
|
|
90
|
-
* app/
|
92
|
+
* app/controllers/registrations_controller.rb
|
93
|
+
* app/controllers/users_controller.rb
|
91
94
|
* app/controllers/visitors_controller.rb
|
92
95
|
* app/views/users/_user.html.erb
|
93
96
|
* app/views/users/index.html.erb
|
94
97
|
* app/views/users/show.html.erb
|
95
|
-
* app/
|
98
|
+
* app/views/visitors/index.html.erb
|
99
|
+
* plus tests (if RSpec is installed)
|
96
100
|
|
97
101
|
It will add routes to the *config/routes.rb* file:
|
98
102
|
|
99
103
|
<pre>
|
100
|
-
resources :users
|
101
104
|
root :to => "visitors#index"
|
105
|
+
devise_for :users, :controllers => {:registrations => "registrations"}
|
106
|
+
resources :users
|
102
107
|
</pre>
|
103
108
|
|
104
109
|
h2. Generate User Pages Requiring Authorization
|
105
110
|
|
106
|
-
If you have a User model, authentication with Devise, and authorization with Pundit, you
|
111
|
+
If you have a User model, authentication with Devise, and authorization with Pundit, you can add pages to display a list of users, restricted to an administrator. Each user can see his or her own profile if logged in.
|
107
112
|
|
108
|
-
To run the generator and create pages to accompany a User model:
|
113
|
+
To run the generator and create pages to accompany a User model with Pundit authorization:
|
109
114
|
|
110
115
|
<pre>
|
111
116
|
$ rails generate pages:authorized
|
112
117
|
</pre>
|
113
118
|
|
114
|
-
The generator will create:
|
115
|
-
|
116
|
-
* app/views/visitors/index.html.erb
|
117
|
-
* app/controllers/visitors_controller.rb
|
118
|
-
* app/views/users/_user.html.erb
|
119
|
-
* app/views/users/index.html.erb
|
120
|
-
* app/views/users/show.html.erb
|
121
|
-
* app/controllers/users_controller.rb
|
122
|
-
|
123
|
-
It will add routes to the *config/routes.rb* file:
|
124
|
-
|
125
|
-
<pre>
|
126
|
-
resources :users
|
127
|
-
root :to => "visitors#index"
|
128
|
-
</pre>
|
129
|
-
|
130
119
|
All files are identical to the @rails generate pages:users@ generator, except:
|
131
120
|
|
132
121
|
* app/views/users/_user.html.erb
|
133
122
|
* app/controllers/users_controller.rb
|
123
|
+
* app/policies/user_policy.rb
|
124
|
+
* plus tests (if RSpec is installed)
|
134
125
|
|
135
126
|
h2. Clean a Gemfile
|
136
127
|
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
# Feature: Sign in
|
4
|
+
# As a user
|
5
|
+
# I want to sign in
|
6
|
+
# So I can visit protected areas of the site
|
7
|
+
feature 'Sign in', :devise do
|
8
|
+
|
9
|
+
# Scenario: User cannot sign in if not registered
|
10
|
+
# Given I do not exist as a user
|
11
|
+
# When I sign in with valid credentials
|
12
|
+
# Then I see an invalid credentials message
|
13
|
+
scenario 'user cannot sign in if not registered' do
|
14
|
+
signin('test@example.com', 'please123')
|
15
|
+
expect(page).to have_content 'Invalid email or password.'
|
16
|
+
end
|
17
|
+
|
18
|
+
# Scenario: User can sign in with valid credentials
|
19
|
+
# Given I exist as a user
|
20
|
+
# And I am not signed in
|
21
|
+
# When I sign in with valid credentials
|
22
|
+
# Then I see a success message
|
23
|
+
scenario 'user can sign in with valid credentials' do
|
24
|
+
user = FactoryGirl.create(:user)
|
25
|
+
signin(user.email, user.password)
|
26
|
+
expect(page).to have_content 'Signed in successfully.'
|
27
|
+
end
|
28
|
+
|
29
|
+
# Scenario: User cannot sign in with wrong email
|
30
|
+
# Given I exist as a user
|
31
|
+
# And I am not signed in
|
32
|
+
# When I sign in with a wrong email
|
33
|
+
# Then I see an invalid email message
|
34
|
+
scenario 'user cannot sign in with wrong email' do
|
35
|
+
user = FactoryGirl.create(:user)
|
36
|
+
signin('invalid@email.com', user.password)
|
37
|
+
expect(page).to have_content 'Invalid email or password.'
|
38
|
+
end
|
39
|
+
|
40
|
+
# Scenario: User cannot sign in with wrong password
|
41
|
+
# Given I exist as a user
|
42
|
+
# And I am not signed in
|
43
|
+
# When I sign in with a wrong password
|
44
|
+
# Then I see an invalid password message
|
45
|
+
scenario 'user cannot sign in with wrong password' do
|
46
|
+
user = FactoryGirl.create(:user)
|
47
|
+
signin(user.email, 'invalidpass')
|
48
|
+
expect(page).to have_content 'Invalid email or password.'
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
# Feature: Sign out
|
4
|
+
# As a user
|
5
|
+
# I want to sign out
|
6
|
+
# So I can protect my account from unauthorized access
|
7
|
+
feature 'Sign out', :devise do
|
8
|
+
|
9
|
+
# Scenario: User signs out successfully
|
10
|
+
# Given I am signed in
|
11
|
+
# When I sign out
|
12
|
+
# Then I see a signed out message
|
13
|
+
scenario 'user signs out successfully' do
|
14
|
+
user = FactoryGirl.create(:user)
|
15
|
+
signin(user.email, user.password)
|
16
|
+
expect(page).to have_content 'Signed in successfully.'
|
17
|
+
click_link 'Sign out'
|
18
|
+
expect(page).to have_content 'Signed out successfully.'
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
|
@@ -6,10 +6,10 @@ Warden.test_mode!
|
|
6
6
|
# As a user
|
7
7
|
# I want to delete my user profile
|
8
8
|
# So I can close my account
|
9
|
-
feature 'User delete', js: true do
|
9
|
+
feature 'User delete', :devise, js: true do
|
10
10
|
|
11
11
|
# Scenario: User can delete own account
|
12
|
-
# Given I am
|
12
|
+
# Given I am signed in
|
13
13
|
# When I delete my account
|
14
14
|
# Then I should see an account deleted message
|
15
15
|
scenario 'user can delete own account', :slow do
|
@@ -6,10 +6,10 @@ Warden.test_mode!
|
|
6
6
|
# As a user
|
7
7
|
# I want to edit my user profile
|
8
8
|
# So I can change my email address
|
9
|
-
feature 'User edit' do
|
9
|
+
feature 'User edit', :devise do
|
10
10
|
|
11
11
|
# Scenario: User changes email address
|
12
|
-
# Given I am
|
12
|
+
# Given I am signed in
|
13
13
|
# When I change my email address
|
14
14
|
# Then I see an account updated message
|
15
15
|
scenario 'user changes email address' do
|
@@ -23,7 +23,7 @@ feature 'User edit' do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
# Scenario: User cannot edit another user's profile
|
26
|
-
# Given I am
|
26
|
+
# Given I am signed in
|
27
27
|
# When I try to edit another user's profile
|
28
28
|
# Then I see my own 'edit profile' page
|
29
29
|
scenario "user cannot cannot edit another user's profile", :me do
|
@@ -5,11 +5,11 @@ Warden.test_mode!
|
|
5
5
|
# Feature: User index page
|
6
6
|
# As a user
|
7
7
|
# I want to see a list of users
|
8
|
-
# So I can
|
9
|
-
feature 'User index page' do
|
8
|
+
# So I can see who has registered
|
9
|
+
feature 'User index page', :devise do
|
10
10
|
|
11
11
|
# Scenario: User listed on index page
|
12
|
-
# Given I am
|
12
|
+
# Given I am signed in
|
13
13
|
# When I visit the user index page
|
14
14
|
# Then I see my own email address
|
15
15
|
scenario 'user sees own email address' do
|
@@ -6,10 +6,10 @@ Warden.test_mode!
|
|
6
6
|
# As a user
|
7
7
|
# I want to visit my user profile page
|
8
8
|
# So I can see my personal account data
|
9
|
-
feature 'User profile page' do
|
9
|
+
feature 'User profile page', :devise do
|
10
10
|
|
11
11
|
# Scenario: User sees own profile
|
12
|
-
# Given I am
|
12
|
+
# Given I am signed in
|
13
13
|
# When I visit the user profile page
|
14
14
|
# Then I see my own email address
|
15
15
|
scenario 'user sees own profile' do
|
@@ -21,7 +21,7 @@ feature 'User profile page' do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
# Scenario: User cannot see another user's profile
|
24
|
-
# Given I am
|
24
|
+
# Given I am signed in
|
25
25
|
# When I visit another user's profile
|
26
26
|
# Then I see an 'access denied' message
|
27
27
|
scenario "user cannot see another user's profile" do
|
@@ -7,7 +7,7 @@ require 'spec_helper'
|
|
7
7
|
feature 'Sign Up' do
|
8
8
|
|
9
9
|
# Scenario: Visitor can sign up with valid email address and password
|
10
|
-
# Given I am not
|
10
|
+
# Given I am not signed in
|
11
11
|
# When I sign up with a valid email address and password
|
12
12
|
# Then I see a successful sign up message
|
13
13
|
scenario 'visitor can sign up with valid email address and password' do
|
@@ -16,7 +16,7 @@ feature 'Sign Up' do
|
|
16
16
|
end
|
17
17
|
|
18
18
|
# Scenario: Visitor cannot sign up with invalid email address
|
19
|
-
# Given I am not
|
19
|
+
# Given I am not signed in
|
20
20
|
# When I sign up with an invalid email address
|
21
21
|
# Then I see an invalid email message
|
22
22
|
scenario 'visitor cannot sign up with invalid email address' do
|
@@ -25,7 +25,7 @@ feature 'Sign Up' do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
# Scenario: Visitor cannot sign up without password
|
28
|
-
# Given I am not
|
28
|
+
# Given I am not signed in
|
29
29
|
# When I sign up without a password
|
30
30
|
# Then I see a missing password message
|
31
31
|
scenario 'visitor cannot sign up without password' do
|
@@ -34,7 +34,7 @@ feature 'Sign Up' do
|
|
34
34
|
end
|
35
35
|
|
36
36
|
# Scenario: Visitor cannot sign up with a short password
|
37
|
-
# Given I am not
|
37
|
+
# Given I am not signed in
|
38
38
|
# When I sign up with a short password
|
39
39
|
# Then I see a 'too short password' message
|
40
40
|
scenario 'visitor cannot sign up with a short password' do
|
@@ -43,7 +43,7 @@ feature 'Sign Up' do
|
|
43
43
|
end
|
44
44
|
|
45
45
|
# Scenario: Visitor cannot sign up without password confirmation
|
46
|
-
# Given I am not
|
46
|
+
# Given I am not signed in
|
47
47
|
# When I sign up without a password confirmation
|
48
48
|
# Then I see a missing password confirmation message
|
49
49
|
scenario 'visitor cannot sign up without password confirmation' do
|
@@ -52,7 +52,7 @@ feature 'Sign Up' do
|
|
52
52
|
end
|
53
53
|
|
54
54
|
# Scenario: Visitor cannot sign up with mismatched password and confirmation
|
55
|
-
# Given I am not
|
55
|
+
# Given I am not signed in
|
56
56
|
# When I sign up with a mismatched password confirmation
|
57
57
|
# Then I should see a mismatched password message
|
58
58
|
scenario 'visitor cannot sign up with mismatched password and confirmation' do
|
@@ -8,11 +8,11 @@ module Features
|
|
8
8
|
click_button 'Sign up'
|
9
9
|
end
|
10
10
|
|
11
|
-
def
|
11
|
+
def signin(email, password)
|
12
12
|
visit new_user_session_path
|
13
13
|
fill_in 'Email', with: email
|
14
14
|
fill_in 'Password', with: password
|
15
|
-
click_button '
|
15
|
+
click_button 'Sign in'
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
@@ -24,8 +24,8 @@ module Pages
|
|
24
24
|
def add_tests
|
25
25
|
return unless File.exists?('spec/spec_helper.rb')
|
26
26
|
copy_file 'spec/factories/users.rb', 'spec/factories/users.rb'
|
27
|
-
copy_file 'spec/features/users/
|
28
|
-
copy_file 'spec/features/users/
|
27
|
+
copy_file 'spec/features/users/sign_in_spec.rb', 'spec/features/users/sign_in_spec.rb'
|
28
|
+
copy_file 'spec/features/users/sign_out_spec.rb', 'spec/features/users/sign_out_spec.rb'
|
29
29
|
copy_file 'spec/features/users/user_delete_spec.rb', 'spec/features/users/user_delete_spec.rb'
|
30
30
|
copy_file 'spec/features/users/user_edit_spec.rb', 'spec/features/users/user_edit_spec.rb'
|
31
31
|
copy_file 'spec/features/users/user_index_spec.rb', 'spec/features/users/user_index_spec.rb'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_apps_pages
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Kehoe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -69,8 +69,8 @@ files:
|
|
69
69
|
- lib/generators/pages/home/templates/visitors_controller.rb
|
70
70
|
- lib/generators/pages/users/templates/registrations_controller.rb
|
71
71
|
- lib/generators/pages/users/templates/spec/factories/users.rb
|
72
|
-
- lib/generators/pages/users/templates/spec/features/users/
|
73
|
-
- lib/generators/pages/users/templates/spec/features/users/
|
72
|
+
- lib/generators/pages/users/templates/spec/features/users/sign_in_spec.rb
|
73
|
+
- lib/generators/pages/users/templates/spec/features/users/sign_out_spec.rb
|
74
74
|
- lib/generators/pages/users/templates/spec/features/users/user_delete_spec.rb
|
75
75
|
- lib/generators/pages/users/templates/spec/features/users/user_edit_spec.rb
|
76
76
|
- lib/generators/pages/users/templates/spec/features/users/user_index_spec.rb
|
@@ -1,51 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
# Feature: Log in
|
4
|
-
# As a user
|
5
|
-
# I want to log in
|
6
|
-
# So I can visit protected areas of the site
|
7
|
-
feature 'Log in' do
|
8
|
-
|
9
|
-
# Scenario: User cannot log in if not registered
|
10
|
-
# Given I do not exist as a user
|
11
|
-
# When I log in with valid credentials
|
12
|
-
# Then I see an invalid login message
|
13
|
-
scenario 'user cannot log in if not registered' do
|
14
|
-
login('test@example.com', 'please123')
|
15
|
-
expect(page).to have_content 'Invalid email or password.'
|
16
|
-
end
|
17
|
-
|
18
|
-
# Scenario: User can log in with valid credentials
|
19
|
-
# Given I exist as a user
|
20
|
-
# And I am not logged in
|
21
|
-
# When I sign in with valid credentials
|
22
|
-
# Then I see a successful login message
|
23
|
-
scenario 'user can log in with valid credentials' do
|
24
|
-
user = FactoryGirl.create(:user)
|
25
|
-
login(user.email, user.password)
|
26
|
-
expect(page).to have_content 'Signed in successfully.'
|
27
|
-
end
|
28
|
-
|
29
|
-
# Scenario: User cannot log in with wrong email
|
30
|
-
# Given I exist as a user
|
31
|
-
# And I am not logged in
|
32
|
-
# When I log in with a wrong email
|
33
|
-
# Then I see an invalid login message
|
34
|
-
scenario 'user cannot log in with wrong email' do
|
35
|
-
user = FactoryGirl.create(:user)
|
36
|
-
login('invalid@email.com', user.password)
|
37
|
-
expect(page).to have_content 'Invalid email or password.'
|
38
|
-
end
|
39
|
-
|
40
|
-
# Scenario: User cannot log in with wrong password
|
41
|
-
# Given I exist as a user
|
42
|
-
# And I am not logged in
|
43
|
-
# When I log in with a wrong password
|
44
|
-
# Then I see an invalid login message
|
45
|
-
scenario 'user cannot log in with wrong password' do
|
46
|
-
user = FactoryGirl.create(:user)
|
47
|
-
login(user.email, 'invalidpass')
|
48
|
-
expect(page).to have_content 'Invalid email or password.'
|
49
|
-
end
|
50
|
-
|
51
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
# Feature: Log out
|
4
|
-
# As a user
|
5
|
-
# I want to log out
|
6
|
-
# So I can protect my account from unauthorized access
|
7
|
-
feature 'Log out' do
|
8
|
-
|
9
|
-
# Scenario: User logs out successfully
|
10
|
-
# Given I am logged in
|
11
|
-
# When I log out
|
12
|
-
# Then I see a logged out message
|
13
|
-
scenario 'user logs out successfully' do
|
14
|
-
user = FactoryGirl.create(:user)
|
15
|
-
login(user.email, user.password)
|
16
|
-
expect(page).to have_content 'Signed in successfully.'
|
17
|
-
click_link 'Logout'
|
18
|
-
expect(page).to have_content 'Signed out successfully.'
|
19
|
-
end
|
20
|
-
|
21
|
-
end
|
22
|
-
|
23
|
-
|