/
tickets_test.rb
67 lines (57 loc) · 2.1 KB
/
tickets_test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
require "application_system_test_case"
class TicketsTest < ApplicationSystemTestCase
test '乗車して降車する' do
visit root_path
select '150円', from: '切符'
select 'うめだ', from: '乗車駅'
click_button '乗車する'
assert_text '乗車しました。'
select 'じゅうそう', from: '降車駅'
click_button '降車する'
assert_text '降車しました。'
end
test '運賃が足りない場合' do
visit root_path
select '150円', from: '切符'
select 'うめだ', from: '乗車駅'
click_button '乗車する'
assert_text '乗車しました。'
select 'みくに', from: '降車駅'
click_button '降車する'
assert_text '降車駅 では降車できません。'
end
test '同じ駅で降りる場合' do
visit root_path
select '150円', from: '切符'
select 'うめだ', from: '乗車駅'
click_button '乗車する'
assert_text '乗車しました。'
select 'うめだ', from: '降車駅'
click_button '降車する'
assert_text '降車駅 では降車できません。'
end
test 'すでに使用済みの切符を指定されたらトップページに移動する' do
# edit
ticket = Ticket.create!(fare: 150, entered_gate: gates(:umeda), exited_gate: gates(:juso))
visit edit_ticket_path(ticket)
assert_current_path root_path
assert_text '降車済みの切符です。'
# update
ticket = Ticket.create!(fare: 150, entered_gate: gates(:umeda))
visit edit_ticket_path(ticket)
ticket.update!(exited_gate: gates(:juso)) # 降車済みにする
select 'じゅうそう', from: '降車駅'
click_button '降車する'
assert_current_path root_path
assert_text '降車済みの切符です。'
end
test 'indexにアクセスされたらrootに移動する' do
visit tickets_path
assert_current_path root_path
end
test 'showにアクセスされたらeditに移動する' do
ticket = Ticket.create!(fare: 150, entered_gate: gates(:umeda))
visit ticket_path(ticket)
assert_current_path edit_ticket_path(ticket)
end
end