[Rails] Site internet de la World Tartiflette Tour.
Updated Tartiflette scoring service tests. Still no pass.
test/services/tartiflette_scoring_service.rb
@@ -17,21 +17,31 @@
17
17
assert_includes @session[:scored_tartiflettes], @tartiflette.id
18
18
end
19
19
20
Removed:
test "should process scores for tartiflette" do
20
Added:
test "should submit new scores for tartiflette" do
21
21
scores = {
22
Removed:
"1" => { value: 4, id: nil }, # New score for criterium_id 1
23
Removed:
"2" => { value: 5, id: @existing_score.id } # Update existing score
22
Added:
"1" => { value: 4, id: nil } # New score for criterium_id 1
24
23
}
25
24
26
25
assert_nothing_raised do
27
Removed:
TartifletteScoringService.process_scores(@tartiflette, scores, @session)
26
Added:
TartifletteScoringService.submit_scores(@tartiflette, scores, @session)
28
27
end
29
28
30
29
# Assertions for new score
31
30
new_score = Score.find_by(scoring_criterium_id: 1, tartiflette: @tartiflette)
31
Added:
assert_not_nil new_score, "New score should be created"
32
32
assert_equal 4, new_score.value
33
Removed:
assert_equal @session[:id], new_score.session_id
33
Added:
assert_equal @session.id, new_score.session_id
34
Added:
end
34
35
36
Added:
test "should update existing scores for tartiflette" do
37
Added:
scores = {
38
Added:
"2" => { value: 5, id: @existing_score.id } # Update existing score
39
Added:
}
40
Added:
41
Added:
assert_nothing_raised do
42
Added:
TartifletteScoringService.update_scores(@tartiflette, scores, @session)
43
Added:
end
44
Added:
35
45
# Assertions for updated score
36
46
@existing_score.reload
37
47
assert_equal 5, @existing_score.value
@@ -55,32 +65,41 @@
55
65
end
56
66
57
67
test "should calculate average of all scores for a tartiflette" do
58
Removed:
Score.create!(tartiflette: @tartiflette,
59
Removed:
scoring_criterium: scoring_criteria(:one),
60
Removed:
value: 4)
61
Removed:
Score.create!(tartiflette: @tartiflette,
62
Removed:
scoring_criterium: scoring_criteria(:two),
63
Removed:
value: 5)
64
Removed:
assert_equal 4.5, TartifletteScoringService.average_score(@tartiflette)
68
Added:
session_id = SecureRandom.uuid
69
Added:
Score.create!(
70
Added:
tartiflette: @tartiflette,
71
Added:
scoring_criterium: scoring_criteria(:one),
72
Added:
value: 1,
73
Added:
session_id: session_id
74
Added:
)
75
Added:
76
Added:
Score.create!(
77
Added:
tartiflette: @tartiflette,
78
Added:
scoring_criterium: scoring_criteria(:two),
79
Added:
value: 4,
80
Added:
session_id: session_id
81
Added:
)
82
Added:
average_score = TartifletteScoringService.average_score(@tartiflette)
83
Added:
assert_equal 2, average_score, "The average score should be 2"
65
84
end
66
85
67
86
test "should calculate average score by category for a tartiflette" do
68
Removed:
Score.create!(tartiflette: @tartiflette,
69
Removed:
scoring_criterium: scoring_criteria(:one),
70
Removed:
value: 1)
71
Removed:
Score.create!(tartiflette: @tartiflette,
72
Removed:
scoring_criterium: scoring_criteria(:one),
73
Removed:
value: 2)
74
Removed:
Score.create!(tartiflette: @tartiflette,
75
Removed:
scoring_criterium: scoring_criteria(:four),
76
Removed:
value: 4)
77
Removed:
Score.create!(tartiflette: @tartiflette,
78
Removed:
scoring_criterium: scoring_criteria(:four),
79
Removed:
value: 5)
80
Removed:
average_score_by_category = { scoring_criteria(:one)[:category] => 1.5,
81
Removed:
scoring_criteria(:four)[:category] => 4.5
82
Removed:
}
83
Removed:
assert_equal average_score_by_category,
84
Removed:
TartifletteScoringService.average_score_by_category(@tartiflette)
87
Added:
session_id = SecureRandom.uuid
88
Added:
Score.create!(
89
Added:
tartiflette: @tartiflette,
90
Added:
scoring_criterium: scoring_criteria(:one),
91
Added:
value: 4,
92
Added:
session_id: session_id
93
Added:
)
94
Added:
Score.create!(
95
Added:
tartiflette: @tartiflette,
96
Added:
scoring_criterium: scoring_criteria(:two),
97
Added:
value: 5,
98
Added:
session_id: session_id
99
Added:
)
100
Added:
averages = TartifletteScoringService.average_score_by_category(@tartiflette)
101
Added:
assert_equal 4.0, averages[scoring_criteria(:one)]
102
Added:
assert_equal 5.0, averages[scoring_criteria(:one)]
85
103
end
104
Added:
86
105
end