Daniel Schädler
bd2af09339
Add field to tournament containing playoff_teams_amount
...
This field represents how many teams advance into playoff stage after
the group stage has ended.
2019-06-05 16:46:06 +02:00
Daniel Schädler
15e344fa2e
Test returning unprocessable entity when match_score update fails
2019-06-05 10:13:26 +02:00
Daniel Schädler
24ce5b7a62
Test update_group_scores method
2019-06-05 09:49:22 +02:00
Daniel Schädler
258e1ceb1c
Rename groups to prepared_groups
...
This is done because prepared_groups only represents hashes of groups
that still need to be generated rather then actual group objects.
2019-06-05 09:49:22 +02:00
Daniel Schädler
c9cdb835a0
Remove unused Variable stage
2019-06-05 09:49:22 +02:00
Daniel Schädler
ceea95c3d3
Move scope of tournament creation in match_score controller test
...
This fixes the problem we had with the update of the match score
returning :forbidden because the @owner variable was not set properly.
Also names of the tests should now be easier to read.
2019-06-05 09:49:21 +02:00
Daniel Schädler
60f12430af
Dry out code with shared_examples
2019-06-05 09:49:21 +02:00
Daniel Schädler
b51513661f
Overwrite owner of tournament manually
2019-06-05 09:49:21 +02:00
Daniel Schädler
d9c901615e
Test if match_score point change triggers group score calculation
2019-06-05 09:49:21 +02:00
Daniel Schädler
f97c8e501c
Remove unnecessary :group_stage_only tournament
2019-06-05 09:49:21 +02:00
Daniel Schädler
5925f23720
Make Match Factory configurable for group_stage and group factory
2019-06-05 09:49:21 +02:00
Daniel Schädler
c674e5fcab
Add group_scores to groups factory, one for every team
2019-06-05 09:49:21 +02:00
Daniel Schädler
96398706ea
Add GroupScore objects for every team to the group stage
2019-06-05 09:49:21 +02:00
Daniel Schädler
957788651c
Update group_scores on match_score change if match is a group match
2019-06-05 09:49:21 +02:00
Daniel Schädler
564cec2820
Add method to check if match_score is part of a group match
2019-06-05 09:49:21 +02:00
Daniel Schädler
752beefca6
Correctly handle matches that are not started yet
2019-06-05 09:49:21 +02:00
Daniel Schädler
e868e936e4
Implement Methods returning points of teams per match
...
These methods return group_points scored_points and received_points
respectively when given a team that is present in the match
They return 0 when given a team that isn't contesting in that match
2019-06-05 09:26:11 +02:00
Daniel Schädler
990361a25b
Fix comparison that got lost in refactoring
2019-05-27 13:25:14 +02:00
Daniel Schädler
a710addde7
Create :stage_tournaments with realistic match positions
2019-05-26 22:03:22 +02:00
Daniel Schädler
537cccfa9e
Force save match_scores
2019-05-26 20:15:59 +02:00
Daniel Schädler
6f44823bc6
Change match state of match below
2019-05-26 20:15:59 +02:00
Daniel Schädler
8dd1f0b07c
Rearrange Test Code
2019-05-26 20:15:59 +02:00
Daniel Schädler
9f92ca7e5b
Move stopping of matches test
2019-05-26 20:15:59 +02:00
Daniel Schädler
d61b3b2b63
Fix factory name for stageless tournament
2019-05-26 20:15:59 +02:00
Daniel Schädler
21c79665e1
Check if .winner returns a Team
...
This is done to prevent Test from succeeding if both
.winner and .teams return nil
2019-05-26 20:15:59 +02:00
Daniel Schädler
74b345dce4
Fix factory name for stage tournament
2019-05-26 20:15:59 +02:00
Daniel Schädler
5457d50277
Simplify code finding the tournament
...
Co-Authored-By: Thor77 <thor77@thor77.org>
2019-05-26 20:15:59 +02:00
Daniel Schädler
0337b6fad8
Save match_scores after editing them in tests
2019-05-26 20:15:59 +02:00
Daniel Schädler
d0d38a7972
Test populate_match_below Interactor
2019-05-26 20:15:58 +02:00
Daniel Schädler
e0ef39cc4b
Test populate_match_below method
2019-05-26 20:15:58 +02:00
Daniel Schädler
d2f5d3594e
Test performance optimization
...
In general this generates less unnecessary faker data
2019-05-26 20:15:16 +02:00
Daniel Schädler
bc055843d9
Test stopping of Matches
2019-05-26 20:14:13 +02:00
Daniel Schädler
2f77d2d25b
Add winner method to match
2019-05-26 20:14:13 +02:00
Daniel Schädler
280b0c1dec
Change status of Match to only represent being finished
...
The winner will be a attribute of the Match instead of something
that is written in its status.
2019-05-26 20:14:13 +02:00
Daniel Schädler
8388af20f0
Generalize tournament save interactor
...
It now is responsible for saving all ApplicationRecord objects to the
database. This will reduce code duplication one we have other objects
that need to be saved. (As we will soon need to save individual matches)
2019-05-26 20:14:13 +02:00
Daniel Schädler
51056d340c
Save the whole stage instead of the single matches
2019-05-22 09:25:07 +02:00
Daniel Schädler
b36e3c4251
Delegate owner of team to tournament again
2019-05-22 09:25:07 +02:00
Daniel Schädler
27709f0136
This change will basically solve climate change as it saves all
...
the computing power in the whole world.
2019-05-22 09:25:07 +02:00
Thor77
b5377db1f3
Reformat indention
2019-05-22 09:25:07 +02:00
Daniel Schädler
d548eee245
Change .map to .each
2019-05-22 09:25:07 +02:00
Daniel Schädler
dcb19461be
Add group_stage_only_tournament factory
2019-05-22 09:25:07 +02:00
Daniel Schädler
03d7369a1c
Remove link between team.owner and tournament
2019-05-22 09:25:07 +02:00
Daniel Schädler
f73820f2f2
Reduce standart amount of teams within a tournament to 8
2019-05-22 09:25:07 +02:00
Daniel Schädler
3f4c6336c2
Add dummy_stage_tournament
2019-05-22 09:25:07 +02:00
Daniel Schädler
c55b45bdc1
Add position to all matches
2019-05-22 09:25:07 +02:00
Daniel Schädler
80b14900d0
Makes match_type configurable instead of only setting its state
2019-05-22 09:25:07 +02:00
Daniel Schädler
b9afa956ce
Add empty_prepared_playoff_match
2019-05-22 09:25:07 +02:00
Thor77
42d9b0957f
Save match position
2019-05-22 09:25:07 +02:00
Daniel Schädler
8a70d5f333
For stage tournament, first stage has running matches
2019-05-22 09:25:07 +02:00
Daniel Schädler
cb82ca44d8
Put running playoff matches in a playoff stage (only on first level)
2019-05-22 09:25:07 +02:00
Daniel Schädler
7afb5ae552
Create realistic number of Matches
...
When match_count is -1 the number of matches generated is automatically
2 ^ stage.level -> This is the amount of stages present in a "real"
tournament stage. When supplying a positive number, it generates that
many matches like before.
This also now adds the position to the match list after creating them
2019-05-22 09:25:07 +02:00
Daniel Schädler
55f1656328
Manually create the list of stages to assign stage levels correctly
2019-05-22 09:25:07 +02:00
Daniel Schädler
6d66328dc8
Move group_stage tournament into stage tournament
2019-05-22 09:25:07 +02:00
Daniel Schädler
8026e66d9b
Add :undecided_group_match and :decided_playoff_match
2019-05-22 09:25:07 +02:00
Thor77
39fc9f1630
Use factories instead of creating models manually
2019-05-16 20:53:05 +02:00
Thor77
b307abfc43
Add routing to StatisticsController
2019-05-16 20:53:05 +02:00
Thor77
99bfe6ed70
Add StatisticsController
2019-05-16 20:53:04 +02:00
Thor77
bdcfbe934b
Add StatisticsService
2019-05-16 20:53:04 +02:00
Daniel Schädler
cda1cfcb50
Remove deprecated Factory Tests
2019-05-15 09:12:01 +02:00
Daniel Schädler
9de127e75a
Change from rake Task to a single spec
...
This has the advantage that if you run the whole suite it gets run
automatically but if you run a single test it doesn't. This seems
like the best of both worlds..
2019-05-15 09:12:01 +02:00
Thor77
3876f57d32
Add methods and specs to update a match
2019-05-07 18:41:53 +02:00
Thor77
f93c714e1a
Add test for empty team hashes
2019-05-04 20:34:57 +02:00
Daniel Schädler
ae29427e5d
Don't run "before" before each test
2019-05-04 20:34:57 +02:00
Daniel Schädler
f149055965
Test teams methods of Matches, Groups and Stages
2019-05-04 20:34:57 +02:00
Daniel Schädler
babc233412
Adds :playoff_stage as factory
2019-05-04 20:34:57 +02:00
Daniel Schädler
db1518bdbd
Raise exceptions upon error in group_stage_service
2019-05-04 20:34:57 +02:00
Daniel Schädler
0f7279de97
Add running_group_match factory
2019-05-04 20:34:57 +02:00
Daniel Schädler
88d8367c47
Check the length of the match positions instead of their exact content
2019-05-04 20:34:57 +02:00
Daniel Schädler
bbeda07028
Change test / context / describe names
2019-05-04 20:34:57 +02:00
Daniel Schädler
22f0204f29
Add missing factory specs
2019-05-04 20:34:57 +02:00
Daniel Schädler
3fc344249d
Add multiple factories
2019-05-04 20:34:57 +02:00
Daniel Schädler
6811c9e7eb
Corrects Test name
2019-05-04 20:34:57 +02:00
Daniel Schädler
acfc388da4
Implements group stage tournament creation
2019-05-04 20:34:57 +02:00
Daniel Schädler
300f16b4c2
Rename create_data to create_playoff_tournament_data
...
This is done in preparation for the addition of group stage data
within the next few commits
2019-05-04 20:34:57 +02:00
Daniel Schädler
6dba0ec738
Test GroupStageService
2019-05-04 20:34:57 +02:00
Daniel Schädler
f47ffebcd4
Makes Groups have different incrementing numbers
2019-05-04 20:34:57 +02:00
Daniel Schädler
04b0476603
Test Add Group Stage Interactor
2019-05-04 20:34:57 +02:00
Thor77
6d40d091a4
Modify tournament index spec for "type" parameter
2019-04-24 22:49:48 +02:00
Thor77
c4d03b52c3
Fix tournament index spec apply wrong auth header
...
because the user @owner doesn't have any private tournaments, therefore
the spec was pointless
2019-04-24 22:49:48 +02:00
Thor77
09ca262ab1
Move index specs into without parameters context
2019-04-24 22:49:48 +02:00
Daniel Schädler
d3d572ea1b
Change return for 0 teams to exception
2019-04-23 14:21:29 +02:00
Daniel Schädler
a449e0193a
Use match_array instead of eq
...
This is the proper way to compare arrays
2019-04-23 14:19:36 +02:00
Daniel Schädler
a30ff860e9
Return a valid list of matches for 1 team
2019-04-23 14:19:36 +02:00
Daniel Schädler
d221928a12
Test generation of playoff stages for 1 2 and 3 teams
2019-04-23 14:19:36 +02:00
Daniel Schädler
8b11f73a58
Add another Test Case
2019-04-23 14:19:36 +02:00
Daniel Schädler
9918b4a71c
Improve test readability in logs
2019-04-23 14:19:36 +02:00
Daniel Schädler
6baaebddd9
Add Test for team numbers that are not powers of 2
2019-04-23 14:19:36 +02:00
Daniel Schädler
00bc8c82e3
Correct Expected Test results
...
(I am bad at quick math)
2019-04-23 14:19:36 +02:00
Thor77
847f4a1c69
Add password to User factory
2019-04-23 10:48:25 +02:00
Thor77
3ef3b6985f
Add spec for custom username validation
2019-04-23 10:46:36 +02:00
Thor77
a14a5224e5
Add spec for tournament-creation with invalid team
2019-04-16 13:24:58 +02:00
Thor77
2b2fccf076
Add tests checking generated stage
2019-04-09 10:47:17 +02:00
Thor77
cdd6b6737f
Add test for non-existing team and names
2019-04-08 11:15:24 +02:00
Thor77
2385650be0
Adapt tests to updated tournament controller
2019-04-07 19:27:28 +02:00
Thor77
12c14303f2
Validate exact tournament lists instead of sizes
2019-04-07 18:46:48 +02:00
Thor77
667d6a028c
Test controller params as they're documented
2019-04-07 13:40:34 +02:00
Thor77
a99ae0e248
Assert tournament/stage/group relations optional
2019-04-03 10:03:45 +02:00
Thor77
d7a8504b45
Replace deprecated Faker::Dog
2019-04-03 09:45:56 +02:00
Thor77
c38066408f
Adapt deserialization methods to new schema
2018-12-11 17:14:43 +01:00
Thor77
945c499de7
Skip spec for tournament creation for now
...
because we need to find a proper way to implement it in a RESTful way
2018-12-11 17:14:43 +01:00
Thor77
dcb8e6b216
Adapt controller specs to new api schema
2018-12-11 17:14:43 +01:00
Thor77
8261a919fa
Add workaround for shoulda-matchers#1067
...
https://github.com/thoughtbot/shoulda-matchers/issues/1067
This issue led to the failure of the solution I implemented before in 8f88362264 .
Because of it shoulda-matchers will just ignore the given record for the
validation check and just take the first existing one which in this case
can still contain a only-digits code, because it was generated in the
before-block.
2018-12-02 21:16:24 +01:00
Thor77
8f88362264
Use code with only alphas for unqiue-validation
...
Because in some ocassions a tournament code with only digits is
generated which would fail this test because shoulda is not able to
convert it to an uppercase version to test for case-sensitivity of the
validation.
2018-12-02 13:54:27 +01:00
Daniel Schädler
dd2f66f49d
Score is now MatchScore & Score Attribute is Points Attribute
2018-11-30 15:10:33 +01:00
Thor77
e763f14719
Add ScoresController and their specs
2018-11-30 14:42:12 +01:00
Daniel Schädler
68f9b3b2b3
Change Score to MatchScore & MatchScore score attribute to points
...
This is done to improve the naming and therefore make things easier to understand.
2018-11-30 14:15:48 +01:00
Daniel Schädler
7ba1f98fb4
Implements Adding Tournaments to Database
2018-11-29 11:58:27 +01:00
Daniel Schädler
26bcc3dc88
Implement Adding Playoffs to a tournament
2018-11-29 11:10:15 +01:00
Daniel Schädler
7f243b06a2
Implement Utils Class
2018-11-29 11:03:44 +01:00
Daniel Schädler
a75087aa6c
Prepare spec_helper for focused tests
2018-11-29 11:02:25 +01:00
Daniel Schädler
8e7869b879
Improve Factories
2018-11-29 11:01:52 +01:00
Daniel Schädler
34159f7e01
Add a running playoff Match to Match Factory
2018-11-29 11:01:17 +01:00
Daniel Schädler
fbb87f5f7c
Add a tournament with stages to factory
2018-11-29 10:48:26 +01:00
Thor77
70cc88920b
Remove unused global variables
2018-11-25 22:55:49 +01:00
Thor77
29b570bafa
Add deserialize_list helper
2018-11-25 22:55:49 +01:00
Thor77
3bb1e74172
Modify local instead of global request
...
in apply_authentication_headers_for helper
to allow usage of different authenticated user in one testcase
2018-11-25 22:55:49 +01:00
Thor77
9a41b19e97
Add team factory without parent tournament
2018-11-25 22:55:49 +01:00
Thor77
83c76c456c
Add TournamentsControllers specs
2018-11-25 22:55:48 +01:00
Thor77
20288ff7e4
Use DeserializeHelpers.deserialize_response
2018-11-24 20:34:13 +01:00
Thor77
a8e6ac3dfd
Add and include DeserializeHelpers
2018-11-24 20:33:31 +01:00
Thor77
0308dc121f
Add TeamsController and corresponding specs
2018-11-24 19:18:03 +01:00
Thor77
3744bf6858
Add authentification helper to RSpec config
2018-11-24 19:16:55 +01:00
Thor77
6c24180715
Add MatchesController and specs for it
2018-11-21 18:57:16 +01:00
Thor77
673e12c052
Validate Stage xor Group present in match
2018-11-20 16:03:58 +01:00
Thor77
1cd4835651
Add valid factories for all models
2018-11-19 14:50:41 +01:00
Thor77
6e1af687ad
Add default for scores.score
2018-11-19 14:41:30 +01:00
Thor77
c573fd9edd
Fix team spec expecting group_score relation
2018-11-19 11:47:14 +01:00
Thor77
def5de2a7e
Add factories for groups, matches, scores & stages
2018-11-19 11:47:13 +01:00
Thor77
1ec2fa6cf5
Add model test for group,match,score,stage,user
2018-11-19 11:47:13 +01:00
Thor77
b09f4eceb2
Add tests for valid factory to all model tests
2018-11-19 11:47:13 +01:00
Thor77
1a24dd3057
Add association tests for new schema
2018-11-19 11:47:13 +01:00
Thor77
b72bc69b81
Add spec for GroupScore model
2018-11-19 11:47:13 +01:00
Thor77
579412ab89
Add teams and group scores factory
2018-11-19 11:47:12 +01:00
Thor77
ca0013b9b2
Use expect instead of assert syntax
2018-11-19 11:47:12 +01:00
Thor77
3043c9f0d7
Add User factory
2018-11-19 11:47:12 +01:00
Thor77
ff63380c9c
Add Tournament model spec and factory
2018-11-19 11:47:12 +01:00
Thor77
94d2c4291a
Add coveralls coverage reporting
2018-11-19 11:38:56 +01:00
Thor77
bcb4bb7ccb
Initialize RSpec setup
...
including shoulda, Faker and FactoryBot
2018-11-13 16:56:16 +01:00