intro 0.4.0 → 0.4.1
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/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
|