@omnitronix/lucky-sharky-game-engine 1.0.3 → 1.0.4

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 (30) hide show
  1. package/README.md +1 -3
  2. package/dist/__tests__/comprehensive.test.d.ts +15 -0
  3. package/dist/__tests__/comprehensive.test.d.ts.map +1 -0
  4. package/dist/__tests__/comprehensive.test.js +510 -0
  5. package/dist/__tests__/comprehensive.test.js.map +1 -0
  6. package/dist/__tests__/debug-trigger-bonus.test.d.ts +8 -0
  7. package/dist/__tests__/debug-trigger-bonus.test.d.ts.map +1 -0
  8. package/dist/__tests__/{cheat-trigger-bonus.test.js → debug-trigger-bonus.test.js} +71 -73
  9. package/dist/__tests__/debug-trigger-bonus.test.js.map +1 -0
  10. package/dist/domain/types/debug-trigger-bonus-command.d.ts +10 -0
  11. package/dist/domain/types/debug-trigger-bonus-command.d.ts.map +1 -0
  12. package/dist/domain/types/{cheat-trigger-bonus-command.js → debug-trigger-bonus-command.js} +1 -1
  13. package/dist/domain/types/debug-trigger-bonus-command.js.map +1 -0
  14. package/dist/logic/lucky-sharky.game-logic.d.ts +9 -5
  15. package/dist/logic/lucky-sharky.game-logic.d.ts.map +1 -1
  16. package/dist/logic/lucky-sharky.game-logic.js +36 -5
  17. package/dist/logic/lucky-sharky.game-logic.js.map +1 -1
  18. package/dist/logic/lucky-sharky.types.d.ts +1 -0
  19. package/dist/logic/lucky-sharky.types.d.ts.map +1 -1
  20. package/dist/logic/lucky-sharky.types.js.map +1 -1
  21. package/dist/lucky-sharky-v1.game-engine.d.ts.map +1 -1
  22. package/dist/lucky-sharky-v1.game-engine.js +10 -22
  23. package/dist/lucky-sharky-v1.game-engine.js.map +1 -1
  24. package/package.json +1 -1
  25. package/dist/__tests__/cheat-trigger-bonus.test.d.ts +0 -10
  26. package/dist/__tests__/cheat-trigger-bonus.test.d.ts.map +0 -1
  27. package/dist/__tests__/cheat-trigger-bonus.test.js.map +0 -1
  28. package/dist/domain/types/cheat-trigger-bonus-command.d.ts +0 -15
  29. package/dist/domain/types/cheat-trigger-bonus-command.d.ts.map +0 -1
  30. package/dist/domain/types/cheat-trigger-bonus-command.js.map +0 -1
@@ -3,9 +3,7 @@
3
3
  * DEBUG_TRIGGER_BONUS Command Tests (GLI-19 compliant terminology)
4
4
  *
5
5
  * Tests for the dev-tools debug command that triggers bonus rounds for testing.
6
- * Tests the LuckySharkyGameLogic.cheatTriggerBonus method directly.
7
- * Note: Method name kept as cheatTriggerBonus for backward compatibility,
8
- * but command type is DEBUG_TRIGGER_BONUS (with CHEAT_TRIGGER_BONUS supported for legacy).
6
+ * Tests the LuckySharkyGameLogic.debugTriggerBonus method directly.
9
7
  */
10
8
  Object.defineProperty(exports, "__esModule", { value: true });
11
9
  const lucky_sharky_game_logic_1 = require("../logic/lucky-sharky.game-logic");
@@ -53,9 +51,9 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
53
51
  };
54
52
  }
55
53
  /**
56
- * Creates a CheatTriggerBonusCommand payload
54
+ * Creates a DebugTriggerBonusCommand payload
57
55
  */
58
- function createCheatTriggerBonusParams(bonusType, betAmount = 1, sessionId = 'test-session-123') {
56
+ function createDebugTriggerBonusParams(bonusType, betAmount = 1, sessionId = 'test-session-123') {
59
57
  return {
60
58
  sessionId,
61
59
  bonusType,
@@ -66,8 +64,8 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
66
64
  it('should successfully trigger FREE_SPINS bonus', () => {
67
65
  const publicState = createInitializedPublicState();
68
66
  const privateState = createInitializedPrivateState();
69
- const params = createCheatTriggerBonusParams('FREE_SPINS', 1);
70
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
67
+ const params = createDebugTriggerBonusParams('FREE_SPINS', 1);
68
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
71
69
  expect(result).toBeDefined();
72
70
  expect(result.publicState).toBeDefined();
73
71
  expect(result.privateState).toBeDefined();
@@ -76,15 +74,15 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
76
74
  it('should set nextSpinType to FREE_SPIN', () => {
77
75
  const publicState = createInitializedPublicState();
78
76
  const privateState = createInitializedPrivateState();
79
- const params = createCheatTriggerBonusParams('FREE_SPINS', 1);
80
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
77
+ const params = createDebugTriggerBonusParams('FREE_SPINS', 1);
78
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
81
79
  expect(result.privateState.nextSpinType).toBe(lucky_sharky_types_1.SpinType.FREE_SPIN);
82
80
  });
83
81
  it('should add FREE_SPINS bonus to pendingBonuses array', () => {
84
82
  const publicState = createInitializedPublicState();
85
83
  const privateState = createInitializedPrivateState();
86
- const params = createCheatTriggerBonusParams('FREE_SPINS', 1);
87
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
84
+ const params = createDebugTriggerBonusParams('FREE_SPINS', 1);
85
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
88
86
  expect(result.privateState.pendingBonuses).toHaveLength(1);
89
87
  expect(result.privateState.pendingBonuses[0].bonusType).toBe(lucky_sharky_types_1.BonusType.FREE_SPINS);
90
88
  });
@@ -92,14 +90,14 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
92
90
  const publicState = createInitializedPublicState();
93
91
  const privateState = createInitializedPrivateState();
94
92
  const betAmount = 5;
95
- const params = createCheatTriggerBonusParams('FREE_SPINS', betAmount);
96
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
93
+ const params = createDebugTriggerBonusParams('FREE_SPINS', betAmount);
94
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
97
95
  expect(result.outcome).toBeDefined();
98
96
  expect(result.outcome.triggeredBonus).toBeDefined();
99
97
  expect(result.outcome.triggeredBonus.bonusType).toBe('FREE_SPINS');
100
98
  expect(result.outcome.triggeredBonus.betAmount).toBe(betAmount);
101
99
  expect(result.outcome.triggeredBonus.bonusId).toBeDefined();
102
- expect(result.outcome.triggeredBonus.bonusId).toMatch(/^cheat-/);
100
+ expect(result.outcome.triggeredBonus.bonusId).toMatch(/^debug-/);
103
101
  });
104
102
  it('should preserve existing publicState', () => {
105
103
  const publicState = {
@@ -108,8 +106,8 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
108
106
  coinValues: [1, 2, 3],
109
107
  };
110
108
  const privateState = createInitializedPrivateState();
111
- const params = createCheatTriggerBonusParams('FREE_SPINS', 1);
112
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
109
+ const params = createDebugTriggerBonusParams('FREE_SPINS', 1);
110
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
113
111
  expect(result.publicState.boosterLevel).toBe(5);
114
112
  expect(result.publicState.freeSpinsRemaining).toBe(3);
115
113
  expect(result.publicState.coinValues).toEqual([1, 2, 3]);
@@ -118,8 +116,8 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
118
116
  const publicState = createInitializedPublicState();
119
117
  const privateState = createInitializedPrivateState();
120
118
  const betAmount = 10;
121
- const params = createCheatTriggerBonusParams('FREE_SPINS', betAmount);
122
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
119
+ const params = createDebugTriggerBonusParams('FREE_SPINS', betAmount);
120
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
123
121
  expect(result.privateState.pendingBonuses[0].betAmount).toBe(betAmount);
124
122
  });
125
123
  });
@@ -127,8 +125,8 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
127
125
  it('should successfully trigger HOLD_WIN_BONUS', () => {
128
126
  const publicState = createInitializedPublicState();
129
127
  const privateState = createInitializedPrivateState();
130
- const params = createCheatTriggerBonusParams('HOLD_WIN_BONUS', 1);
131
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
128
+ const params = createDebugTriggerBonusParams('HOLD_WIN_BONUS', 1);
129
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
132
130
  expect(result).toBeDefined();
133
131
  expect(result.publicState).toBeDefined();
134
132
  expect(result.privateState).toBeDefined();
@@ -137,15 +135,15 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
137
135
  it('should set nextSpinType to HOLD_WIN_BONUS_SPIN', () => {
138
136
  const publicState = createInitializedPublicState();
139
137
  const privateState = createInitializedPrivateState();
140
- const params = createCheatTriggerBonusParams('HOLD_WIN_BONUS', 1);
141
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
138
+ const params = createDebugTriggerBonusParams('HOLD_WIN_BONUS', 1);
139
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
142
140
  expect(result.privateState.nextSpinType).toBe(lucky_sharky_types_1.SpinType.HOLD_WIN_BONUS_SPIN);
143
141
  });
144
142
  it('should add HOLD_WIN_BONUS to pendingBonuses array', () => {
145
143
  const publicState = createInitializedPublicState();
146
144
  const privateState = createInitializedPrivateState();
147
- const params = createCheatTriggerBonusParams('HOLD_WIN_BONUS', 1);
148
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
145
+ const params = createDebugTriggerBonusParams('HOLD_WIN_BONUS', 1);
146
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
149
147
  expect(result.privateState.pendingBonuses).toHaveLength(1);
150
148
  expect(result.privateState.pendingBonuses[0].bonusType).toBe(lucky_sharky_types_1.BonusType.HOLD_WIN_BONUS);
151
149
  });
@@ -153,8 +151,8 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
153
151
  const publicState = createInitializedPublicState();
154
152
  const privateState = createInitializedPrivateState();
155
153
  const betAmount = 20;
156
- const params = createCheatTriggerBonusParams('HOLD_WIN_BONUS', betAmount);
157
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
154
+ const params = createDebugTriggerBonusParams('HOLD_WIN_BONUS', betAmount);
155
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
158
156
  expect(result.outcome).toBeDefined();
159
157
  expect(result.outcome.triggeredBonus).toBeDefined();
160
158
  expect(result.outcome.triggeredBonus.bonusType).toBe('HOLD_WIN_BONUS');
@@ -172,8 +170,8 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
172
170
  ...createInitializedPrivateState(),
173
171
  pendingBonuses: [existingBonus],
174
172
  };
175
- const params = createCheatTriggerBonusParams('HOLD_WIN_BONUS', 10);
176
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
173
+ const params = createDebugTriggerBonusParams('HOLD_WIN_BONUS', 10);
174
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
177
175
  expect(result.privateState.pendingBonuses).toHaveLength(2);
178
176
  expect(result.privateState.pendingBonuses[0]).toEqual(existingBonus);
179
177
  expect(result.privateState.pendingBonuses[1].bonusType).toBe(lucky_sharky_types_1.BonusType.HOLD_WIN_BONUS);
@@ -182,8 +180,8 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
182
180
  const publicState = createInitializedPublicState();
183
181
  const privateState = createInitializedPrivateState();
184
182
  const betAmount = 100;
185
- const params = createCheatTriggerBonusParams('HOLD_WIN_BONUS', betAmount);
186
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
183
+ const params = createDebugTriggerBonusParams('HOLD_WIN_BONUS', betAmount);
184
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
187
185
  expect(result.privateState.pendingBonuses[0].betAmount).toBe(betAmount);
188
186
  });
189
187
  });
@@ -198,7 +196,7 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
198
196
  betAmount: 1,
199
197
  };
200
198
  expect(() => {
201
- gameLogic.cheatTriggerBonus(publicState, privateState, params);
199
+ gameLogic.debugTriggerBonus(publicState, privateState, params);
202
200
  }).toThrow('Unknown bonus type: UNKNOWN_BONUS');
203
201
  });
204
202
  it('should throw error for empty bonusType', () => {
@@ -210,7 +208,7 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
210
208
  betAmount: 1,
211
209
  };
212
210
  expect(() => {
213
- gameLogic.cheatTriggerBonus(publicState, privateState, params);
211
+ gameLogic.debugTriggerBonus(publicState, privateState, params);
214
212
  }).toThrow('Unknown bonus type:');
215
213
  });
216
214
  it('should throw error for null bonusType', () => {
@@ -222,47 +220,47 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
222
220
  betAmount: 1,
223
221
  };
224
222
  expect(() => {
225
- gameLogic.cheatTriggerBonus(publicState, privateState, params);
223
+ gameLogic.debugTriggerBonus(publicState, privateState, params);
226
224
  }).toThrow('Unknown bonus type');
227
225
  });
228
226
  });
229
227
  describe('State not initialized', () => {
230
228
  it('should handle null publicState by returning null publicState', () => {
231
229
  const privateState = createInitializedPrivateState();
232
- const params = createCheatTriggerBonusParams('FREE_SPINS', 1);
233
- // The cheatTriggerBonus method returns publicState as-is
234
- const result = gameLogic.cheatTriggerBonus(null, privateState, params);
230
+ const params = createDebugTriggerBonusParams('FREE_SPINS', 1);
231
+ // The debugTriggerBonus method returns publicState as-is
232
+ const result = gameLogic.debugTriggerBonus(null, privateState, params);
235
233
  expect(result.publicState).toBeNull();
236
234
  expect(result.privateState).toBeDefined();
237
235
  });
238
236
  it('should handle undefined publicState by returning undefined publicState', () => {
239
237
  const privateState = createInitializedPrivateState();
240
- const params = createCheatTriggerBonusParams('FREE_SPINS', 1);
241
- const result = gameLogic.cheatTriggerBonus(undefined, privateState, params);
238
+ const params = createDebugTriggerBonusParams('FREE_SPINS', 1);
239
+ const result = gameLogic.debugTriggerBonus(undefined, privateState, params);
242
240
  expect(result.publicState).toBeUndefined();
243
241
  });
244
242
  it('should throw error when privateState is null', () => {
245
243
  const publicState = createInitializedPublicState();
246
- const params = createCheatTriggerBonusParams('FREE_SPINS', 1);
244
+ const params = createDebugTriggerBonusParams('FREE_SPINS', 1);
247
245
  // When privateState is null, spreading pendingBonuses will throw
248
246
  expect(() => {
249
- gameLogic.cheatTriggerBonus(publicState, null, params);
247
+ gameLogic.debugTriggerBonus(publicState, null, params);
250
248
  }).toThrow();
251
249
  });
252
250
  it('should throw error when privateState is undefined', () => {
253
251
  const publicState = createInitializedPublicState();
254
- const params = createCheatTriggerBonusParams('FREE_SPINS', 1);
252
+ const params = createDebugTriggerBonusParams('FREE_SPINS', 1);
255
253
  expect(() => {
256
- gameLogic.cheatTriggerBonus(publicState, undefined, params);
254
+ gameLogic.debugTriggerBonus(publicState, undefined, params);
257
255
  }).toThrow();
258
256
  });
259
257
  it('should throw error when privateState has no pendingBonuses array', () => {
260
258
  const publicState = createInitializedPublicState();
261
259
  const emptyPrivateState = {};
262
- const params = createCheatTriggerBonusParams('FREE_SPINS', 1);
260
+ const params = createDebugTriggerBonusParams('FREE_SPINS', 1);
263
261
  // Spreading undefined pendingBonuses will cause issues
264
262
  expect(() => {
265
- gameLogic.cheatTriggerBonus(publicState, emptyPrivateState, params);
263
+ gameLogic.debugTriggerBonus(publicState, emptyPrivateState, params);
266
264
  }).toThrow();
267
265
  });
268
266
  });
@@ -272,18 +270,18 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
272
270
  const publicState = createInitializedPublicState();
273
271
  const privateState1 = createInitializedPrivateState();
274
272
  const privateState2 = createInitializedPrivateState();
275
- const params1 = createCheatTriggerBonusParams('FREE_SPINS', 1);
276
- const params2 = createCheatTriggerBonusParams('FREE_SPINS', 1);
277
- const result1 = gameLogic.cheatTriggerBonus(publicState, privateState1, params1);
278
- const result2 = gameLogic.cheatTriggerBonus(publicState, privateState2, params2);
273
+ const params1 = createDebugTriggerBonusParams('FREE_SPINS', 1);
274
+ const params2 = createDebugTriggerBonusParams('FREE_SPINS', 1);
275
+ const result1 = gameLogic.debugTriggerBonus(publicState, privateState1, params1);
276
+ const result2 = gameLogic.debugTriggerBonus(publicState, privateState2, params2);
279
277
  expect(result1.outcome.triggeredBonus.bonusId).not.toBe(result2.outcome.triggeredBonus.bonusId);
280
278
  });
281
279
  it('should correctly set pendingBonus with all required fields', () => {
282
280
  const publicState = createInitializedPublicState();
283
281
  const privateState = createInitializedPrivateState();
284
282
  const betAmount = 50;
285
- const params = createCheatTriggerBonusParams('FREE_SPINS', betAmount);
286
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
283
+ const params = createDebugTriggerBonusParams('FREE_SPINS', betAmount);
284
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
287
285
  const pendingBonus = result.privateState.pendingBonuses[0];
288
286
  expect(pendingBonus).toHaveProperty('bonusId');
289
287
  expect(pendingBonus).toHaveProperty('bonusType');
@@ -303,8 +301,8 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
303
301
  screen: [[1, 2, 3], [4, 5, 6], [7, 8, 9], [0, 1, 2], [3, 4, 5]],
304
302
  lastBetAmount: 10,
305
303
  };
306
- const params = createCheatTriggerBonusParams('HOLD_WIN_BONUS', 1);
307
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
304
+ const params = createDebugTriggerBonusParams('HOLD_WIN_BONUS', 1);
305
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
308
306
  // Verify other fields are preserved
309
307
  expect(result.privateState.boosterLevel).toBe(3);
310
308
  expect(result.privateState.boosterMemory).toBe(2);
@@ -317,8 +315,8 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
317
315
  it('should match bonusId between outcome and pendingBonuses', () => {
318
316
  const publicState = createInitializedPublicState();
319
317
  const privateState = createInitializedPrivateState();
320
- const params = createCheatTriggerBonusParams('FREE_SPINS', 1);
321
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
318
+ const params = createDebugTriggerBonusParams('FREE_SPINS', 1);
319
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
322
320
  expect(result.outcome.triggeredBonus.bonusId).toBe(result.privateState.pendingBonuses[result.privateState.pendingBonuses.length - 1].bonusId);
323
321
  });
324
322
  });
@@ -328,8 +326,8 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
328
326
  const betAmounts = [0.1, 1, 5, 10, 50, 100, 1000];
329
327
  for (const betAmount of betAmounts) {
330
328
  const privateState = createInitializedPrivateState();
331
- const params = createCheatTriggerBonusParams('FREE_SPINS', betAmount);
332
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
329
+ const params = createDebugTriggerBonusParams('FREE_SPINS', betAmount);
330
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
333
331
  expect(result.outcome.triggeredBonus.betAmount).toBe(betAmount);
334
332
  expect(result.privateState.pendingBonuses[0].betAmount).toBe(betAmount);
335
333
  }
@@ -337,17 +335,17 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
337
335
  it('should work with zero bet amount', () => {
338
336
  const publicState = createInitializedPublicState();
339
337
  const privateState = createInitializedPrivateState();
340
- const params = createCheatTriggerBonusParams('FREE_SPINS', 0);
341
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
338
+ const params = createDebugTriggerBonusParams('FREE_SPINS', 0);
339
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
342
340
  expect(result.outcome.triggeredBonus.betAmount).toBe(0);
343
341
  expect(result.privateState.pendingBonuses[0].betAmount).toBe(0);
344
342
  });
345
343
  it('should work with negative bet amount (edge case)', () => {
346
344
  const publicState = createInitializedPublicState();
347
345
  const privateState = createInitializedPrivateState();
348
- const params = createCheatTriggerBonusParams('FREE_SPINS', -5);
346
+ const params = createDebugTriggerBonusParams('FREE_SPINS', -5);
349
347
  // Method does not validate bet amount
350
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
348
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
351
349
  expect(result.outcome.triggeredBonus.betAmount).toBe(-5);
352
350
  });
353
351
  });
@@ -356,24 +354,24 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
356
354
  const publicState = createInitializedPublicState();
357
355
  const privateState = createInitializedPrivateState();
358
356
  const sessionId = 'custom-session-abc-123';
359
- const params = createCheatTriggerBonusParams('HOLD_WIN_BONUS', 1, sessionId);
360
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
357
+ const params = createDebugTriggerBonusParams('HOLD_WIN_BONUS', 1, sessionId);
358
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
361
359
  expect(result).toBeDefined();
362
360
  expect(result.outcome.triggeredBonus).toBeDefined();
363
361
  });
364
362
  it('should work with empty session ID', () => {
365
363
  const publicState = createInitializedPublicState();
366
364
  const privateState = createInitializedPrivateState();
367
- const params = createCheatTriggerBonusParams('FREE_SPINS', 1, '');
368
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
365
+ const params = createDebugTriggerBonusParams('FREE_SPINS', 1, '');
366
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
369
367
  expect(result).toBeDefined();
370
368
  });
371
369
  it('should work with very long session ID', () => {
372
370
  const publicState = createInitializedPublicState();
373
371
  const privateState = createInitializedPrivateState();
374
372
  const longSessionId = 'a'.repeat(1000);
375
- const params = createCheatTriggerBonusParams('HOLD_WIN_BONUS', 1, longSessionId);
376
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
373
+ const params = createDebugTriggerBonusParams('HOLD_WIN_BONUS', 1, longSessionId);
374
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
377
375
  expect(result).toBeDefined();
378
376
  });
379
377
  });
@@ -382,12 +380,12 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
382
380
  const publicState = createInitializedPublicState();
383
381
  let privateState = createInitializedPrivateState();
384
382
  // First trigger
385
- const params1 = createCheatTriggerBonusParams('FREE_SPINS', 1);
386
- const result1 = gameLogic.cheatTriggerBonus(publicState, privateState, params1);
383
+ const params1 = createDebugTriggerBonusParams('FREE_SPINS', 1);
384
+ const result1 = gameLogic.debugTriggerBonus(publicState, privateState, params1);
387
385
  privateState = result1.privateState;
388
386
  // Second trigger on the updated state
389
- const params2 = createCheatTriggerBonusParams('HOLD_WIN_BONUS', 5);
390
- const result2 = gameLogic.cheatTriggerBonus(publicState, privateState, params2);
387
+ const params2 = createDebugTriggerBonusParams('HOLD_WIN_BONUS', 5);
388
+ const result2 = gameLogic.debugTriggerBonus(publicState, privateState, params2);
391
389
  expect(result2.privateState.pendingBonuses).toHaveLength(2);
392
390
  expect(result2.privateState.pendingBonuses[0].bonusType).toBe(lucky_sharky_types_1.BonusType.FREE_SPINS);
393
391
  expect(result2.privateState.pendingBonuses[1].bonusType).toBe(lucky_sharky_types_1.BonusType.HOLD_WIN_BONUS);
@@ -398,8 +396,8 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
398
396
  const publicState = createInitializedPublicState();
399
397
  let privateState = createInitializedPrivateState();
400
398
  for (let i = 0; i < 3; i++) {
401
- const params = createCheatTriggerBonusParams('FREE_SPINS', i + 1);
402
- const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
399
+ const params = createDebugTriggerBonusParams('FREE_SPINS', i + 1);
400
+ const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
403
401
  privateState = result.privateState;
404
402
  }
405
403
  expect(privateState.pendingBonuses).toHaveLength(3);
@@ -409,4 +407,4 @@ describe('DEBUG_TRIGGER_BONUS Command', () => {
409
407
  });
410
408
  });
411
409
  });
412
- //# sourceMappingURL=cheat-trigger-bonus.test.js.map
410
+ //# sourceMappingURL=debug-trigger-bonus.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-trigger-bonus.test.js","sourceRoot":"","sources":["../../src/__tests__/debug-trigger-bonus.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Command payload for DEBUG_TRIGGER_BONUS
3
+ * GLI-19 compliant terminology for authorized testing
4
+ */
5
+ export interface DebugTriggerBonusCommand {
6
+ sessionId: string;
7
+ bonusType: 'FREE_SPINS' | 'HOLD_WIN_BONUS';
8
+ betAmount: number;
9
+ }
10
+ //# sourceMappingURL=debug-trigger-bonus-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-trigger-bonus-command.d.ts","sourceRoot":"","sources":["../../../src/domain/types/debug-trigger-bonus-command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,YAAY,GAAG,gBAAgB,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=cheat-trigger-bonus-command.js.map
3
+ //# sourceMappingURL=debug-trigger-bonus-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-trigger-bonus-command.js","sourceRoot":"","sources":["../../../src/domain/types/debug-trigger-bonus-command.ts"],"names":[],"mappings":""}
@@ -3,8 +3,8 @@ import { RngService } from '../rng/rng-service';
3
3
  import { LuckySharkyGameLogicConfigInterface } from './game-logic-config.interface';
4
4
  import { GameSpinInputDto } from '../domain/types/game-spin-input.dto';
5
5
  import { StartBonusRoundInputDto } from '../domain/types/start-bonus-round-input.dto';
6
- import { BaseGameSpinResult, BonusType, GetSymbolsResult, LuckySharkyGameLogicSpinResult, LuckySharkyPrivateState, LuckySharkyPublicState, SpinResultResponse } from './lucky-sharky.types';
7
- import { CheatTriggerBonusCommand } from '../domain/types/cheat-trigger-bonus-command';
6
+ import { BaseGameSpinResult, BonusTrigger, BonusType, GetSymbolsResult, LuckySharkyGameLogicSpinResult, LuckySharkyPrivateState, LuckySharkyPublicState, SpinResultResponse } from './lucky-sharky.types';
7
+ import { DebugTriggerBonusCommand } from '../domain/types/debug-trigger-bonus-command';
8
8
  export interface LuckySharkySessionStateInterface {
9
9
  publicState: LuckySharkyPublicState;
10
10
  privateState: LuckySharkyPrivateState;
@@ -17,7 +17,12 @@ export declare class LuckySharkyGameLogic {
17
17
  defaultBetAmount: number;
18
18
  }, commandId: string): Promise<LuckySharkySessionStateInterface>;
19
19
  spin(params: GameSpinInputDto, publicState: LuckySharkyPublicState, privateState: LuckySharkyPrivateState, config: LuckySharkyGameLogicConfigInterface, reelStripsConfig: ReelStripsConfig, commandId: string): Promise<SpinResultResponse<BaseGameSpinResult>>;
20
- startBonusRound(params: StartBonusRoundInputDto, publicState: LuckySharkyPublicState, privateState: LuckySharkyPrivateState, config: LuckySharkyGameLogicConfigInterface, reelStripsConfig: ReelStripsConfig, commandId: string): Promise<LuckySharkyGameLogicSpinResult>;
20
+ startBonusRound(params: StartBonusRoundInputDto, publicState: LuckySharkyPublicState, privateState: LuckySharkyPrivateState, config: LuckySharkyGameLogicConfigInterface, reelStripsConfig: ReelStripsConfig, commandId: string): Promise<{
21
+ results: LuckySharkyGameLogicSpinResult;
22
+ activeBonus: BonusTrigger;
23
+ publicState: LuckySharkyPublicState;
24
+ privateState: LuckySharkyPrivateState;
25
+ }>;
21
26
  private handleBetAmountChange;
22
27
  private handleFreeSpinsBonus;
23
28
  private handleHoldWinBonus;
@@ -26,9 +31,8 @@ export declare class LuckySharkyGameLogic {
26
31
  /**
27
32
  * Debug command to trigger a bonus round directly (GLI-19 compliant)
28
33
  * Used by dev-tools for testing bonus mechanics
29
- * Note: Method name kept as cheatTriggerBonus for backward compatibility
30
34
  */
31
- cheatTriggerBonus(publicState: LuckySharkyPublicState, privateState: LuckySharkyPrivateState, params: CheatTriggerBonusCommand): {
35
+ debugTriggerBonus(publicState: LuckySharkyPublicState, privateState: LuckySharkyPrivateState, params: DebugTriggerBonusCommand): {
32
36
  publicState: LuckySharkyPublicState;
33
37
  privateState: LuckySharkyPrivateState;
34
38
  outcome: {
@@ -1 +1 @@
1
- {"version":3,"file":"lucky-sharky.game-logic.d.ts","sourceRoot":"","sources":["../../src/logic/lucky-sharky.game-logic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,mCAAmC,EAAE,MAAM,+BAA+B,CAAC;AAKpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,8BAA8B,EAC9B,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAEnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAEvF,MAAM,WAAW,gCAAgC;IAC/C,WAAW,EAAE,sBAAsB,CAAC;IACpC,YAAY,EAAE,uBAAuB,CAAC;CACvC;AAED,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAEtC,gBAAgB,CAC3B,eAAe,EAAE,mCAAmC,EACpD,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE;QAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,EACvE,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gCAAgC,CAAC;IA6B/B,IAAI,CACf,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,sBAAsB,EACnC,YAAY,EAAE,uBAAuB,EACrC,MAAM,EAAE,mCAAmC,EAC3C,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAmErC,eAAe,CAC1B,MAAM,EAAE,uBAAuB,EAC/B,WAAW,EAAE,sBAAsB,EACnC,YAAY,EAAE,uBAAuB,EACrC,MAAM,EAAE,mCAAmC,EAC3C,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,8BAA8B,CAAC;IA4B1C,OAAO,CAAC,qBAAqB;YAqBf,oBAAoB;YA+BpB,kBAAkB;IAwBzB,UAAU,CACf,eAAe,EAAE,mCAAmC,GACnD,gBAAgB;WAYL,sBAAsB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;IAWlE;;;;OAIG;IACI,iBAAiB,CACtB,WAAW,EAAE,sBAAsB,EACnC,YAAY,EAAE,uBAAuB,EACrC,MAAM,EAAE,wBAAwB,GAC/B;QACD,WAAW,EAAE,sBAAsB,CAAC;QACpC,YAAY,EAAE,uBAAuB,CAAC;QACtC,OAAO,EAAE;YACP,cAAc,EAAE;gBACd,OAAO,EAAE,MAAM,CAAC;gBAChB,SAAS,EAAE,MAAM,CAAC;gBAClB,SAAS,EAAE,MAAM,CAAC;aACnB,CAAC;SACH,CAAC;KACH;CA0CF"}
1
+ {"version":3,"file":"lucky-sharky.game-logic.d.ts","sourceRoot":"","sources":["../../src/logic/lucky-sharky.game-logic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,mCAAmC,EAAE,MAAM,+BAA+B,CAAC;AAKpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,8BAA8B,EAC9B,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAEnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAEvF,MAAM,WAAW,gCAAgC;IAC/C,WAAW,EAAE,sBAAsB,CAAC;IACpC,YAAY,EAAE,uBAAuB,CAAC;CACvC;AAED,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAEtC,gBAAgB,CAC3B,eAAe,EAAE,mCAAmC,EACpD,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE;QAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,EACvE,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gCAAgC,CAAC;IA6B/B,IAAI,CACf,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,sBAAsB,EACnC,YAAY,EAAE,uBAAuB,EACrC,MAAM,EAAE,mCAAmC,EAC3C,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAmErC,eAAe,CAC1B,MAAM,EAAE,uBAAuB,EAC/B,WAAW,EAAE,sBAAsB,EACnC,YAAY,EAAE,uBAAuB,EACrC,MAAM,EAAE,mCAAmC,EAC3C,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;QACT,OAAO,EAAE,8BAA8B,CAAC;QACxC,WAAW,EAAE,YAAY,CAAC;QAC1B,WAAW,EAAE,sBAAsB,CAAC;QACpC,YAAY,EAAE,uBAAuB,CAAC;KACvC,CAAC;IAsEF,OAAO,CAAC,qBAAqB;YAqBf,oBAAoB;YA+BpB,kBAAkB;IAwBzB,UAAU,CACf,eAAe,EAAE,mCAAmC,GACnD,gBAAgB;WAYL,sBAAsB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;IAWlE;;;OAGG;IACI,iBAAiB,CACtB,WAAW,EAAE,sBAAsB,EACnC,YAAY,EAAE,uBAAuB,EACrC,MAAM,EAAE,wBAAwB,GAC/B;QACD,WAAW,EAAE,sBAAsB,CAAC;QACpC,YAAY,EAAE,uBAAuB,CAAC;QACtC,OAAO,EAAE;YACP,cAAc,EAAE;gBACd,OAAO,EAAE,MAAM,CAAC;gBAChB,SAAS,EAAE,MAAM,CAAC;gBAClB,SAAS,EAAE,MAAM,CAAC;aACnB,CAAC;SACH,CAAC;KACH;CA0CF"}
@@ -58,16 +58,48 @@ class LuckySharkyGameLogic {
58
58
  }
59
59
  }
60
60
  async startBonusRound(params, publicState, privateState, config, reelStripsConfig, commandId) {
61
+ // Extract activeBonus from pendingBonuses
62
+ const activeBonus = privateState.pendingBonuses.find((b) => b.bonusId === params.bonusId);
63
+ if (!activeBonus) {
64
+ throw new Error(`No pending bonus found with ID: ${params.bonusId}`);
65
+ }
66
+ // Update privateState to move bonus from pending to active
67
+ const updatedPrivateState = {
68
+ ...privateState,
69
+ pendingBonuses: privateState.pendingBonuses.filter((b) => b.bonusId !== params.bonusId),
70
+ activeBonus,
71
+ };
72
+ let result;
61
73
  switch (params.bonusType) {
62
74
  case 'freeSpins':
63
75
  case 'FREE_SPINS':
64
- return this.handleFreeSpinsBonus(params, publicState, privateState, config, reelStripsConfig, commandId);
76
+ result = await this.handleFreeSpinsBonus(params, publicState, updatedPrivateState, config, reelStripsConfig, commandId);
77
+ break;
65
78
  case 'holdWinBonus':
66
79
  case 'HOLD_WIN_BONUS':
67
- return this.handleHoldWinBonus(params, publicState, privateState, config, commandId);
80
+ result = await this.handleHoldWinBonus(params, publicState, updatedPrivateState, config, commandId);
81
+ break;
68
82
  default:
69
83
  throw new Error(`Unknown bonus type: ${params.bonusType}`);
70
84
  }
85
+ // Extract final state from results
86
+ let finalPublicState = publicState;
87
+ let finalPrivateState = updatedPrivateState;
88
+ if (Array.isArray(result) && result.length > 0) {
89
+ const lastResult = result[result.length - 1];
90
+ finalPublicState = lastResult.publicState || publicState;
91
+ finalPrivateState = lastResult.privateState || updatedPrivateState;
92
+ }
93
+ else if (!Array.isArray(result) && result.publicState) {
94
+ finalPublicState = result.publicState;
95
+ finalPrivateState = result.privateState;
96
+ }
97
+ return {
98
+ results: result,
99
+ activeBonus,
100
+ publicState: finalPublicState,
101
+ privateState: finalPrivateState,
102
+ };
71
103
  }
72
104
  handleBetAmountChange(params, privateState, config) {
73
105
  const lastBetAmount = privateState.lastBetAmount;
@@ -129,10 +161,9 @@ class LuckySharkyGameLogic {
129
161
  /**
130
162
  * Debug command to trigger a bonus round directly (GLI-19 compliant)
131
163
  * Used by dev-tools for testing bonus mechanics
132
- * Note: Method name kept as cheatTriggerBonus for backward compatibility
133
164
  */
134
- cheatTriggerBonus(publicState, privateState, params) {
135
- const bonusId = `cheat-${Date.now()}-${Math.random().toString(36).substring(7)}`;
165
+ debugTriggerBonus(publicState, privateState, params) {
166
+ const bonusId = `debug-${Date.now()}-${Math.random().toString(36).substring(7)}`;
136
167
  // Determine the next spin type based on bonus type
137
168
  let nextSpinType;
138
169
  switch (params.bonusType) {
@@ -1 +1 @@
1
- {"version":3,"file":"lucky-sharky.game-logic.js","sourceRoot":"","sources":["../../src/logic/lucky-sharky.game-logic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lucky-sharky.game-logic.js","sourceRoot":"","sources":["../../src/logic/lucky-sharky.game-logic.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ export interface LuckySharkyPrivateState {
29
29
  boosterMemory: number;
30
30
  nextSpinType: SpinType;
31
31
  pendingBonuses: BonusTrigger[];
32
+ activeBonus?: BonusTrigger;
32
33
  holdWinState?: HoldWinPrivateState;
33
34
  guaranteeSpinCount: number;
34
35
  screen?: number[][];