magazine 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +32 -0
- data/app/assets/javascripts/magazine/application.js +13 -0
- data/app/assets/stylesheets/magazine/application.css +15 -0
- data/app/controllers/magazine/application_controller.rb +4 -0
- data/app/controllers/magazine/articles_controller.rb +56 -0
- data/app/controllers/magazine/articles_controller.rb~ +55 -0
- data/app/helpers/magazine/application_helper.rb +30 -0
- data/app/helpers/magazine/application_helper.rb~ +30 -0
- data/app/models/magazine/data.rb~ +40 -0
- data/app/models/magazine/rack.rb +40 -0
- data/app/models/magazine/rack.rb~ +40 -0
- data/app/views/layouts/magazine/application.html.erb +14 -0
- data/config/routes.rb +5 -0
- data/config/routes.rb~ +5 -0
- data/lib/magazine.rb +8 -0
- data/lib/magazine.rb~ +8 -0
- data/lib/magazine/engine.rb +12 -0
- data/lib/magazine/engine.rb~ +13 -0
- data/lib/magazine/version.rb +3 -0
- data/lib/tasks/magazine_tasks.rake +4 -0
- data/spec/dummy/README.rdoc +28 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/javascripts/application.js +13 -0
- data/spec/dummy/app/assets/stylesheets/application.css +15 -0
- data/spec/dummy/app/controllers/application_controller.rb +9 -0
- data/spec/dummy/app/controllers/application_controller.rb~ +5 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/app/views/magazine/articles/index.html.erb +23 -0
- data/spec/dummy/app/views/magazine/articles/index.html.erb~ +23 -0
- data/spec/dummy/app/views/magazine/articles/shared/_list_article.html.erb +1 -0
- data/spec/dummy/app/views/magazine/articles/shared/_list_article.html.erb~ +1 -0
- data/spec/dummy/app/views/magazine/articles/shared/beans/_kilimanjaro.html.erb +1 -0
- data/spec/dummy/app/views/magazine/articles/shared/beans/_kilimanjaro.html.erb~ +0 -0
- data/spec/dummy/app/views/magazine/articles/shared/drip/_water.html.erb +1 -0
- data/spec/dummy/app/views/magazine/articles/shared/drip/_water.html.erb~ +0 -0
- data/spec/dummy/app/views/magazine/articles/show.html.erb +6 -0
- data/spec/dummy/app/views/magazine/articles/show.html.erb~ +6 -0
- data/spec/dummy/app/views/magazine/index.html.erb~ +7 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +23 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +37 -0
- data/spec/dummy/config/environments/production.rb +78 -0
- data/spec/dummy/config/environments/test.rb +39 -0
- data/spec/dummy/config/initializers/assets.rb +8 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/magazine.rb +1 -0
- data/spec/dummy/config/initializers/magazine.rb~ +0 -0
- data/spec/dummy/config/initializers/mime_types.rb +4 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/magazine.yml +48 -0
- data/spec/dummy/config/magazine.yml~ +48 -0
- data/spec/dummy/config/routes.rb +3 -0
- data/spec/dummy/config/routes.rb~ +4 -0
- data/spec/dummy/config/secrets.yml +22 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +0 -0
- data/spec/dummy/log/test.log +1180 -0
- data/spec/dummy/public/404.html +67 -0
- data/spec/dummy/public/422.html +67 -0
- data/spec/dummy/public/500.html +66 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/13ef700ed1b340ce31710c628c9b1506 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/3c36df6af1863f67917951036d1d7221 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/5bf1895db17a04b83c2f8c9bd096ca85 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/7f4ca612f398e7c52f7fd934cddbaa50 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/b9d7ea8e2449bbec7d43b6518403dc6c +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/ed792a88666afd4aff94594da589930e +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/spec/features/magazine/articles_spec.rb +109 -0
- data/spec/features/magazine/articles_spec.rb~ +109 -0
- data/spec/models/magazine/data.rb~ +5 -0
- data/spec/models/magazine/data_spec.rb~ +12 -0
- data/spec/models/magazine/rack_spec.rb +173 -0
- data/spec/models/magazine/rack_spec.rb~ +173 -0
- data/spec/rails_helper.rb +38 -0
- data/spec/rails_helper.rb~ +39 -0
- data/spec/spec_helper.rb +85 -0
- data/spec/spec_helper.rb~ +86 -0
- metadata +306 -0
@@ -0,0 +1,67 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>The page you were looking for doesn't exist (404)</title>
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
6
|
+
<style>
|
7
|
+
body {
|
8
|
+
background-color: #EFEFEF;
|
9
|
+
color: #2E2F30;
|
10
|
+
text-align: center;
|
11
|
+
font-family: arial, sans-serif;
|
12
|
+
margin: 0;
|
13
|
+
}
|
14
|
+
|
15
|
+
div.dialog {
|
16
|
+
width: 95%;
|
17
|
+
max-width: 33em;
|
18
|
+
margin: 4em auto 0;
|
19
|
+
}
|
20
|
+
|
21
|
+
div.dialog > div {
|
22
|
+
border: 1px solid #CCC;
|
23
|
+
border-right-color: #999;
|
24
|
+
border-left-color: #999;
|
25
|
+
border-bottom-color: #BBB;
|
26
|
+
border-top: #B00100 solid 4px;
|
27
|
+
border-top-left-radius: 9px;
|
28
|
+
border-top-right-radius: 9px;
|
29
|
+
background-color: white;
|
30
|
+
padding: 7px 12% 0;
|
31
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
32
|
+
}
|
33
|
+
|
34
|
+
h1 {
|
35
|
+
font-size: 100%;
|
36
|
+
color: #730E15;
|
37
|
+
line-height: 1.5em;
|
38
|
+
}
|
39
|
+
|
40
|
+
div.dialog > p {
|
41
|
+
margin: 0 0 1em;
|
42
|
+
padding: 1em;
|
43
|
+
background-color: #F7F7F7;
|
44
|
+
border: 1px solid #CCC;
|
45
|
+
border-right-color: #999;
|
46
|
+
border-left-color: #999;
|
47
|
+
border-bottom-color: #999;
|
48
|
+
border-bottom-left-radius: 4px;
|
49
|
+
border-bottom-right-radius: 4px;
|
50
|
+
border-top-color: #DADADA;
|
51
|
+
color: #666;
|
52
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
53
|
+
}
|
54
|
+
</style>
|
55
|
+
</head>
|
56
|
+
|
57
|
+
<body>
|
58
|
+
<!-- This file lives in public/404.html -->
|
59
|
+
<div class="dialog">
|
60
|
+
<div>
|
61
|
+
<h1>The page you were looking for doesn't exist.</h1>
|
62
|
+
<p>You may have mistyped the address or the page may have moved.</p>
|
63
|
+
</div>
|
64
|
+
<p>If you are the application owner check the logs for more information.</p>
|
65
|
+
</div>
|
66
|
+
</body>
|
67
|
+
</html>
|
@@ -0,0 +1,67 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>The change you wanted was rejected (422)</title>
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
6
|
+
<style>
|
7
|
+
body {
|
8
|
+
background-color: #EFEFEF;
|
9
|
+
color: #2E2F30;
|
10
|
+
text-align: center;
|
11
|
+
font-family: arial, sans-serif;
|
12
|
+
margin: 0;
|
13
|
+
}
|
14
|
+
|
15
|
+
div.dialog {
|
16
|
+
width: 95%;
|
17
|
+
max-width: 33em;
|
18
|
+
margin: 4em auto 0;
|
19
|
+
}
|
20
|
+
|
21
|
+
div.dialog > div {
|
22
|
+
border: 1px solid #CCC;
|
23
|
+
border-right-color: #999;
|
24
|
+
border-left-color: #999;
|
25
|
+
border-bottom-color: #BBB;
|
26
|
+
border-top: #B00100 solid 4px;
|
27
|
+
border-top-left-radius: 9px;
|
28
|
+
border-top-right-radius: 9px;
|
29
|
+
background-color: white;
|
30
|
+
padding: 7px 12% 0;
|
31
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
32
|
+
}
|
33
|
+
|
34
|
+
h1 {
|
35
|
+
font-size: 100%;
|
36
|
+
color: #730E15;
|
37
|
+
line-height: 1.5em;
|
38
|
+
}
|
39
|
+
|
40
|
+
div.dialog > p {
|
41
|
+
margin: 0 0 1em;
|
42
|
+
padding: 1em;
|
43
|
+
background-color: #F7F7F7;
|
44
|
+
border: 1px solid #CCC;
|
45
|
+
border-right-color: #999;
|
46
|
+
border-left-color: #999;
|
47
|
+
border-bottom-color: #999;
|
48
|
+
border-bottom-left-radius: 4px;
|
49
|
+
border-bottom-right-radius: 4px;
|
50
|
+
border-top-color: #DADADA;
|
51
|
+
color: #666;
|
52
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
53
|
+
}
|
54
|
+
</style>
|
55
|
+
</head>
|
56
|
+
|
57
|
+
<body>
|
58
|
+
<!-- This file lives in public/422.html -->
|
59
|
+
<div class="dialog">
|
60
|
+
<div>
|
61
|
+
<h1>The change you wanted was rejected.</h1>
|
62
|
+
<p>Maybe you tried to change something you didn't have access to.</p>
|
63
|
+
</div>
|
64
|
+
<p>If you are the application owner check the logs for more information.</p>
|
65
|
+
</div>
|
66
|
+
</body>
|
67
|
+
</html>
|
@@ -0,0 +1,66 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>We're sorry, but something went wrong (500)</title>
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
6
|
+
<style>
|
7
|
+
body {
|
8
|
+
background-color: #EFEFEF;
|
9
|
+
color: #2E2F30;
|
10
|
+
text-align: center;
|
11
|
+
font-family: arial, sans-serif;
|
12
|
+
margin: 0;
|
13
|
+
}
|
14
|
+
|
15
|
+
div.dialog {
|
16
|
+
width: 95%;
|
17
|
+
max-width: 33em;
|
18
|
+
margin: 4em auto 0;
|
19
|
+
}
|
20
|
+
|
21
|
+
div.dialog > div {
|
22
|
+
border: 1px solid #CCC;
|
23
|
+
border-right-color: #999;
|
24
|
+
border-left-color: #999;
|
25
|
+
border-bottom-color: #BBB;
|
26
|
+
border-top: #B00100 solid 4px;
|
27
|
+
border-top-left-radius: 9px;
|
28
|
+
border-top-right-radius: 9px;
|
29
|
+
background-color: white;
|
30
|
+
padding: 7px 12% 0;
|
31
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
32
|
+
}
|
33
|
+
|
34
|
+
h1 {
|
35
|
+
font-size: 100%;
|
36
|
+
color: #730E15;
|
37
|
+
line-height: 1.5em;
|
38
|
+
}
|
39
|
+
|
40
|
+
div.dialog > p {
|
41
|
+
margin: 0 0 1em;
|
42
|
+
padding: 1em;
|
43
|
+
background-color: #F7F7F7;
|
44
|
+
border: 1px solid #CCC;
|
45
|
+
border-right-color: #999;
|
46
|
+
border-left-color: #999;
|
47
|
+
border-bottom-color: #999;
|
48
|
+
border-bottom-left-radius: 4px;
|
49
|
+
border-bottom-right-radius: 4px;
|
50
|
+
border-top-color: #DADADA;
|
51
|
+
color: #666;
|
52
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
53
|
+
}
|
54
|
+
</style>
|
55
|
+
</head>
|
56
|
+
|
57
|
+
<body>
|
58
|
+
<!-- This file lives in public/500.html -->
|
59
|
+
<div class="dialog">
|
60
|
+
<div>
|
61
|
+
<h1>We're sorry, but something went wrong.</h1>
|
62
|
+
</div>
|
63
|
+
<p>If you are the application owner check the logs for more information.</p>
|
64
|
+
</div>
|
65
|
+
</body>
|
66
|
+
</html>
|
File without changes
|
@@ -0,0 +1,109 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
RSpec.describe 'Magazine Articles' do
|
4
|
+
feature 'visit /:mount_point' do
|
5
|
+
scenario do
|
6
|
+
visit magazine_path
|
7
|
+
# Category list
|
8
|
+
expect(page).to have_content('ドリップ')
|
9
|
+
expect(page).to have_content('コーヒー豆')
|
10
|
+
|
11
|
+
# Article list
|
12
|
+
expect(page).to have_selector('img[src="/images/magazine/cover_photo.jpg"]')
|
13
|
+
expect(page).to have_content('All Articles')
|
14
|
+
expect(page).to have_content('ウォータードリップ')
|
15
|
+
expect(page).to have_content('ペーパードリップ')
|
16
|
+
expect(page).to have_content('ネルドリップ')
|
17
|
+
expect(page).to have_content('ブルーマウンテン')
|
18
|
+
expect(page).to have_content('コナ')
|
19
|
+
expect(page).to have_content('キリマンジャロ')
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
feature 'visit /:mount_point/:category_slug' do
|
24
|
+
context 'exist category' do
|
25
|
+
scenario do
|
26
|
+
visit magazine.category_index_path('drip')
|
27
|
+
# Category list
|
28
|
+
expect(page).to have_content('ドリップ')
|
29
|
+
expect(page).to have_content('コーヒー豆')
|
30
|
+
|
31
|
+
# Article list
|
32
|
+
expect(page).to have_selector('img[src="/images/magazine/drip/cover_photo.jpg"]')
|
33
|
+
expect(page).to have_content('ドリップ Articles')
|
34
|
+
expect(page).to have_content('ウォータードリップ')
|
35
|
+
expect(page).to have_content('ペーパードリップ')
|
36
|
+
expect(page).to have_content('ネルドリップ')
|
37
|
+
expect(page).to_not have_content('ブルーマウンテン')
|
38
|
+
expect(page).to_not have_content('コナ')
|
39
|
+
expect(page).to_not have_content('キリマンジャロ')
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
context 'not exist category' do
|
44
|
+
scenario do
|
45
|
+
expect {
|
46
|
+
visit magazine.category_index_path('foo')
|
47
|
+
}.to raise_error(ActionController::RoutingError)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
feature 'visit /:mount_point/:category_slug/:article_slug' do
|
53
|
+
context 'exist article' do
|
54
|
+
context 'not in review' do
|
55
|
+
scenario do
|
56
|
+
visit magazine.article_path('drip', 'water')
|
57
|
+
expect(page).to have_content('ウォータードリップ')
|
58
|
+
expect(page).to have_content('専用の機材を用い水でコーヒーを抽出する方法。')
|
59
|
+
expect(page).to have_selector('img[src="/images/magazine/drip/water/thumbnail.jpg"]')
|
60
|
+
expect(page).to have_content('water drip content')
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
context 'in review' do
|
65
|
+
context 'success authorize' do
|
66
|
+
scenario do
|
67
|
+
expect {
|
68
|
+
visit magazine.article_path('beans', 'kilimanjaro')
|
69
|
+
}.to_not raise_error
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
context 'fail authorize' do
|
74
|
+
before do
|
75
|
+
class ::ApplicationController < ActionController::Base
|
76
|
+
private
|
77
|
+
def current_admin
|
78
|
+
false
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
after do
|
84
|
+
class ::ApplicationController < ActionController::Base
|
85
|
+
private
|
86
|
+
def current_admin
|
87
|
+
true
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
scenario do
|
93
|
+
expect {
|
94
|
+
visit magazine.article_path('beans', 'kilimanjaro')
|
95
|
+
}.to raise_error(ActionController::RoutingError)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
context 'not exist article' do
|
102
|
+
scenario do
|
103
|
+
expect {
|
104
|
+
visit magazine.article_path('foo', 'water')
|
105
|
+
}.to raise_error(ActionController::RoutingError)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
@@ -0,0 +1,109 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
RSpec.describe 'Magazine Articles' do
|
4
|
+
feature 'visit /:mount_point' do
|
5
|
+
scenario do
|
6
|
+
visit magazine_path
|
7
|
+
# Category list
|
8
|
+
expect(page).to have_content('ドリップ')
|
9
|
+
expect(page).to have_content('コーヒー豆')
|
10
|
+
|
11
|
+
# Article list
|
12
|
+
expect(page).to have_selector('img[src="/images/magazine/cover_photo.jpg"]')
|
13
|
+
expect(page).to have_content('All Articles')
|
14
|
+
expect(page).to have_content('ウォータードリップ')
|
15
|
+
expect(page).to have_content('ペーパードリップ')
|
16
|
+
expect(page).to have_content('ネルドリップ')
|
17
|
+
expect(page).to have_content('ブルーマウンテン')
|
18
|
+
expect(page).to have_content('コナ')
|
19
|
+
expect(page).to have_content('キリマンジャロ')
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
feature 'visit /:mount_point/:category_slug' do
|
24
|
+
context 'exist category' do
|
25
|
+
scenario do
|
26
|
+
visit magazine.category_index_path('drip')
|
27
|
+
# Category list
|
28
|
+
expect(page).to have_content('ドリップ')
|
29
|
+
expect(page).to have_content('コーヒー豆')
|
30
|
+
|
31
|
+
# Article list
|
32
|
+
expect(page).to have_selector('img[src="/images/magazine/drip/cover_photo.jpg"]')
|
33
|
+
expect(page).to have_content('ドリップ Articles')
|
34
|
+
expect(page).to have_content('ウォータードリップ')
|
35
|
+
expect(page).to have_content('ペーパードリップ')
|
36
|
+
expect(page).to have_content('ネルドリップ')
|
37
|
+
expect(page).to_not have_content('ブルーマウンテン')
|
38
|
+
expect(page).to_not have_content('コナ')
|
39
|
+
expect(page).to_not have_content('キリマンジャロ')
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
context 'not exist category' do
|
44
|
+
scenario do
|
45
|
+
expect {
|
46
|
+
visit magazine.category_index_path('foo')
|
47
|
+
}.to raise_error(ActionController::RoutingError)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
feature 'visit /:mount_point/:category_slug/:article_slug' do
|
53
|
+
context 'exist article' do
|
54
|
+
context 'not in review' do
|
55
|
+
scenario do
|
56
|
+
visit magazine.article_path('drip', 'water')
|
57
|
+
expect(page).to have_content('ウォータードリップ')
|
58
|
+
expect(page).to have_content('専用の機材を用い水でコーヒーを抽出する方法。')
|
59
|
+
expect(page).to have_selector('img[src="/images/magazine/drip/water/thumbnail.jpg"]')
|
60
|
+
expect(page).to have_content('water drip content')
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
context 'in review' do
|
65
|
+
context 'success authorize' do
|
66
|
+
scenario do
|
67
|
+
expect {
|
68
|
+
visit magazine.article_path('beans', 'kilimanjaro')
|
69
|
+
}.to_not raise_error
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
context 'fail authorize' do
|
74
|
+
before do
|
75
|
+
class ::ApplicationController < ActionController::Base
|
76
|
+
private
|
77
|
+
def current_admin
|
78
|
+
false
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
after do
|
84
|
+
class ::ApplicationController < ActionController::Base
|
85
|
+
private
|
86
|
+
def current_admin
|
87
|
+
true
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
scenario do
|
93
|
+
expect {
|
94
|
+
visit magazine.article_path('beans', 'kilimanjaro')
|
95
|
+
}.to raise_error(ActionController::RoutingError)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
context 'not exist article' do
|
102
|
+
scenario do
|
103
|
+
expect {
|
104
|
+
visit magazine.article_path('foo', 'water')
|
105
|
+
}.to raise_error(ActionController::RoutingError)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|