Updated more tests.

Commit
0f3c5a381924cb10abbe57c67c3f5a00e5b790a6
Author
Marius Peter <marius.peter@tutanota.com>
Author date
Committer
Marius Peter <marius.peter@tutanota.com>
Committer date
Changed files
test/models/score_test.rb
index a895158d..ecf5558c 100644..100644
@@ -11,31 +11,39 @@
11 11
12 12 test "should have associated tartiflette" do
13 13 @score.tartiflette = nil
14 Removed: assert_not @score.valid?, "Score has no associated tartiflette."
14 Added: assert_not @score.valid?, "Score should not be valid without an associated tartiflette."
15 15 end
16 16
17 17 test "should have associated scoring_criterium" do
18 18 @score.scoring_criterium = nil
19 Removed: assert_not @score.valid?, "Score has no associated scoring_criterium."
19 Added: assert_not @score.valid?, "Score should not be valid without an associated scoring criterium."
20 20 end
21 21
22 22 test "should have value" do
23 23 @score.value = nil
24 Removed: assert_not @score.valid?, "Score has no value."
24 Added: assert_not @score.valid?, "Score should not be valid without a value."
25 25 end
26 26
27 27 test "value should be between 1 and 5" do
28 28 @score.value = 3
29 Removed: assert @score.valid?, "Score value is invalid."
29 Added: assert @score.valid?, "Score with a value of 3 should be valid."
30 30 end
31 31
32 32 test "value should be greater than or equal to 1" do
33 33 @score.value = 0
34 Removed: assert_not @score.valid?, "Score is less than 1."
34 Added: assert_not @score.valid?, "Score should not be valid with a value less than 1."
35 35 end
36 36
37 37 test "value should be less than or equal to 5" do
38 38 @score.value = 6
39 Removed: assert_not @score.valid?, "Score is greater than 5."
39 Added: assert_not @score.valid?, "Score should not be valid with a value greater than 5."
40 40 end
41 Added:
42 Added: test "should have a session_id" do
43 Added: @score.session_id = nil
44 Added: assert_not @score.valid?, "Score should not be valid without a session_id."
45 Added: assert_includes @score.errors[:session_id], "can't be blank"
46 Added: end
47 Added:
48 Added:
41 49 end
test/services/tartiflette_scoring_service.rb
index 6796342a..0a66d5bf 100644..100644
@@ -2,8 +2,9 @@
2 2
3 3 class TartifletteScoringServiceTest < ActiveSupport::TestCase
4 4 setup do
5 Removed: @tartiflette = Tartiflette.new(scoring_id: 1)
6 Removed: @session = {}
5 Added: @tartiflette = tartiflettes(:one)
6 Added: @existing_score = scores(:one)
7 Added: @session = { id: @existing_score.session_id }
7 8 end
8 9
9 10 test "should check if tartiflette is already scored" do
@@ -14,6 +15,43 @@
14 15 test "should mark tartiflette as scored" do
15 16 TartifletteScoringService.mark_as_scored(@tartiflette, @session)
16 17 assert_includes @session[:scored_tartiflettes], @tartiflette.id
18 Added: end
19 Added:
20 Added: test "should process scores for tartiflette" do
21 Added: scores = {
22 Added: "1" => { value: 4, id: nil }, # New score for criterium_id 1
23 Added: "2" => { value: 5, id: @existing_score.id } # Update existing score
24 Added: }
25 Added:
26 Added: assert_nothing_raised do
27 Added: TartifletteScoringService.process_scores(@tartiflette, scores, @session)
28 Added: end
29 Added:
30 Added: # Assertions for new score
31 Added: new_score = Score.find_by(scoring_criterium_id: 1, tartiflette: @tartiflette)
32 Added: assert_equal 4, new_score.value
33 Added: assert_equal @session[:id], new_score.session_id
34 Added:
35 Added: # Assertions for updated score
36 Added: @existing_score.reload
37 Added: assert_equal 5, @existing_score.value
38 Added: end
39 Added:
40 Added: test "should raise error for invalid data" do
41 Added: scores = {
42 Added: "1" => { value: nil, id: nil }, # Missing value
43 Added: "2" => { value: 5, id: nil } # Valid score
44 Added: }
45 Added:
46 Added: assert_raises(StandardError, /Failed to process scores/) do
47 Added: TartifletteScoringService.process_scores(@tartiflette, scores, @session)
48 Added: end
49 Added: end
50 Added:
51 Added: test "should mark tartiflette as scored in session" do
52 Added: session = { scored_tartiflettes: [] }
53 Added: TartifletteScoringService.mark_as_scored(@tartiflette, session)
54 Added: assert_includes session[:scored_tartiflettes], @tartiflette.id
17 55 end
18 56
19 57 test "should calculate average of all scores for a tartiflette" do