volleyballsimtypes 0.0.464 → 0.0.467

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/cjs/src/api/index.d.ts +7 -5
  2. package/dist/cjs/src/data/models/tactics.d.ts +7 -6
  3. package/dist/cjs/src/data/models/tactics.js +1 -1
  4. package/dist/cjs/src/data/transformers/tactics.js +71 -59
  5. package/dist/cjs/src/service/team/index.d.ts +1 -1
  6. package/dist/cjs/src/service/team/index.js +1 -1
  7. package/dist/cjs/src/service/team/injury-replacement.d.ts +6 -0
  8. package/dist/cjs/src/service/team/schemas/injury-replacement.z.test.js +142 -0
  9. package/dist/cjs/src/service/team/schemas/tactics.z.d.ts +4 -3
  10. package/dist/cjs/src/service/team/schemas/tactics.z.js +38 -23
  11. package/dist/cjs/src/service/team/schemas/team.z.d.ts +4 -3
  12. package/dist/cjs/src/service/team/tactics.d.ts +3 -3
  13. package/dist/cjs/src/service/team/tactics.js +2 -2
  14. package/dist/esm/src/api/index.d.ts +7 -5
  15. package/dist/esm/src/data/models/tactics.d.ts +7 -6
  16. package/dist/esm/src/data/models/tactics.js +1 -1
  17. package/dist/esm/src/data/transformers/tactics.js +71 -59
  18. package/dist/esm/src/service/team/index.d.ts +1 -1
  19. package/dist/esm/src/service/team/index.js +1 -1
  20. package/dist/esm/src/service/team/injury-replacement.d.ts +6 -0
  21. package/dist/esm/src/service/team/schemas/injury-replacement.z.test.js +140 -0
  22. package/dist/esm/src/service/team/schemas/tactics.z.d.ts +4 -3
  23. package/dist/esm/src/service/team/schemas/tactics.z.js +38 -23
  24. package/dist/esm/src/service/team/schemas/team.z.d.ts +4 -3
  25. package/dist/esm/src/service/team/tactics.d.ts +3 -3
  26. package/dist/esm/src/service/team/tactics.js +2 -2
  27. package/package.json +1 -1
  28. package/dist/cjs/src/service/team/reserve-priority.d.ts +0 -6
  29. package/dist/cjs/src/service/team/schemas/reserve-priority.z.test.js +0 -125
  30. package/dist/esm/src/service/team/reserve-priority.d.ts +0 -6
  31. package/dist/esm/src/service/team/schemas/reserve-priority.z.test.js +0 -123
  32. /package/dist/cjs/src/service/team/{reserve-priority.js → injury-replacement.js} +0 -0
  33. /package/dist/cjs/src/service/team/schemas/{reserve-priority.z.test.d.ts → injury-replacement.z.test.d.ts} +0 -0
  34. /package/dist/esm/src/service/team/{reserve-priority.js → injury-replacement.js} +0 -0
  35. /package/dist/esm/src/service/team/schemas/{reserve-priority.z.test.d.ts → injury-replacement.z.test.d.ts} +0 -0
@@ -1,125 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const globals_1 = require("@jest/globals");
4
- const tactics_z_1 = require("./tactics.z");
5
- const test_helpers_1 = require("../../test-helpers");
6
- (0, globals_1.describe)('TacticsInputSchema — injuries (replaceInjuredImmediately / reservePriorities)', () => {
7
- const country = (0, test_helpers_1.makeCountry)();
8
- const p1 = (0, test_helpers_1.makePlayer)(country);
9
- const p2 = (0, test_helpers_1.makePlayer)(country);
10
- const p3 = (0, test_helpers_1.makePlayer)(country);
11
- const p4 = (0, test_helpers_1.makePlayer)(country);
12
- const p5 = (0, test_helpers_1.makePlayer)(country);
13
- const p6 = (0, test_helpers_1.makePlayer)(country);
14
- const benchPlayer = (0, test_helpers_1.makePlayer)(country);
15
- const libero = (0, test_helpers_1.makePlayer)(country);
16
- const reserveA = (0, test_helpers_1.makePlayer)(country);
17
- const reserveB = (0, test_helpers_1.makePlayer)(country);
18
- function baseInput(overrides = {}) {
19
- return {
20
- lineup: {
21
- 4: p4,
22
- 3: p3,
23
- 2: p2,
24
- 5: p5,
25
- 6: p6,
26
- 1: p1,
27
- 0: libero,
28
- bench: [benchPlayer]
29
- },
30
- liberoReplacements: [],
31
- ...overrides
32
- };
33
- }
34
- (0, globals_1.it)('defaults replaceInjuredImmediately to true and reservePriorities to empty', () => {
35
- const res = tactics_z_1.TacticsInputSchema.safeParse(baseInput());
36
- (0, globals_1.expect)(res.success).toBe(true);
37
- if (res.success) {
38
- (0, globals_1.expect)(res.data.replaceInjuredImmediately).toBe(true);
39
- (0, globals_1.expect)(res.data.reservePriorities).toEqual([]);
40
- }
41
- });
42
- (0, globals_1.it)('accepts replaceInjuredImmediately false', () => {
43
- const res = tactics_z_1.TacticsInputSchema.safeParse(baseInput({ replaceInjuredImmediately: false }));
44
- (0, globals_1.expect)(res.success).toBe(true);
45
- if (res.success)
46
- (0, globals_1.expect)(res.data.replaceInjuredImmediately).toBe(false);
47
- });
48
- (0, globals_1.it)('accepts reserve lists of non-lineup roster players', () => {
49
- const res = tactics_z_1.TacticsInputSchema.safeParse(baseInput({
50
- reservePriorities: [
51
- { position: 4, reserves: [reserveA] },
52
- { position: 3, reserves: [reserveB] }
53
- ]
54
- }));
55
- (0, globals_1.expect)(res.success).toBe(true);
56
- });
57
- (0, globals_1.it)('rejects a reserve that is a starter', () => {
58
- const res = tactics_z_1.TacticsInputSchema.safeParse(baseInput({
59
- reservePriorities: [{ position: 4, reserves: [p1] }]
60
- }));
61
- (0, globals_1.expect)(res.success).toBe(false);
62
- if (!res.success) {
63
- (0, globals_1.expect)(res.error.issues.some(issue => issue.message === 'RESERVE_MUST_NOT_BE_IN_LINEUP')).toBe(true);
64
- }
65
- });
66
- (0, globals_1.it)('rejects a reserve that is on the bench', () => {
67
- const res = tactics_z_1.TacticsInputSchema.safeParse(baseInput({
68
- reservePriorities: [{ position: 4, reserves: [benchPlayer] }]
69
- }));
70
- (0, globals_1.expect)(res.success).toBe(false);
71
- if (!res.success) {
72
- (0, globals_1.expect)(res.error.issues.some(issue => issue.message === 'RESERVE_MUST_NOT_BE_IN_LINEUP')).toBe(true);
73
- }
74
- });
75
- (0, globals_1.it)('rejects a reserve that is the libero', () => {
76
- const res = tactics_z_1.TacticsInputSchema.safeParse(baseInput({
77
- reservePriorities: [{ position: 4, reserves: [libero] }]
78
- }));
79
- (0, globals_1.expect)(res.success).toBe(false);
80
- if (!res.success) {
81
- (0, globals_1.expect)(res.error.issues.some(issue => issue.message === 'RESERVE_MUST_NOT_BE_IN_LINEUP')).toBe(true);
82
- }
83
- });
84
- (0, globals_1.it)('rejects a reserve that doubles as the second libero', () => {
85
- const res = tactics_z_1.TacticsInputSchema.safeParse(baseInput({
86
- secondLibero: reserveA,
87
- liberoSub: { mode: 'ALWAYS' },
88
- reservePriorities: [{ position: 4, reserves: [reserveA] }]
89
- }));
90
- (0, globals_1.expect)(res.success).toBe(false);
91
- if (!res.success) {
92
- (0, globals_1.expect)(res.error.issues.some(issue => issue.message === 'RESERVE_MUST_NOT_BE_SECOND_LIBERO')).toBe(true);
93
- }
94
- });
95
- (0, globals_1.it)('rejects the same player in two lists', () => {
96
- const res = tactics_z_1.TacticsInputSchema.safeParse(baseInput({
97
- reservePriorities: [
98
- { position: 4, reserves: [reserveA] },
99
- { position: 3, reserves: [reserveA] }
100
- ]
101
- }));
102
- (0, globals_1.expect)(res.success).toBe(false);
103
- if (!res.success) {
104
- (0, globals_1.expect)(res.error.issues.some(issue => issue.message === 'RESERVE_IN_MULTIPLE_LISTS')).toBe(true);
105
- }
106
- });
107
- (0, globals_1.it)('rejects a duplicated position', () => {
108
- const res = tactics_z_1.TacticsInputSchema.safeParse(baseInput({
109
- reservePriorities: [
110
- { position: 4, reserves: [reserveA] },
111
- { position: 4, reserves: [reserveB] }
112
- ]
113
- }));
114
- (0, globals_1.expect)(res.success).toBe(false);
115
- if (!res.success) {
116
- (0, globals_1.expect)(res.error.issues.some(issue => issue.message === 'RESERVE_PRIORITY_DUPLICATE_POSITION')).toBe(true);
117
- }
118
- });
119
- (0, globals_1.it)('rejects an out-of-range position', () => {
120
- const res = tactics_z_1.TacticsInputSchema.safeParse(baseInput({
121
- reservePriorities: [{ position: 7, reserves: [reserveA] }]
122
- }));
123
- (0, globals_1.expect)(res.success).toBe(false);
124
- });
125
- });
@@ -1,6 +0,0 @@
1
- import { CourtPosition } from '../match';
2
- import { Player } from '../player';
3
- export interface ReservePriority {
4
- readonly position: CourtPosition;
5
- readonly reserves: Player[];
6
- }
@@ -1,123 +0,0 @@
1
- import { describe, it, expect } from '@jest/globals';
2
- import { TacticsInputSchema } from './tactics.z';
3
- import { makeCountry, makePlayer } from '../../test-helpers';
4
- describe('TacticsInputSchema — injuries (replaceInjuredImmediately / reservePriorities)', () => {
5
- const country = makeCountry();
6
- const p1 = makePlayer(country);
7
- const p2 = makePlayer(country);
8
- const p3 = makePlayer(country);
9
- const p4 = makePlayer(country);
10
- const p5 = makePlayer(country);
11
- const p6 = makePlayer(country);
12
- const benchPlayer = makePlayer(country);
13
- const libero = makePlayer(country);
14
- const reserveA = makePlayer(country);
15
- const reserveB = makePlayer(country);
16
- function baseInput(overrides = {}) {
17
- return {
18
- lineup: {
19
- 4: p4,
20
- 3: p3,
21
- 2: p2,
22
- 5: p5,
23
- 6: p6,
24
- 1: p1,
25
- 0: libero,
26
- bench: [benchPlayer]
27
- },
28
- liberoReplacements: [],
29
- ...overrides
30
- };
31
- }
32
- it('defaults replaceInjuredImmediately to true and reservePriorities to empty', () => {
33
- const res = TacticsInputSchema.safeParse(baseInput());
34
- expect(res.success).toBe(true);
35
- if (res.success) {
36
- expect(res.data.replaceInjuredImmediately).toBe(true);
37
- expect(res.data.reservePriorities).toEqual([]);
38
- }
39
- });
40
- it('accepts replaceInjuredImmediately false', () => {
41
- const res = TacticsInputSchema.safeParse(baseInput({ replaceInjuredImmediately: false }));
42
- expect(res.success).toBe(true);
43
- if (res.success)
44
- expect(res.data.replaceInjuredImmediately).toBe(false);
45
- });
46
- it('accepts reserve lists of non-lineup roster players', () => {
47
- const res = TacticsInputSchema.safeParse(baseInput({
48
- reservePriorities: [
49
- { position: 4, reserves: [reserveA] },
50
- { position: 3, reserves: [reserveB] }
51
- ]
52
- }));
53
- expect(res.success).toBe(true);
54
- });
55
- it('rejects a reserve that is a starter', () => {
56
- const res = TacticsInputSchema.safeParse(baseInput({
57
- reservePriorities: [{ position: 4, reserves: [p1] }]
58
- }));
59
- expect(res.success).toBe(false);
60
- if (!res.success) {
61
- expect(res.error.issues.some(issue => issue.message === 'RESERVE_MUST_NOT_BE_IN_LINEUP')).toBe(true);
62
- }
63
- });
64
- it('rejects a reserve that is on the bench', () => {
65
- const res = TacticsInputSchema.safeParse(baseInput({
66
- reservePriorities: [{ position: 4, reserves: [benchPlayer] }]
67
- }));
68
- expect(res.success).toBe(false);
69
- if (!res.success) {
70
- expect(res.error.issues.some(issue => issue.message === 'RESERVE_MUST_NOT_BE_IN_LINEUP')).toBe(true);
71
- }
72
- });
73
- it('rejects a reserve that is the libero', () => {
74
- const res = TacticsInputSchema.safeParse(baseInput({
75
- reservePriorities: [{ position: 4, reserves: [libero] }]
76
- }));
77
- expect(res.success).toBe(false);
78
- if (!res.success) {
79
- expect(res.error.issues.some(issue => issue.message === 'RESERVE_MUST_NOT_BE_IN_LINEUP')).toBe(true);
80
- }
81
- });
82
- it('rejects a reserve that doubles as the second libero', () => {
83
- const res = TacticsInputSchema.safeParse(baseInput({
84
- secondLibero: reserveA,
85
- liberoSub: { mode: 'ALWAYS' },
86
- reservePriorities: [{ position: 4, reserves: [reserveA] }]
87
- }));
88
- expect(res.success).toBe(false);
89
- if (!res.success) {
90
- expect(res.error.issues.some(issue => issue.message === 'RESERVE_MUST_NOT_BE_SECOND_LIBERO')).toBe(true);
91
- }
92
- });
93
- it('rejects the same player in two lists', () => {
94
- const res = TacticsInputSchema.safeParse(baseInput({
95
- reservePriorities: [
96
- { position: 4, reserves: [reserveA] },
97
- { position: 3, reserves: [reserveA] }
98
- ]
99
- }));
100
- expect(res.success).toBe(false);
101
- if (!res.success) {
102
- expect(res.error.issues.some(issue => issue.message === 'RESERVE_IN_MULTIPLE_LISTS')).toBe(true);
103
- }
104
- });
105
- it('rejects a duplicated position', () => {
106
- const res = TacticsInputSchema.safeParse(baseInput({
107
- reservePriorities: [
108
- { position: 4, reserves: [reserveA] },
109
- { position: 4, reserves: [reserveB] }
110
- ]
111
- }));
112
- expect(res.success).toBe(false);
113
- if (!res.success) {
114
- expect(res.error.issues.some(issue => issue.message === 'RESERVE_PRIORITY_DUPLICATE_POSITION')).toBe(true);
115
- }
116
- });
117
- it('rejects an out-of-range position', () => {
118
- const res = TacticsInputSchema.safeParse(baseInput({
119
- reservePriorities: [{ position: 7, reserves: [reserveA] }]
120
- }));
121
- expect(res.success).toBe(false);
122
- });
123
- });