intro 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/README.md +7 -4
- data/app/controllers/intro/tours_controller.rb +2 -1
- data/app/helpers/intro/application_helper.rb +0 -6
- data/app/views/layouts/intro/admin/application.html.erb +2 -2
- data/lib/generators/intro/templates/config/initializers/intro.rb.erb +4 -0
- data/lib/intro/configuration.rb +10 -0
- data/lib/intro/helpers/view_helper.rb +5 -2
- data/lib/intro/version.rb +1 -1
- data/spec/controllers/intro_admin_images_controller_spec.rb +3 -3
- data/spec/controllers/intro_admin_sessions_controller_spec.rb +7 -7
- data/spec/controllers/intro_admin_tours_controller_spec.rb +30 -30
- data/spec/controllers/intro_tours_controller_spec.rb +58 -58
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/test.log +16544 -0
- data/spec/dummy/public/uploads/intro/20201231/1609423341_QU0t0H4g.png +0 -0
- data/spec/dummy/public/uploads/intro/20201231/1609423496_gGoMcWZq.png +0 -0
- data/spec/dummy/public/uploads/intro/20201231/1609423514_DZSt9xbz.png +0 -0
- data/spec/dummy/public/uploads/intro/20201231/1609423672_PfpDts7p.png +0 -0
- data/spec/dummy/public/uploads/intro/20201231/1609423696_gvmq59Gj.png +0 -0
- data/spec/dummy/public/uploads/intro/20201231/1609423738_gRF8Qihc.png +0 -0
- data/spec/dummy/public/uploads/intro/20201231/1609423803_Tng8_Lmy.png +0 -0
- data/spec/dummy/public/uploads/intro/20201231/1609423857_TBa7HIyO.png +0 -0
- data/spec/dummy/public/uploads/intro/20201231/1609423929_yHAO4SOj.png +0 -0
- data/spec/dummy/public/uploads/intro/20201231/1609423947_e2Gm5aL8.png +0 -0
- data/spec/spec_helper.rb +3 -0
- metadata +37 -3
- data/spec/dummy/spec/models/user_spec.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 57747ce7fbdd5c63d6a84e1429c5ff9f9f6f6ab9000974686e1679d53c35552c
|
4
|
+
data.tar.gz: cb9c17be30ed613bc6dba8d26fc69465d7146fe4d4b66e4a801bad0475296d9d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9cd050d04fc93989e6811e0879f5f8778c8a902bbf3a2e79e0db912c76b4a11582cb6306f7770514a46fedb027f57ed7e193e0bec49986fc2e36829f94f2ab1f
|
7
|
+
data.tar.gz: 23f425e999abdd82988b8f18dfe2ed02cd6b6a8c4ff111020b08e9c149f2285cb0de47e8a5474f0fcbe587f5fddb797a46990876860fbed3cb0e0549fde591a3
|
data/README.md
CHANGED
@@ -95,14 +95,17 @@ app/javascript/packs/intro/custom.js
|
|
95
95
|
|
96
96
|
Change them for your need.
|
97
97
|
|
98
|
-
Last,
|
98
|
+
Last, enable `custom_assets` in `config/initializers/intro.rb` like this:
|
99
99
|
|
100
100
|
```
|
101
|
-
|
102
|
-
|
103
|
-
|
101
|
+
# config/initializers/intro.rb
|
102
|
+
|
103
|
+
# override intro tour styles
|
104
|
+
self.custom_assets = true # or 'intro/custom'
|
104
105
|
```
|
105
106
|
|
107
|
+
It will bring intro/custom assets into `intro_tags`
|
108
|
+
|
106
109
|
### Configuring intro
|
107
110
|
|
108
111
|
see `config/initializers/intro.rb` for detail configuration.
|
@@ -28,7 +28,8 @@ module Intro
|
|
28
28
|
|
29
29
|
def record
|
30
30
|
history = Intro::TourHistory.with_user_and_tour(current_user, @tour).first_or_initialize
|
31
|
-
history.increment
|
31
|
+
history.increment(:touch_count)
|
32
|
+
history.save
|
32
33
|
render json: { message: t('intro.admin.update_success') }
|
33
34
|
end
|
34
35
|
|
@@ -3,8 +3,8 @@
|
|
3
3
|
<head>
|
4
4
|
<meta charset='utf-8'>
|
5
5
|
<title><%= [yield(:doc_title).presence, t('intro.admin.title')].compact.join(' · ') %></title>
|
6
|
-
<%= stylesheet_pack_tag "intro/admin/application", media: "all" %>
|
7
|
-
<%= javascript_pack_tag "intro/admin/application" %>
|
6
|
+
<%= intro_webpacker_helper.stylesheet_pack_tag "intro/admin/application", media: "all" %>
|
7
|
+
<%= intro_webpacker_helper.javascript_pack_tag "intro/admin/application" %>
|
8
8
|
<%= csrf_meta_tags %>
|
9
9
|
<%= yield(:head_content) %>
|
10
10
|
</head>
|
data/lib/intro/configuration.rb
CHANGED
@@ -36,6 +36,9 @@ module Intro
|
|
36
36
|
# display tour without signing in, default: false
|
37
37
|
attr_accessor :visible_without_signing_in
|
38
38
|
|
39
|
+
# override intro tour styles, default: false
|
40
|
+
attr_accessor :custom_assets
|
41
|
+
|
39
42
|
def initialize
|
40
43
|
@enable = true
|
41
44
|
|
@@ -46,10 +49,17 @@ module Intro
|
|
46
49
|
@max_touch_count = 1
|
47
50
|
|
48
51
|
@carrierwave_storage = :file
|
52
|
+
|
53
|
+
@custom_assets = false
|
49
54
|
end
|
50
55
|
|
51
56
|
def admin_username_digest
|
52
57
|
@admin_username_digest ||= Digest::SHA1.hexdigest(admin_username.to_s)
|
53
58
|
end
|
59
|
+
|
60
|
+
def custom_assets_with_default
|
61
|
+
return unless custom_assets
|
62
|
+
custom_assets.is_a?(String) ? custom_assets : 'intro/custom'
|
63
|
+
end
|
54
64
|
end
|
55
65
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Intro
|
2
2
|
module Helpers
|
3
3
|
module ViewHelper
|
4
|
-
def intro_tags(options = {}
|
4
|
+
def intro_tags(options = {})
|
5
5
|
return unless options[:enable] || enable_intro?
|
6
6
|
|
7
7
|
intro_options = {
|
@@ -16,11 +16,14 @@ module Intro
|
|
16
16
|
shepherd_options: options[:shepherd] || {}
|
17
17
|
}.freeze
|
18
18
|
|
19
|
+
custom_assets = Intro.config.custom_assets_with_default
|
20
|
+
custom_assets_tag = "#{javascript_pack_tag(custom_assets)} #{stylesheet_pack_tag(custom_assets)}" if custom_assets
|
21
|
+
|
19
22
|
<<-HTML.html_safe
|
20
23
|
<script>window._intro = #{ intro_options.to_json }</script>
|
21
24
|
#{intro_webpacker_helper.javascript_pack_tag('intro/application')}
|
22
25
|
#{intro_webpacker_helper.stylesheet_pack_tag('intro/application')}
|
23
|
-
#{
|
26
|
+
#{custom_assets_tag}
|
24
27
|
HTML
|
25
28
|
end
|
26
29
|
|
data/lib/intro/version.rb
CHANGED
@@ -3,7 +3,7 @@ require 'rails_helper'
|
|
3
3
|
describe Intro::Admin::ImagesController, type: :controller do
|
4
4
|
routes { Intro::Engine.routes }
|
5
5
|
|
6
|
-
let(:image) {
|
6
|
+
let(:image) { Rack::Test::UploadedFile.new('spec/fixtures/ruby.png', 'image/png') }
|
7
7
|
|
8
8
|
context 'unauthorized' do
|
9
9
|
it 'should get unauthorized status' do
|
@@ -30,9 +30,9 @@ describe Intro::Admin::ImagesController, type: :controller do
|
|
30
30
|
it 'should successfully upload with image' do
|
31
31
|
self.class.fixture_path = File.expand_path('../../fixtures', __FILE__) if self.class.respond_to?(:fixture_path) && !self.class.fixture_path
|
32
32
|
|
33
|
-
post :create, image: image, format: :json
|
33
|
+
post :create, params: { image: image }, format: :json
|
34
34
|
|
35
|
-
expect(response).to
|
35
|
+
expect(response.successful?).to be true
|
36
36
|
expect(json_body[:data]).not_to be_nil
|
37
37
|
expect(json_body[:data][:url]).not_to be_nil
|
38
38
|
end
|
@@ -6,7 +6,7 @@ describe Intro::Admin::SessionsController, type: :controller do
|
|
6
6
|
context '#new' do
|
7
7
|
it 'should has same action' do
|
8
8
|
get :new
|
9
|
-
expect(response).to
|
9
|
+
expect(response.successful?).to be true
|
10
10
|
end
|
11
11
|
|
12
12
|
it 'should render same template' do
|
@@ -17,7 +17,7 @@ describe Intro::Admin::SessionsController, type: :controller do
|
|
17
17
|
|
18
18
|
context '#create' do
|
19
19
|
it 'should be authenticated with valid intro admin account' do
|
20
|
-
post :create, { username: Intro.config.admin_username, password: Intro.config.admin_password }
|
20
|
+
post :create, params: { username: Intro.config.admin_username, password: Intro.config.admin_password }
|
21
21
|
|
22
22
|
expect(flash[:alert]).to be_nil
|
23
23
|
expect(response).to have_http_status(:redirect)
|
@@ -25,12 +25,12 @@ describe Intro::Admin::SessionsController, type: :controller do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'should be unauthenticated with invalid admin username or password' do
|
28
|
-
post :create, { username: 'test_user', password: Intro.config.admin_password }
|
28
|
+
post :create, params: { username: 'test_user', password: Intro.config.admin_password }
|
29
29
|
|
30
30
|
expect(flash[:alert]).not_to be_empty
|
31
31
|
expect(response).to render_template(:new)
|
32
32
|
|
33
|
-
post :create, { username: Intro.config.admin_username, password: 'qwe123' }
|
33
|
+
post :create, params: { username: Intro.config.admin_username, password: 'qwe123' }
|
34
34
|
|
35
35
|
expect(flash[:alert]).not_to be_empty
|
36
36
|
expect(response).to render_template(:new)
|
@@ -40,7 +40,7 @@ describe Intro::Admin::SessionsController, type: :controller do
|
|
40
40
|
revert_intro_config do
|
41
41
|
Intro.config.admin_authenticate_account = -> { params[:username] == 'root' && params[:password] == 'qwe123' }
|
42
42
|
|
43
|
-
post :create, { username: 'root', password: 'qwe123' }
|
43
|
+
post :create, params: { username: 'root', password: 'qwe123' }
|
44
44
|
|
45
45
|
expect(flash[:alert]).to be_nil
|
46
46
|
expect(response).to have_http_status(:redirect)
|
@@ -52,7 +52,7 @@ describe Intro::Admin::SessionsController, type: :controller do
|
|
52
52
|
revert_intro_config do
|
53
53
|
Intro.config.admin_authenticate_account = -> { params[:username] == 'root' && params[:password] == 'qwe123' }
|
54
54
|
|
55
|
-
post :create, { username: 'test', password: 'test123' }
|
55
|
+
post :create, params: { username: 'test', password: 'test123' }
|
56
56
|
|
57
57
|
expect(flash[:alert]).not_to be_empty
|
58
58
|
expect(response).to render_template(:new)
|
@@ -62,7 +62,7 @@ describe Intro::Admin::SessionsController, type: :controller do
|
|
62
62
|
|
63
63
|
context '#sign_out' do
|
64
64
|
it 'should clear session for signed user' do
|
65
|
-
post :create, { username: Intro.config.admin_username, password: Intro.config.admin_password }
|
65
|
+
post :create, params: { username: Intro.config.admin_username, password: Intro.config.admin_password }
|
66
66
|
expect(session[:intro_admin_authenticated]).not_to be_nil
|
67
67
|
|
68
68
|
delete :sign_out
|
@@ -22,19 +22,19 @@ describe Intro::Admin::ToursController, type: :controller do
|
|
22
22
|
post :attempt
|
23
23
|
expect(response).to redirect_to unauthenticated_path
|
24
24
|
|
25
|
-
get :show, id: 0
|
25
|
+
get :show, params: {id: 0}
|
26
26
|
expect(response).to redirect_to unauthenticated_path
|
27
27
|
|
28
|
-
get :edit, id: 0
|
28
|
+
get :edit, params: {id: 0}
|
29
29
|
expect(response).to redirect_to unauthenticated_path
|
30
30
|
|
31
|
-
put :update, id: 0
|
31
|
+
put :update, params: {id: 0}
|
32
32
|
expect(response).to redirect_to unauthenticated_path
|
33
33
|
|
34
|
-
delete :destroy, id: 0
|
34
|
+
delete :destroy, params: {id: 0}
|
35
35
|
expect(response).to redirect_to unauthenticated_path
|
36
36
|
|
37
|
-
put :publish, id: 0
|
37
|
+
put :publish, params: {id: 0}
|
38
38
|
expect(response).to redirect_to unauthenticated_path
|
39
39
|
end
|
40
40
|
|
@@ -59,7 +59,7 @@ describe Intro::Admin::ToursController, type: :controller do
|
|
59
59
|
context '#index' do
|
60
60
|
it 'should render index template' do
|
61
61
|
get :index
|
62
|
-
expect(response).to
|
62
|
+
expect(response.successful?).to be true
|
63
63
|
expect(response).to render_template(:index)
|
64
64
|
expect(response).to have_http_status(:success)
|
65
65
|
end
|
@@ -74,7 +74,7 @@ describe Intro::Admin::ToursController, type: :controller do
|
|
74
74
|
context '#new' do
|
75
75
|
it 'should render new template' do
|
76
76
|
get :new
|
77
|
-
expect(response).to
|
77
|
+
expect(response.successful?).to be true
|
78
78
|
expect(response).to render_template(:new)
|
79
79
|
expect(response).to have_http_status(:success)
|
80
80
|
end
|
@@ -88,13 +88,13 @@ describe Intro::Admin::ToursController, type: :controller do
|
|
88
88
|
|
89
89
|
context '#create' do
|
90
90
|
it 'should successfully create tour with ident' do
|
91
|
-
expect { post :create, tour: { ident: random_string } }.to change { Intro::Tour.count }.by(1)
|
91
|
+
expect { post :create, params: { tour: { ident: random_string } } }.to change { Intro::Tour.count }.by(1)
|
92
92
|
expect(response).to have_http_status(:redirect)
|
93
93
|
expect(response).to redirect_to admin_tour_path(assigns(:tour))
|
94
94
|
end
|
95
95
|
|
96
96
|
it 'failed to create tour without ident' do
|
97
|
-
expect { post :create, tour: {} }.to change { Intro::Tour.count }.by(0)
|
97
|
+
expect { post :create, params: { tour: {} } }.to change { Intro::Tour.count }.by(0)
|
98
98
|
expect(assigns(:tour)).not_to be_nil
|
99
99
|
expect(response).to render_template(:new)
|
100
100
|
expect(response).to have_http_status(:success)
|
@@ -103,7 +103,7 @@ describe Intro::Admin::ToursController, type: :controller do
|
|
103
103
|
|
104
104
|
context '#route' do
|
105
105
|
it 'should get route with path' do
|
106
|
-
get :route, path: '/intro/admin/tours?xyz=1', format: :json
|
106
|
+
get :route, params: { path: '/intro/admin/tours?xyz=1' }, format: :json
|
107
107
|
|
108
108
|
expect(response).to have_http_status(:success)
|
109
109
|
expect(response.body).not_to be_nil
|
@@ -117,7 +117,7 @@ describe Intro::Admin::ToursController, type: :controller do
|
|
117
117
|
|
118
118
|
context '#attempt' do
|
119
119
|
it 'should get tour options with options' do
|
120
|
-
post :attempt, tour: { options: { title: 'title', content: 'content' } }, format: :json
|
120
|
+
post :attempt, params: { tour: { options: { title: 'title', content: 'content' } } }, format: :json
|
121
121
|
|
122
122
|
expect(response).to have_http_status(:success)
|
123
123
|
expect(json_body[:data]).not_to be_nil
|
@@ -127,7 +127,7 @@ describe Intro::Admin::ToursController, type: :controller do
|
|
127
127
|
end
|
128
128
|
|
129
129
|
it 'should not get tour options without options' do
|
130
|
-
post :attempt, tour: {}, format: :json
|
130
|
+
post :attempt, params: { tour: {} }, format: :json
|
131
131
|
|
132
132
|
expect(response).to have_http_status(:success)
|
133
133
|
expect(json_body[:data]).not_to be_nil
|
@@ -137,22 +137,22 @@ describe Intro::Admin::ToursController, type: :controller do
|
|
137
137
|
|
138
138
|
context 'without tour' do
|
139
139
|
it 'should get not found' do
|
140
|
-
get :show, id: 0
|
140
|
+
get :show, params: {id: 0}
|
141
141
|
expect(response).to redirect_to admin_tours_path
|
142
142
|
|
143
|
-
get :show, id: 0, format: :json
|
143
|
+
get :show, params: {id: 0}, format: :json
|
144
144
|
expect(response).to have_http_status(:not_found)
|
145
145
|
|
146
|
-
get :edit, id: 0
|
146
|
+
get :edit, params: {id: 0}
|
147
147
|
expect(response).to redirect_to admin_tours_path
|
148
148
|
|
149
|
-
put :update, id: 0
|
149
|
+
put :update, params: {id: 0}
|
150
150
|
expect(response).to redirect_to admin_tours_path
|
151
151
|
|
152
|
-
delete :destroy, id: 0
|
152
|
+
delete :destroy, params: {id: 0}
|
153
153
|
expect(response).to redirect_to admin_tours_path
|
154
154
|
|
155
|
-
put :publish, id: 0
|
155
|
+
put :publish, params: {id: 0}
|
156
156
|
expect(response).to redirect_to admin_tours_path
|
157
157
|
end
|
158
158
|
end
|
@@ -160,7 +160,7 @@ describe Intro::Admin::ToursController, type: :controller do
|
|
160
160
|
context 'with tour' do
|
161
161
|
context '#show' do
|
162
162
|
it 'should render edit template' do
|
163
|
-
get :show, id: tour.id
|
163
|
+
get :show, params: { id: tour.id }
|
164
164
|
expect(assigns(:tour)).not_to be_nil
|
165
165
|
expect(response).to render_template(:edit)
|
166
166
|
expect(response).to have_http_status(:success)
|
@@ -169,7 +169,7 @@ describe Intro::Admin::ToursController, type: :controller do
|
|
169
169
|
|
170
170
|
context '#edit' do
|
171
171
|
it 'should render edit template' do
|
172
|
-
get :show, id: tour.id
|
172
|
+
get :show, params: { id: tour.id }
|
173
173
|
expect(assigns(:tour)).not_to be_nil
|
174
174
|
expect(response).to render_template(:edit)
|
175
175
|
expect(response).to have_http_status(:success)
|
@@ -178,35 +178,35 @@ describe Intro::Admin::ToursController, type: :controller do
|
|
178
178
|
|
179
179
|
context '#update' do
|
180
180
|
it 'should render edit template' do
|
181
|
-
put :update, id: tour.id, tour: { ident: "new-#{tour.ident}" }
|
181
|
+
put :update, params: { id: tour.id, tour: { ident: "new-#{tour.ident}" } }
|
182
182
|
expect(assigns(:tour)).not_to be_nil
|
183
183
|
expect(response).to render_template(:edit)
|
184
184
|
end
|
185
185
|
|
186
186
|
it 'should successfully update tour with valid ident' do
|
187
187
|
new_ident = "new-#{tour.ident}"
|
188
|
-
put :update, id: tour.id, tour: { ident: new_ident }
|
188
|
+
put :update, params: { id: tour.id, tour: { ident: new_ident } }
|
189
189
|
expect(assigns(:tour).previous_changes).to have_key('ident')
|
190
190
|
expect(assigns(:tour).ident).to eq new_ident
|
191
191
|
end
|
192
192
|
|
193
193
|
it 'should successfully update tour with valid controller' do
|
194
194
|
new_controller = "new-#{tour.controller_path}"
|
195
|
-
put :update, id: tour.id, tour: { controller_path: new_controller }
|
195
|
+
put :update, params: { id: tour.id, tour: { controller_path: new_controller } }
|
196
196
|
expect(assigns(:tour).previous_changes).to have_key('controller_path')
|
197
197
|
expect(assigns(:tour).controller_path).to eq new_controller
|
198
198
|
end
|
199
199
|
|
200
200
|
it 'should successfully update tour with valid action' do
|
201
201
|
new_action = "new-#{tour.action_name}"
|
202
|
-
put :update, id: tour.id, tour: { action_name: new_action }
|
202
|
+
put :update, params: { id: tour.id, tour: { action_name: new_action } }
|
203
203
|
expect(assigns(:tour).previous_changes).to have_key('action_name')
|
204
204
|
expect(assigns(:tour).action_name).to eq new_action
|
205
205
|
end
|
206
206
|
|
207
207
|
it 'should successfully update tour with valid options' do
|
208
208
|
options = { title: 'title' }
|
209
|
-
put :update, id: tour.id, tour: { options: options }
|
209
|
+
put :update, params: { id: tour.id, tour: { options: options } }
|
210
210
|
expect(assigns(:tour).previous_changes).to have_key('options')
|
211
211
|
expect(assigns(:tour).options).not_to be_nil
|
212
212
|
expect(assigns(:tour).options['title']).to eq 'title'
|
@@ -214,7 +214,7 @@ describe Intro::Admin::ToursController, type: :controller do
|
|
214
214
|
|
215
215
|
it 'should successfully update tour with valid route' do
|
216
216
|
route = { simple: '/' }
|
217
|
-
put :update, id: tour.id, tour: { route: route }
|
217
|
+
put :update, params: { id: tour.id, tour: { route: route } }
|
218
218
|
expect(assigns(:tour).previous_changes).to have_key('route')
|
219
219
|
expect(assigns(:tour).route).not_to be_nil
|
220
220
|
expect(assigns(:tour).route['simple']).to eq '/'
|
@@ -222,7 +222,7 @@ describe Intro::Admin::ToursController, type: :controller do
|
|
222
222
|
|
223
223
|
it 'should successfully update tour with valid expired time' do
|
224
224
|
new_expired_at = 1.day.since.strftime('%F')
|
225
|
-
put :update, id: tour.id, tour: { expired_at: new_expired_at }
|
225
|
+
put :update, params: { id: tour.id, tour: { expired_at: new_expired_at } }
|
226
226
|
expect(assigns(:tour).previous_changes).to have_key('expired_at')
|
227
227
|
expect(assigns(:tour).expired_at.strftime('%F')).to eq new_expired_at
|
228
228
|
end
|
@@ -230,7 +230,7 @@ describe Intro::Admin::ToursController, type: :controller do
|
|
230
230
|
|
231
231
|
context '#destroy' do
|
232
232
|
it 'should successfully destroy tour' do
|
233
|
-
delete :destroy, id: tour.id
|
233
|
+
delete :destroy, params: { id: tour.id }
|
234
234
|
expect(assigns(:tour).destroyed?).to be true
|
235
235
|
expect(response).to redirect_to admin_tours_path
|
236
236
|
end
|
@@ -238,12 +238,12 @@ describe Intro::Admin::ToursController, type: :controller do
|
|
238
238
|
|
239
239
|
context '#publish' do
|
240
240
|
it 'should get published tour with active params' do
|
241
|
-
put :publish, id: tour.id, published: 'true'
|
241
|
+
put :publish, params: { id: tour.id, published: 'true' }
|
242
242
|
expect(assigns(:tour).published).to be true
|
243
243
|
end
|
244
244
|
|
245
245
|
it 'should get unpublished tour with inactive params' do
|
246
|
-
put :publish, id: tour.id, published: 'false'
|
246
|
+
put :publish, params: { id: tour.id, published: 'false' }
|
247
247
|
expect(assigns(:tour).published).to be false
|
248
248
|
end
|
249
249
|
end
|
@@ -15,7 +15,7 @@ describe Intro::ToursController, type: :controller do
|
|
15
15
|
it 'should get unauthorized response if disable `visible_without_signing_in`' do
|
16
16
|
revert_intro_config do
|
17
17
|
Intro.config.visible_without_signing_in = false
|
18
|
-
get :index, controller_path: 'x', action_name: 'x', format: :json
|
18
|
+
get :index, params: { controller_path: 'x', action_name: 'x' }, format: :json
|
19
19
|
expect(response).to have_http_status(:unauthorized)
|
20
20
|
end
|
21
21
|
end
|
@@ -23,7 +23,7 @@ describe Intro::ToursController, type: :controller do
|
|
23
23
|
it 'should get ok response if enable `visible_without_signing_in`' do
|
24
24
|
revert_intro_config do
|
25
25
|
Intro.config.visible_without_signing_in = true
|
26
|
-
get :index, controller_path: 'x', action_name: 'x', format: :json
|
26
|
+
get :index, params: { controller_path: 'x', action_name: 'x' }, format: :json
|
27
27
|
expect(response).to have_http_status(:ok)
|
28
28
|
end
|
29
29
|
end
|
@@ -33,8 +33,8 @@ describe Intro::ToursController, type: :controller do
|
|
33
33
|
Intro.config.visible_without_signing_in = true
|
34
34
|
published_tour
|
35
35
|
|
36
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'new'
|
37
|
-
expect(response).to
|
36
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'new' }
|
37
|
+
expect(response.successful?).to be true
|
38
38
|
expect(json_body).not_to be_nil
|
39
39
|
expect(json_body[:data]).to be_empty
|
40
40
|
end
|
@@ -46,8 +46,8 @@ describe Intro::ToursController, type: :controller do
|
|
46
46
|
published_tour.options['not_sign_visible'] = true
|
47
47
|
published_tour.save
|
48
48
|
|
49
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'new'
|
50
|
-
expect(response).to
|
49
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'new' }
|
50
|
+
expect(response.successful?).to be true
|
51
51
|
expect(json_body).not_to be_nil
|
52
52
|
expect(json_body[:data]).not_to be_empty
|
53
53
|
end
|
@@ -56,7 +56,7 @@ describe Intro::ToursController, type: :controller do
|
|
56
56
|
|
57
57
|
context '#record' do
|
58
58
|
it 'should get unauthorized response' do
|
59
|
-
post :record, id: 0
|
59
|
+
post :record, params: {id: 0}
|
60
60
|
expect(response).to have_http_status(:unauthorized)
|
61
61
|
end
|
62
62
|
end
|
@@ -77,8 +77,8 @@ describe Intro::ToursController, type: :controller do
|
|
77
77
|
end
|
78
78
|
|
79
79
|
it 'should get empty data with invalid controller, action' do
|
80
|
-
get :index, controller_path: 'x', action_name: 'x', format: :json
|
81
|
-
expect(response).to
|
80
|
+
get :index, params: { controller_path: 'x', action_name: 'x' }, format: :json
|
81
|
+
expect(response.successful?).to be true
|
82
82
|
expect(json_body).not_to be_nil
|
83
83
|
expect(json_body[:data]).to be_empty
|
84
84
|
end
|
@@ -86,8 +86,8 @@ describe Intro::ToursController, type: :controller do
|
|
86
86
|
it 'should get empty data with valid controller, action without published tour' do
|
87
87
|
unpublished_tour
|
88
88
|
|
89
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'new'
|
90
|
-
expect(response).to
|
89
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'new' }
|
90
|
+
expect(response.successful?).to be true
|
91
91
|
expect(json_body).not_to be_nil
|
92
92
|
expect(json_body[:data]).to be_empty
|
93
93
|
end
|
@@ -95,18 +95,18 @@ describe Intro::ToursController, type: :controller do
|
|
95
95
|
it 'should get tours data with valid controller, action and published record' do
|
96
96
|
published_tour
|
97
97
|
|
98
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'new'
|
99
|
-
expect(response).to
|
98
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'new' }
|
99
|
+
expect(response.successful?).to be true
|
100
100
|
expect(json_body).not_to be_nil
|
101
101
|
expect(json_body[:data]).not_to be_empty
|
102
102
|
end
|
103
103
|
|
104
104
|
it 'should get empty data with valid controller, action and expired time' do
|
105
|
-
published_tour.
|
105
|
+
published_tour.update(expired_at: 1.day.ago)
|
106
106
|
|
107
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'new'
|
107
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'new' }
|
108
108
|
|
109
|
-
expect(response).to
|
109
|
+
expect(response.successful?).to be true
|
110
110
|
expect(json_body).not_to be_nil
|
111
111
|
expect(json_body[:data]).to be_empty
|
112
112
|
end
|
@@ -114,9 +114,9 @@ describe Intro::ToursController, type: :controller do
|
|
114
114
|
it 'should get empty data with valid controller, action and max_touch_count' do
|
115
115
|
published_tour.tour_histories.create(user_id: User.first_or_create.id, touch_count: Intro.config.max_touch_count)
|
116
116
|
|
117
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'new'
|
117
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'new' }
|
118
118
|
|
119
|
-
expect(response).to
|
119
|
+
expect(response.successful?).to be true
|
120
120
|
expect(json_body).not_to be_nil
|
121
121
|
expect(json_body[:data]).to be_empty
|
122
122
|
end
|
@@ -124,89 +124,89 @@ describe Intro::ToursController, type: :controller do
|
|
124
124
|
it 'should get tours data with valid controller, action without max_touch_count' do
|
125
125
|
published_tour.tour_histories.create(user_id: User.first_or_create.id)
|
126
126
|
|
127
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'new'
|
127
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'new' }
|
128
128
|
|
129
|
-
expect(response).to
|
129
|
+
expect(response.successful?).to be true
|
130
130
|
expect(json_body).not_to be_nil
|
131
131
|
expect(json_body[:data]).not_to be_empty
|
132
132
|
end
|
133
133
|
|
134
134
|
it 'should get tours data with valid controller, action and same simple route on strict' do
|
135
|
-
published_tour.
|
135
|
+
published_tour.update(route: { simple: '/intro/admin/tours/new', strict: true })
|
136
136
|
|
137
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'new', original_url: '/intro/admin/tours/new'
|
138
|
-
expect(response).to
|
137
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'new', original_url: '/intro/admin/tours/new' }
|
138
|
+
expect(response.successful?).to be true
|
139
139
|
expect(json_body).not_to be_nil
|
140
140
|
expect(json_body[:data]).not_to be_empty
|
141
141
|
|
142
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'new', original_url: 'http://localhost:3000/intro/admin/tours/new'
|
142
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'new', original_url: 'http://localhost:3000/intro/admin/tours/new' }
|
143
143
|
expect(json_body).not_to be_nil
|
144
144
|
expect(json_body[:data]).not_to be_empty
|
145
145
|
|
146
|
-
published_tour.
|
146
|
+
published_tour.update(route: { simple: 'http://localhost:3000/intro/admin/tours/new' })
|
147
147
|
|
148
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'new', original_url: 'http://localhost:3000/intro/admin/tours/new'
|
148
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'new', original_url: 'http://localhost:3000/intro/admin/tours/new' }
|
149
149
|
expect(json_body).not_to be_nil
|
150
150
|
expect(json_body[:data]).not_to be_empty
|
151
151
|
|
152
|
-
published_tour.
|
152
|
+
published_tour.update(route: { simple: 'http://localhost:3000/intro/admin/tours/new?xyz=1' })
|
153
153
|
|
154
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'new', original_url: 'http://localhost:3000/intro/admin/tours/new?xyz=1'
|
154
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'new', original_url: 'http://localhost:3000/intro/admin/tours/new?xyz=1' }
|
155
155
|
expect(json_body).not_to be_nil
|
156
156
|
expect(json_body[:data]).not_to be_empty
|
157
157
|
end
|
158
158
|
|
159
159
|
it 'should get empty data with valid controller, action without same simple route on strict' do
|
160
|
-
published_tour.
|
160
|
+
published_tour.update(route: { simple: '/intro/admin/tours/new', strict: true })
|
161
161
|
|
162
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'new', original_url: '/intro/admin/tours/new2'
|
163
|
-
expect(response).to
|
162
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'new', original_url: '/intro/admin/tours/new2' }
|
163
|
+
expect(response.successful?).to be true
|
164
164
|
expect(json_body).not_to be_nil
|
165
165
|
expect(json_body[:data]).to be_empty
|
166
166
|
|
167
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'new', original_url: 'http://localhost:3000/intro/admin/tours/new2'
|
167
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'new', original_url: 'http://localhost:3000/intro/admin/tours/new2' }
|
168
168
|
expect(json_body).not_to be_nil
|
169
169
|
expect(json_body[:data]).to be_empty
|
170
170
|
|
171
|
-
published_tour.
|
171
|
+
published_tour.update(route: { simple: 'http://localhost:3000/intro/admin/tours/new' })
|
172
172
|
|
173
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'new', original_url: 'http://localhost:3000/intro/admin/tours/new2'
|
173
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'new', original_url: 'http://localhost:3000/intro/admin/tours/new2' }
|
174
174
|
expect(json_body).not_to be_nil
|
175
175
|
expect(json_body[:data]).to be_empty
|
176
176
|
|
177
|
-
published_tour.
|
177
|
+
published_tour.update(route: { simple: 'http://localhost:3000/intro/admin/tours/new?xyz=1' })
|
178
178
|
|
179
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'new', original_url: 'http://localhost:3000/intro/admin/tours/new?xyz=2'
|
179
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'new', original_url: 'http://localhost:3000/intro/admin/tours/new?xyz=2' }
|
180
180
|
expect(json_body).not_to be_nil
|
181
181
|
expect(json_body[:data]).to be_empty
|
182
182
|
end
|
183
183
|
|
184
184
|
it 'should get tours data with valid controller, action and path params' do
|
185
|
-
published_tour.
|
185
|
+
published_tour.update(controller_path: 'intro/admin/tours', action_name: 'edit')
|
186
186
|
|
187
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'edit', original_url: '/intro/admin/tours/13/edit'
|
188
|
-
expect(response).to
|
187
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'edit', original_url: '/intro/admin/tours/13/edit' }
|
188
|
+
expect(response.successful?).to be true
|
189
189
|
expect(json_body).not_to be_nil
|
190
190
|
expect(json_body[:data]).not_to be_empty
|
191
191
|
|
192
|
-
published_tour.
|
192
|
+
published_tour.update(controller_path: 'intro/admin/tours', action_name: 'edit', route: { simple: '/intro/admin/tours/13/edit' })
|
193
193
|
|
194
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'edit', original_url: '/intro/admin/tours/13/edit'
|
194
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'edit', original_url: '/intro/admin/tours/13/edit' }
|
195
195
|
expect(json_body).not_to be_nil
|
196
196
|
expect(json_body[:data]).not_to be_empty
|
197
197
|
end
|
198
198
|
|
199
199
|
it 'should get empty data with valid controller, action without path params' do
|
200
|
-
published_tour.
|
200
|
+
published_tour.update(controller_path: 'intro/admin/tours', action_name: 'edit')
|
201
201
|
|
202
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'edit', original_url: '/intro/admin/tours/13'
|
203
|
-
expect(response).to
|
202
|
+
get :index, params: {controller_path: 'intro/admin/tours', action_name: 'edit', original_url: '/intro/admin/tours/13'}
|
203
|
+
expect(response.successful?).to be true
|
204
204
|
expect(json_body).not_to be_nil
|
205
205
|
expect(json_body[:data]).to be_empty
|
206
206
|
|
207
|
-
published_tour.
|
207
|
+
published_tour.update(controller_path: 'intro/admin/tours', action_name: 'edit', route: { simple: '/intro/admin/tours/13/edit' })
|
208
208
|
|
209
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'edit', original_url: '/intro/admin/tours/13'
|
209
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'edit', original_url: '/intro/admin/tours/13' }
|
210
210
|
expect(json_body).not_to be_nil
|
211
211
|
expect(json_body[:data]).to be_empty
|
212
212
|
end
|
@@ -214,18 +214,18 @@ describe Intro::ToursController, type: :controller do
|
|
214
214
|
it 'should get tours data with valid controller, action and query string' do
|
215
215
|
published_tour
|
216
216
|
|
217
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'new', original_url: '/intro/admin/tours/new?xyz=1'
|
218
|
-
expect(response).to
|
217
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'new', original_url: '/intro/admin/tours/new?xyz=1' }
|
218
|
+
expect(response.successful?).to be true
|
219
219
|
expect(json_body).not_to be_nil
|
220
220
|
expect(json_body[:data]).not_to be_empty
|
221
221
|
|
222
|
-
published_tour.
|
222
|
+
published_tour.update(route: { query: 'xyz=1' })
|
223
223
|
|
224
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'new', original_url: '/intro/admin/tours/new?xyz=1'
|
224
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'new', original_url: '/intro/admin/tours/new?xyz=1' }
|
225
225
|
expect(json_body).not_to be_nil
|
226
226
|
expect(json_body[:data]).not_to be_empty
|
227
227
|
|
228
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'new', original_url: '/intro/admin/tours/new?xyz=1&abc=2'
|
228
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'new', original_url: '/intro/admin/tours/new?xyz=1&abc=2' }
|
229
229
|
expect(json_body).not_to be_nil
|
230
230
|
expect(json_body[:data]).not_to be_empty
|
231
231
|
end
|
@@ -235,8 +235,8 @@ describe Intro::ToursController, type: :controller do
|
|
235
235
|
Intro.config.visible_without_signing_in = true
|
236
236
|
published_tour
|
237
237
|
|
238
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'new'
|
239
|
-
expect(response).to
|
238
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'new' }
|
239
|
+
expect(response.successful?).to be true
|
240
240
|
expect(json_body).not_to be_nil
|
241
241
|
expect(json_body[:data]).not_to be_empty
|
242
242
|
end
|
@@ -248,8 +248,8 @@ describe Intro::ToursController, type: :controller do
|
|
248
248
|
published_tour.options['not_sign_visible'] = true
|
249
249
|
published_tour.save
|
250
250
|
|
251
|
-
get :index, controller_path: 'intro/admin/tours', action_name: 'new'
|
252
|
-
expect(response).to
|
251
|
+
get :index, params: { controller_path: 'intro/admin/tours', action_name: 'new' }
|
252
|
+
expect(response.successful?).to be true
|
253
253
|
expect(json_body).not_to be_nil
|
254
254
|
expect(json_body[:data]).not_to be_empty
|
255
255
|
end
|
@@ -258,15 +258,15 @@ describe Intro::ToursController, type: :controller do
|
|
258
258
|
|
259
259
|
context '#record' do
|
260
260
|
it 'should get not_found without tour' do
|
261
|
-
post :record, id: 0
|
261
|
+
post :record, params: { id: 0 }
|
262
262
|
expect(response).to have_http_status(:not_found)
|
263
263
|
end
|
264
264
|
|
265
265
|
it 'should increment touch_count' do
|
266
266
|
expect(published_tour.tour_histories).to be_empty
|
267
|
-
expect { post :record, id: published_tour.id }.to change { published_tour.tour_histories.count }.by(1)
|
267
|
+
expect { post :record, params: { id: published_tour.id } }.to change { published_tour.tour_histories.count }.by(1)
|
268
268
|
expect(published_tour.tour_histories.first.touch_count).to eq 1
|
269
|
-
expect(response).to
|
269
|
+
expect(response.successful?).to be true
|
270
270
|
end
|
271
271
|
end
|
272
272
|
end
|