@omnitronix/lucky-sharky-game-engine 1.0.2 → 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.
- package/README.md +6 -6
- package/dist/__tests__/comprehensive.test.d.ts +15 -0
- package/dist/__tests__/comprehensive.test.d.ts.map +1 -0
- package/dist/__tests__/comprehensive.test.js +510 -0
- package/dist/__tests__/comprehensive.test.js.map +1 -0
- package/dist/__tests__/debug-trigger-bonus.test.d.ts +8 -0
- package/dist/__tests__/debug-trigger-bonus.test.d.ts.map +1 -0
- package/dist/__tests__/{cheat-trigger-bonus.test.js → debug-trigger-bonus.test.js} +74 -74
- package/dist/__tests__/{cheat-trigger-bonus.test.js.map → debug-trigger-bonus.test.js.map} +1 -1
- package/dist/domain/types/debug-trigger-bonus-command.d.ts +10 -0
- package/dist/domain/types/debug-trigger-bonus-command.d.ts.map +1 -0
- package/dist/domain/types/{cheat-trigger-bonus-command.js → debug-trigger-bonus-command.js} +1 -1
- package/dist/domain/types/debug-trigger-bonus-command.js.map +1 -0
- package/dist/logic/lucky-sharky.game-logic.d.ts +10 -5
- package/dist/logic/lucky-sharky.game-logic.d.ts.map +1 -1
- package/dist/logic/lucky-sharky.game-logic.js +37 -5
- package/dist/logic/lucky-sharky.game-logic.js.map +1 -1
- package/dist/logic/lucky-sharky.types.d.ts +1 -0
- package/dist/logic/lucky-sharky.types.d.ts.map +1 -1
- package/dist/logic/lucky-sharky.types.js.map +1 -1
- package/dist/lucky-sharky-v1.game-engine.d.ts.map +1 -1
- package/dist/lucky-sharky-v1.game-engine.js +11 -22
- package/dist/lucky-sharky-v1.game-engine.js.map +1 -1
- package/package.json +1 -1
- package/dist/__tests__/cheat-trigger-bonus.test.d.ts +0 -8
- package/dist/__tests__/cheat-trigger-bonus.test.d.ts.map +0 -1
- package/dist/domain/types/cheat-trigger-bonus-command.d.ts +0 -10
- package/dist/domain/types/cheat-trigger-bonus-command.d.ts.map +0 -1
- package/dist/domain/types/cheat-trigger-bonus-command.js.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* DEBUG_TRIGGER_BONUS Command Tests (GLI-19 compliant terminology)
|
|
4
4
|
*
|
|
5
|
-
* Tests for the dev-tools
|
|
6
|
-
* Tests the LuckySharkyGameLogic.
|
|
5
|
+
* Tests for the dev-tools debug command that triggers bonus rounds for testing.
|
|
6
|
+
* Tests the LuckySharkyGameLogic.debugTriggerBonus method directly.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
const lucky_sharky_game_logic_1 = require("../logic/lucky-sharky.game-logic");
|
|
@@ -13,7 +13,7 @@ const rng_service_1 = require("../rng/rng-service");
|
|
|
13
13
|
const mockRngClient = {
|
|
14
14
|
getSingleNumber: jest.fn().mockResolvedValue({ value: 0, seed: 12345 }),
|
|
15
15
|
};
|
|
16
|
-
describe('
|
|
16
|
+
describe('DEBUG_TRIGGER_BONUS Command', () => {
|
|
17
17
|
let gameLogic;
|
|
18
18
|
let rngService;
|
|
19
19
|
beforeEach(() => {
|
|
@@ -51,9 +51,9 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
53
|
/**
|
|
54
|
-
* Creates a
|
|
54
|
+
* Creates a DebugTriggerBonusCommand payload
|
|
55
55
|
*/
|
|
56
|
-
function
|
|
56
|
+
function createDebugTriggerBonusParams(bonusType, betAmount = 1, sessionId = 'test-session-123') {
|
|
57
57
|
return {
|
|
58
58
|
sessionId,
|
|
59
59
|
bonusType,
|
|
@@ -64,8 +64,8 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
64
64
|
it('should successfully trigger FREE_SPINS bonus', () => {
|
|
65
65
|
const publicState = createInitializedPublicState();
|
|
66
66
|
const privateState = createInitializedPrivateState();
|
|
67
|
-
const params =
|
|
68
|
-
const result = gameLogic.
|
|
67
|
+
const params = createDebugTriggerBonusParams('FREE_SPINS', 1);
|
|
68
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
69
69
|
expect(result).toBeDefined();
|
|
70
70
|
expect(result.publicState).toBeDefined();
|
|
71
71
|
expect(result.privateState).toBeDefined();
|
|
@@ -74,15 +74,15 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
74
74
|
it('should set nextSpinType to FREE_SPIN', () => {
|
|
75
75
|
const publicState = createInitializedPublicState();
|
|
76
76
|
const privateState = createInitializedPrivateState();
|
|
77
|
-
const params =
|
|
78
|
-
const result = gameLogic.
|
|
77
|
+
const params = createDebugTriggerBonusParams('FREE_SPINS', 1);
|
|
78
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
79
79
|
expect(result.privateState.nextSpinType).toBe(lucky_sharky_types_1.SpinType.FREE_SPIN);
|
|
80
80
|
});
|
|
81
81
|
it('should add FREE_SPINS bonus to pendingBonuses array', () => {
|
|
82
82
|
const publicState = createInitializedPublicState();
|
|
83
83
|
const privateState = createInitializedPrivateState();
|
|
84
|
-
const params =
|
|
85
|
-
const result = gameLogic.
|
|
84
|
+
const params = createDebugTriggerBonusParams('FREE_SPINS', 1);
|
|
85
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
86
86
|
expect(result.privateState.pendingBonuses).toHaveLength(1);
|
|
87
87
|
expect(result.privateState.pendingBonuses[0].bonusType).toBe(lucky_sharky_types_1.BonusType.FREE_SPINS);
|
|
88
88
|
});
|
|
@@ -90,14 +90,14 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
90
90
|
const publicState = createInitializedPublicState();
|
|
91
91
|
const privateState = createInitializedPrivateState();
|
|
92
92
|
const betAmount = 5;
|
|
93
|
-
const params =
|
|
94
|
-
const result = gameLogic.
|
|
93
|
+
const params = createDebugTriggerBonusParams('FREE_SPINS', betAmount);
|
|
94
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
95
95
|
expect(result.outcome).toBeDefined();
|
|
96
96
|
expect(result.outcome.triggeredBonus).toBeDefined();
|
|
97
97
|
expect(result.outcome.triggeredBonus.bonusType).toBe('FREE_SPINS');
|
|
98
98
|
expect(result.outcome.triggeredBonus.betAmount).toBe(betAmount);
|
|
99
99
|
expect(result.outcome.triggeredBonus.bonusId).toBeDefined();
|
|
100
|
-
expect(result.outcome.triggeredBonus.bonusId).toMatch(/^
|
|
100
|
+
expect(result.outcome.triggeredBonus.bonusId).toMatch(/^debug-/);
|
|
101
101
|
});
|
|
102
102
|
it('should preserve existing publicState', () => {
|
|
103
103
|
const publicState = {
|
|
@@ -106,8 +106,8 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
106
106
|
coinValues: [1, 2, 3],
|
|
107
107
|
};
|
|
108
108
|
const privateState = createInitializedPrivateState();
|
|
109
|
-
const params =
|
|
110
|
-
const result = gameLogic.
|
|
109
|
+
const params = createDebugTriggerBonusParams('FREE_SPINS', 1);
|
|
110
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
111
111
|
expect(result.publicState.boosterLevel).toBe(5);
|
|
112
112
|
expect(result.publicState.freeSpinsRemaining).toBe(3);
|
|
113
113
|
expect(result.publicState.coinValues).toEqual([1, 2, 3]);
|
|
@@ -116,8 +116,8 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
116
116
|
const publicState = createInitializedPublicState();
|
|
117
117
|
const privateState = createInitializedPrivateState();
|
|
118
118
|
const betAmount = 10;
|
|
119
|
-
const params =
|
|
120
|
-
const result = gameLogic.
|
|
119
|
+
const params = createDebugTriggerBonusParams('FREE_SPINS', betAmount);
|
|
120
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
121
121
|
expect(result.privateState.pendingBonuses[0].betAmount).toBe(betAmount);
|
|
122
122
|
});
|
|
123
123
|
});
|
|
@@ -125,8 +125,8 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
125
125
|
it('should successfully trigger HOLD_WIN_BONUS', () => {
|
|
126
126
|
const publicState = createInitializedPublicState();
|
|
127
127
|
const privateState = createInitializedPrivateState();
|
|
128
|
-
const params =
|
|
129
|
-
const result = gameLogic.
|
|
128
|
+
const params = createDebugTriggerBonusParams('HOLD_WIN_BONUS', 1);
|
|
129
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
130
130
|
expect(result).toBeDefined();
|
|
131
131
|
expect(result.publicState).toBeDefined();
|
|
132
132
|
expect(result.privateState).toBeDefined();
|
|
@@ -135,15 +135,15 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
135
135
|
it('should set nextSpinType to HOLD_WIN_BONUS_SPIN', () => {
|
|
136
136
|
const publicState = createInitializedPublicState();
|
|
137
137
|
const privateState = createInitializedPrivateState();
|
|
138
|
-
const params =
|
|
139
|
-
const result = gameLogic.
|
|
138
|
+
const params = createDebugTriggerBonusParams('HOLD_WIN_BONUS', 1);
|
|
139
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
140
140
|
expect(result.privateState.nextSpinType).toBe(lucky_sharky_types_1.SpinType.HOLD_WIN_BONUS_SPIN);
|
|
141
141
|
});
|
|
142
142
|
it('should add HOLD_WIN_BONUS to pendingBonuses array', () => {
|
|
143
143
|
const publicState = createInitializedPublicState();
|
|
144
144
|
const privateState = createInitializedPrivateState();
|
|
145
|
-
const params =
|
|
146
|
-
const result = gameLogic.
|
|
145
|
+
const params = createDebugTriggerBonusParams('HOLD_WIN_BONUS', 1);
|
|
146
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
147
147
|
expect(result.privateState.pendingBonuses).toHaveLength(1);
|
|
148
148
|
expect(result.privateState.pendingBonuses[0].bonusType).toBe(lucky_sharky_types_1.BonusType.HOLD_WIN_BONUS);
|
|
149
149
|
});
|
|
@@ -151,8 +151,8 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
151
151
|
const publicState = createInitializedPublicState();
|
|
152
152
|
const privateState = createInitializedPrivateState();
|
|
153
153
|
const betAmount = 20;
|
|
154
|
-
const params =
|
|
155
|
-
const result = gameLogic.
|
|
154
|
+
const params = createDebugTriggerBonusParams('HOLD_WIN_BONUS', betAmount);
|
|
155
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
156
156
|
expect(result.outcome).toBeDefined();
|
|
157
157
|
expect(result.outcome.triggeredBonus).toBeDefined();
|
|
158
158
|
expect(result.outcome.triggeredBonus.bonusType).toBe('HOLD_WIN_BONUS');
|
|
@@ -170,8 +170,8 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
170
170
|
...createInitializedPrivateState(),
|
|
171
171
|
pendingBonuses: [existingBonus],
|
|
172
172
|
};
|
|
173
|
-
const params =
|
|
174
|
-
const result = gameLogic.
|
|
173
|
+
const params = createDebugTriggerBonusParams('HOLD_WIN_BONUS', 10);
|
|
174
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
175
175
|
expect(result.privateState.pendingBonuses).toHaveLength(2);
|
|
176
176
|
expect(result.privateState.pendingBonuses[0]).toEqual(existingBonus);
|
|
177
177
|
expect(result.privateState.pendingBonuses[1].bonusType).toBe(lucky_sharky_types_1.BonusType.HOLD_WIN_BONUS);
|
|
@@ -180,8 +180,8 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
180
180
|
const publicState = createInitializedPublicState();
|
|
181
181
|
const privateState = createInitializedPrivateState();
|
|
182
182
|
const betAmount = 100;
|
|
183
|
-
const params =
|
|
184
|
-
const result = gameLogic.
|
|
183
|
+
const params = createDebugTriggerBonusParams('HOLD_WIN_BONUS', betAmount);
|
|
184
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
185
185
|
expect(result.privateState.pendingBonuses[0].betAmount).toBe(betAmount);
|
|
186
186
|
});
|
|
187
187
|
});
|
|
@@ -196,7 +196,7 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
196
196
|
betAmount: 1,
|
|
197
197
|
};
|
|
198
198
|
expect(() => {
|
|
199
|
-
gameLogic.
|
|
199
|
+
gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
200
200
|
}).toThrow('Unknown bonus type: UNKNOWN_BONUS');
|
|
201
201
|
});
|
|
202
202
|
it('should throw error for empty bonusType', () => {
|
|
@@ -208,7 +208,7 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
208
208
|
betAmount: 1,
|
|
209
209
|
};
|
|
210
210
|
expect(() => {
|
|
211
|
-
gameLogic.
|
|
211
|
+
gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
212
212
|
}).toThrow('Unknown bonus type:');
|
|
213
213
|
});
|
|
214
214
|
it('should throw error for null bonusType', () => {
|
|
@@ -220,47 +220,47 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
220
220
|
betAmount: 1,
|
|
221
221
|
};
|
|
222
222
|
expect(() => {
|
|
223
|
-
gameLogic.
|
|
223
|
+
gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
224
224
|
}).toThrow('Unknown bonus type');
|
|
225
225
|
});
|
|
226
226
|
});
|
|
227
227
|
describe('State not initialized', () => {
|
|
228
228
|
it('should handle null publicState by returning null publicState', () => {
|
|
229
229
|
const privateState = createInitializedPrivateState();
|
|
230
|
-
const params =
|
|
231
|
-
// The
|
|
232
|
-
const result = gameLogic.
|
|
230
|
+
const params = createDebugTriggerBonusParams('FREE_SPINS', 1);
|
|
231
|
+
// The debugTriggerBonus method returns publicState as-is
|
|
232
|
+
const result = gameLogic.debugTriggerBonus(null, privateState, params);
|
|
233
233
|
expect(result.publicState).toBeNull();
|
|
234
234
|
expect(result.privateState).toBeDefined();
|
|
235
235
|
});
|
|
236
236
|
it('should handle undefined publicState by returning undefined publicState', () => {
|
|
237
237
|
const privateState = createInitializedPrivateState();
|
|
238
|
-
const params =
|
|
239
|
-
const result = gameLogic.
|
|
238
|
+
const params = createDebugTriggerBonusParams('FREE_SPINS', 1);
|
|
239
|
+
const result = gameLogic.debugTriggerBonus(undefined, privateState, params);
|
|
240
240
|
expect(result.publicState).toBeUndefined();
|
|
241
241
|
});
|
|
242
242
|
it('should throw error when privateState is null', () => {
|
|
243
243
|
const publicState = createInitializedPublicState();
|
|
244
|
-
const params =
|
|
244
|
+
const params = createDebugTriggerBonusParams('FREE_SPINS', 1);
|
|
245
245
|
// When privateState is null, spreading pendingBonuses will throw
|
|
246
246
|
expect(() => {
|
|
247
|
-
gameLogic.
|
|
247
|
+
gameLogic.debugTriggerBonus(publicState, null, params);
|
|
248
248
|
}).toThrow();
|
|
249
249
|
});
|
|
250
250
|
it('should throw error when privateState is undefined', () => {
|
|
251
251
|
const publicState = createInitializedPublicState();
|
|
252
|
-
const params =
|
|
252
|
+
const params = createDebugTriggerBonusParams('FREE_SPINS', 1);
|
|
253
253
|
expect(() => {
|
|
254
|
-
gameLogic.
|
|
254
|
+
gameLogic.debugTriggerBonus(publicState, undefined, params);
|
|
255
255
|
}).toThrow();
|
|
256
256
|
});
|
|
257
257
|
it('should throw error when privateState has no pendingBonuses array', () => {
|
|
258
258
|
const publicState = createInitializedPublicState();
|
|
259
259
|
const emptyPrivateState = {};
|
|
260
|
-
const params =
|
|
260
|
+
const params = createDebugTriggerBonusParams('FREE_SPINS', 1);
|
|
261
261
|
// Spreading undefined pendingBonuses will cause issues
|
|
262
262
|
expect(() => {
|
|
263
|
-
gameLogic.
|
|
263
|
+
gameLogic.debugTriggerBonus(publicState, emptyPrivateState, params);
|
|
264
264
|
}).toThrow();
|
|
265
265
|
});
|
|
266
266
|
});
|
|
@@ -270,18 +270,18 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
270
270
|
const publicState = createInitializedPublicState();
|
|
271
271
|
const privateState1 = createInitializedPrivateState();
|
|
272
272
|
const privateState2 = createInitializedPrivateState();
|
|
273
|
-
const params1 =
|
|
274
|
-
const params2 =
|
|
275
|
-
const result1 = gameLogic.
|
|
276
|
-
const result2 = gameLogic.
|
|
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);
|
|
277
277
|
expect(result1.outcome.triggeredBonus.bonusId).not.toBe(result2.outcome.triggeredBonus.bonusId);
|
|
278
278
|
});
|
|
279
279
|
it('should correctly set pendingBonus with all required fields', () => {
|
|
280
280
|
const publicState = createInitializedPublicState();
|
|
281
281
|
const privateState = createInitializedPrivateState();
|
|
282
282
|
const betAmount = 50;
|
|
283
|
-
const params =
|
|
284
|
-
const result = gameLogic.
|
|
283
|
+
const params = createDebugTriggerBonusParams('FREE_SPINS', betAmount);
|
|
284
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
285
285
|
const pendingBonus = result.privateState.pendingBonuses[0];
|
|
286
286
|
expect(pendingBonus).toHaveProperty('bonusId');
|
|
287
287
|
expect(pendingBonus).toHaveProperty('bonusType');
|
|
@@ -301,8 +301,8 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
301
301
|
screen: [[1, 2, 3], [4, 5, 6], [7, 8, 9], [0, 1, 2], [3, 4, 5]],
|
|
302
302
|
lastBetAmount: 10,
|
|
303
303
|
};
|
|
304
|
-
const params =
|
|
305
|
-
const result = gameLogic.
|
|
304
|
+
const params = createDebugTriggerBonusParams('HOLD_WIN_BONUS', 1);
|
|
305
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
306
306
|
// Verify other fields are preserved
|
|
307
307
|
expect(result.privateState.boosterLevel).toBe(3);
|
|
308
308
|
expect(result.privateState.boosterMemory).toBe(2);
|
|
@@ -315,8 +315,8 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
315
315
|
it('should match bonusId between outcome and pendingBonuses', () => {
|
|
316
316
|
const publicState = createInitializedPublicState();
|
|
317
317
|
const privateState = createInitializedPrivateState();
|
|
318
|
-
const params =
|
|
319
|
-
const result = gameLogic.
|
|
318
|
+
const params = createDebugTriggerBonusParams('FREE_SPINS', 1);
|
|
319
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
320
320
|
expect(result.outcome.triggeredBonus.bonusId).toBe(result.privateState.pendingBonuses[result.privateState.pendingBonuses.length - 1].bonusId);
|
|
321
321
|
});
|
|
322
322
|
});
|
|
@@ -326,8 +326,8 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
326
326
|
const betAmounts = [0.1, 1, 5, 10, 50, 100, 1000];
|
|
327
327
|
for (const betAmount of betAmounts) {
|
|
328
328
|
const privateState = createInitializedPrivateState();
|
|
329
|
-
const params =
|
|
330
|
-
const result = gameLogic.
|
|
329
|
+
const params = createDebugTriggerBonusParams('FREE_SPINS', betAmount);
|
|
330
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
331
331
|
expect(result.outcome.triggeredBonus.betAmount).toBe(betAmount);
|
|
332
332
|
expect(result.privateState.pendingBonuses[0].betAmount).toBe(betAmount);
|
|
333
333
|
}
|
|
@@ -335,17 +335,17 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
335
335
|
it('should work with zero bet amount', () => {
|
|
336
336
|
const publicState = createInitializedPublicState();
|
|
337
337
|
const privateState = createInitializedPrivateState();
|
|
338
|
-
const params =
|
|
339
|
-
const result = gameLogic.
|
|
338
|
+
const params = createDebugTriggerBonusParams('FREE_SPINS', 0);
|
|
339
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
340
340
|
expect(result.outcome.triggeredBonus.betAmount).toBe(0);
|
|
341
341
|
expect(result.privateState.pendingBonuses[0].betAmount).toBe(0);
|
|
342
342
|
});
|
|
343
343
|
it('should work with negative bet amount (edge case)', () => {
|
|
344
344
|
const publicState = createInitializedPublicState();
|
|
345
345
|
const privateState = createInitializedPrivateState();
|
|
346
|
-
const params =
|
|
346
|
+
const params = createDebugTriggerBonusParams('FREE_SPINS', -5);
|
|
347
347
|
// Method does not validate bet amount
|
|
348
|
-
const result = gameLogic.
|
|
348
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
349
349
|
expect(result.outcome.triggeredBonus.betAmount).toBe(-5);
|
|
350
350
|
});
|
|
351
351
|
});
|
|
@@ -354,24 +354,24 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
354
354
|
const publicState = createInitializedPublicState();
|
|
355
355
|
const privateState = createInitializedPrivateState();
|
|
356
356
|
const sessionId = 'custom-session-abc-123';
|
|
357
|
-
const params =
|
|
358
|
-
const result = gameLogic.
|
|
357
|
+
const params = createDebugTriggerBonusParams('HOLD_WIN_BONUS', 1, sessionId);
|
|
358
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
359
359
|
expect(result).toBeDefined();
|
|
360
360
|
expect(result.outcome.triggeredBonus).toBeDefined();
|
|
361
361
|
});
|
|
362
362
|
it('should work with empty session ID', () => {
|
|
363
363
|
const publicState = createInitializedPublicState();
|
|
364
364
|
const privateState = createInitializedPrivateState();
|
|
365
|
-
const params =
|
|
366
|
-
const result = gameLogic.
|
|
365
|
+
const params = createDebugTriggerBonusParams('FREE_SPINS', 1, '');
|
|
366
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
367
367
|
expect(result).toBeDefined();
|
|
368
368
|
});
|
|
369
369
|
it('should work with very long session ID', () => {
|
|
370
370
|
const publicState = createInitializedPublicState();
|
|
371
371
|
const privateState = createInitializedPrivateState();
|
|
372
372
|
const longSessionId = 'a'.repeat(1000);
|
|
373
|
-
const params =
|
|
374
|
-
const result = gameLogic.
|
|
373
|
+
const params = createDebugTriggerBonusParams('HOLD_WIN_BONUS', 1, longSessionId);
|
|
374
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
375
375
|
expect(result).toBeDefined();
|
|
376
376
|
});
|
|
377
377
|
});
|
|
@@ -380,12 +380,12 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
380
380
|
const publicState = createInitializedPublicState();
|
|
381
381
|
let privateState = createInitializedPrivateState();
|
|
382
382
|
// First trigger
|
|
383
|
-
const params1 =
|
|
384
|
-
const result1 = gameLogic.
|
|
383
|
+
const params1 = createDebugTriggerBonusParams('FREE_SPINS', 1);
|
|
384
|
+
const result1 = gameLogic.debugTriggerBonus(publicState, privateState, params1);
|
|
385
385
|
privateState = result1.privateState;
|
|
386
386
|
// Second trigger on the updated state
|
|
387
|
-
const params2 =
|
|
388
|
-
const result2 = gameLogic.
|
|
387
|
+
const params2 = createDebugTriggerBonusParams('HOLD_WIN_BONUS', 5);
|
|
388
|
+
const result2 = gameLogic.debugTriggerBonus(publicState, privateState, params2);
|
|
389
389
|
expect(result2.privateState.pendingBonuses).toHaveLength(2);
|
|
390
390
|
expect(result2.privateState.pendingBonuses[0].bonusType).toBe(lucky_sharky_types_1.BonusType.FREE_SPINS);
|
|
391
391
|
expect(result2.privateState.pendingBonuses[1].bonusType).toBe(lucky_sharky_types_1.BonusType.HOLD_WIN_BONUS);
|
|
@@ -396,8 +396,8 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
396
396
|
const publicState = createInitializedPublicState();
|
|
397
397
|
let privateState = createInitializedPrivateState();
|
|
398
398
|
for (let i = 0; i < 3; i++) {
|
|
399
|
-
const params =
|
|
400
|
-
const result = gameLogic.
|
|
399
|
+
const params = createDebugTriggerBonusParams('FREE_SPINS', i + 1);
|
|
400
|
+
const result = gameLogic.debugTriggerBonus(publicState, privateState, params);
|
|
401
401
|
privateState = result.privateState;
|
|
402
402
|
}
|
|
403
403
|
expect(privateState.pendingBonuses).toHaveLength(3);
|
|
@@ -407,4 +407,4 @@ describe('CHEAT_TRIGGER_BONUS Command', () => {
|
|
|
407
407
|
});
|
|
408
408
|
});
|
|
409
409
|
});
|
|
410
|
-
//# sourceMappingURL=
|
|
410
|
+
//# sourceMappingURL=debug-trigger-bonus.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cheat-trigger-bonus.test.js","sourceRoot":"","sources":["../../src/__tests__/cheat-trigger-bonus.test.ts"],"names":[],"mappings":"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"}
|
|
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"}
|
|
@@ -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 {
|
|
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,17 +17,22 @@ 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<
|
|
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;
|
|
24
29
|
getSymbols(gameLogicConfig: LuckySharkyGameLogicConfigInterface): GetSymbolsResult;
|
|
25
30
|
static getBonusTypeForTrigger(bonusType: BonusType): string;
|
|
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
34
|
*/
|
|
30
|
-
|
|
35
|
+
debugTriggerBonus(publicState: LuckySharkyPublicState, privateState: LuckySharkyPrivateState, params: DebugTriggerBonusCommand): {
|
|
31
36
|
publicState: LuckySharkyPublicState;
|
|
32
37
|
privateState: LuckySharkyPrivateState;
|
|
33
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;
|
|
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
|
-
|
|
76
|
+
result = await this.handleFreeSpinsBonus(params, publicState, updatedPrivateState, config, reelStripsConfig, commandId);
|
|
77
|
+
break;
|
|
65
78
|
case 'holdWinBonus':
|
|
66
79
|
case 'HOLD_WIN_BONUS':
|
|
67
|
-
|
|
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;
|
|
@@ -127,11 +159,11 @@ class LuckySharkyGameLogic {
|
|
|
127
159
|
}
|
|
128
160
|
}
|
|
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
164
|
*/
|
|
133
|
-
|
|
134
|
-
const bonusId = `
|
|
165
|
+
debugTriggerBonus(publicState, privateState, params) {
|
|
166
|
+
const bonusId = `debug-${Date.now()}-${Math.random().toString(36).substring(7)}`;
|
|
135
167
|
// Determine the next spin type based on bonus type
|
|
136
168
|
let nextSpinType;
|
|
137
169
|
switch (params.bonusType) {
|