@openora/core 0.4.1-canary.176 → 0.4.1-canary.178

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 (75) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/audit/__tests__/map-event.test.js +122 -0
  3. package/dist/audit/__tests__/map-event.test.js.map +1 -1
  4. package/dist/audit/plugin.d.ts.map +1 -1
  5. package/dist/audit/plugin.js +44 -0
  6. package/dist/audit/plugin.js.map +1 -1
  7. package/dist/casino/gaming/__tests__/game-bulk.router.int.test.d.ts +2 -0
  8. package/dist/casino/gaming/__tests__/game-bulk.router.int.test.d.ts.map +1 -0
  9. package/dist/casino/gaming/__tests__/game-bulk.router.int.test.js +447 -0
  10. package/dist/casino/gaming/__tests__/game-bulk.router.int.test.js.map +1 -0
  11. package/dist/casino/gaming/__tests__/gaming-catalog-admin.router.int.test.js +21 -1
  12. package/dist/casino/gaming/__tests__/gaming-catalog-admin.router.int.test.js.map +1 -1
  13. package/dist/casino/gaming/contract/index.d.ts +92 -0
  14. package/dist/casino/gaming/contract/index.d.ts.map +1 -1
  15. package/dist/casino/gaming/contract/index.js +47 -1
  16. package/dist/casino/gaming/contract/index.js.map +1 -1
  17. package/dist/casino/gaming/plugin.d.ts.map +1 -1
  18. package/dist/casino/gaming/plugin.js +2 -0
  19. package/dist/casino/gaming/plugin.js.map +1 -1
  20. package/dist/casino/gaming/router/index.d.ts +50 -1
  21. package/dist/casino/gaming/router/index.d.ts.map +1 -1
  22. package/dist/casino/gaming/router/index.js +14 -1
  23. package/dist/casino/gaming/router/index.js.map +1 -1
  24. package/dist/casino/gaming/service/game-bulk.service.d.ts +54 -0
  25. package/dist/casino/gaming/service/game-bulk.service.d.ts.map +1 -0
  26. package/dist/casino/gaming/service/game-bulk.service.js +338 -0
  27. package/dist/casino/gaming/service/game-bulk.service.js.map +1 -0
  28. package/dist/casino/gaming/service/game-provider.service.d.ts +12 -0
  29. package/dist/casino/gaming/service/game-provider.service.d.ts.map +1 -1
  30. package/dist/casino/gaming/service/game-provider.service.js +1 -1
  31. package/dist/casino/gaming/service/game-provider.service.js.map +1 -1
  32. package/dist/compliance/__tests__/compliance.service.int.test.js +163 -14
  33. package/dist/compliance/__tests__/compliance.service.int.test.js.map +1 -1
  34. package/dist/compliance/contract/index.d.ts +97 -18
  35. package/dist/compliance/contract/index.d.ts.map +1 -1
  36. package/dist/compliance/contract/index.js +51 -14
  37. package/dist/compliance/contract/index.js.map +1 -1
  38. package/dist/compliance/drizzle/migrations/0010_same_the_twelve.sql +12 -0
  39. package/dist/compliance/drizzle/migrations/meta/0010_snapshot.json +1078 -0
  40. package/dist/compliance/drizzle/migrations/meta/_journal.json +7 -0
  41. package/dist/compliance/router/index.d.ts +59 -10
  42. package/dist/compliance/router/index.d.ts.map +1 -1
  43. package/dist/compliance/router/index.js +17 -5
  44. package/dist/compliance/router/index.js.map +1 -1
  45. package/dist/compliance/schema/index.d.ts +110 -0
  46. package/dist/compliance/schema/index.d.ts.map +1 -1
  47. package/dist/compliance/schema/index.js +15 -0
  48. package/dist/compliance/schema/index.js.map +1 -1
  49. package/dist/compliance/service/compliance.service.d.ts +58 -10
  50. package/dist/compliance/service/compliance.service.d.ts.map +1 -1
  51. package/dist/compliance/service/compliance.service.js +203 -69
  52. package/dist/compliance/service/compliance.service.js.map +1 -1
  53. package/dist/contracts/adapters/game-geo-check.d.ts +5 -1
  54. package/dist/contracts/adapters/game-geo-check.d.ts.map +1 -1
  55. package/dist/contracts/adapters/game-geo-check.js +7 -1
  56. package/dist/contracts/adapters/game-geo-check.js.map +1 -1
  57. package/dist/contracts/schemas/__tests__/events.test.js +31 -0
  58. package/dist/contracts/schemas/__tests__/events.test.js.map +1 -1
  59. package/dist/contracts/schemas/events.d.ts +98 -0
  60. package/dist/contracts/schemas/events.d.ts.map +1 -1
  61. package/dist/contracts/schemas/events.js +45 -1
  62. package/dist/contracts/schemas/events.js.map +1 -1
  63. package/dist/contracts/schemas/game.d.ts +15 -0
  64. package/dist/contracts/schemas/game.d.ts.map +1 -1
  65. package/dist/contracts/schemas/game.js +7 -0
  66. package/dist/contracts/schemas/game.js.map +1 -1
  67. package/dist/server/db/index.d.ts +1 -1
  68. package/dist/server/db/index.d.ts.map +1 -1
  69. package/dist/server/db/index.js +1 -1
  70. package/dist/server/db/index.js.map +1 -1
  71. package/dist/server/db/query-helpers.d.ts +1 -0
  72. package/dist/server/db/query-helpers.d.ts.map +1 -1
  73. package/dist/server/db/query-helpers.js +10 -0
  74. package/dist/server/db/query-helpers.js.map +1 -1
  75. package/package.json +1 -1
@@ -0,0 +1,447 @@
1
+ import { describe, it, expect, vi, beforeAll, afterAll, beforeEach } from 'vitest';
2
+ import { randomUUID } from 'node:crypto';
3
+ import { asc, eq, inArray, sql } from 'drizzle-orm';
4
+ import { call, ORPCError } from '@orpc/server';
5
+ import { createTestDb } from '@openora/core/testing';
6
+ import { mock, makeEventBus, makeAdminGuard, makeIdentityReader, testContext, } from '../../../testing/mock.js';
7
+ import { migrate } from '../migrate.js';
8
+ import { game, gameCategory, gameCategoryGame, gameProvider, gameRound, gameTag, gameTagGame, } from '../schema/index.js';
9
+ import { createGamingRouter } from '../router/index.js';
10
+ import { GamingService } from '../service/gaming.service.js';
11
+ import { GameCategoryService } from '../service/game-category.service.js';
12
+ import { GameTagService } from '../service/game-tag.service.js';
13
+ import { GameProviderService } from '../service/game-provider.service.js';
14
+ import { GameBulkService } from '../service/game-bulk.service.js';
15
+ const CTX = testContext();
16
+ let db;
17
+ const unrestricted = mock({
18
+ isRestricted: vi.fn().mockResolvedValue(false),
19
+ });
20
+ function makeWalletCommands() {
21
+ return mock({ debit: vi.fn(), credit: vi.fn() });
22
+ }
23
+ function routerWith(adminGuard) {
24
+ const events = makeEventBus();
25
+ const gaming = new GamingService(db.drizzle, events, mock({ launchGame: vi.fn(), endRound: vi.fn() }), unrestricted, makeWalletCommands(), makeIdentityReader());
26
+ const providers = new GameProviderService(db.drizzle, events);
27
+ const categories = new GameCategoryService(db.drizzle, events);
28
+ const tags = new GameTagService(db.drizzle, events);
29
+ const bulk = new GameBulkService(db.drizzle, events);
30
+ return {
31
+ router: createGamingRouter({ gaming, providers, categories, tags, bulk, adminGuard }),
32
+ events,
33
+ };
34
+ }
35
+ const denyingGuard = () => makeAdminGuard({ allow: [] });
36
+ const allowingGuard = () => makeAdminGuard({ caller: { userId: '88888888-8888-4888-8888-888888888888' } });
37
+ async function seedProvider(overrides = {}) {
38
+ const [row] = await db.drizzle.db
39
+ .insert(gameProvider)
40
+ .values({ slug: `provider-${randomUUID()}`, name: 'Provider', isActive: true, ...overrides })
41
+ .returning();
42
+ if (!row) {
43
+ throw new Error('failed to seed a game provider');
44
+ }
45
+ return row;
46
+ }
47
+ async function seedGame(providerId, overrides = {}) {
48
+ const [row] = await db.drizzle.db
49
+ .insert(game)
50
+ .values({
51
+ name: 'Game',
52
+ slug: `game-${randomUUID()}`,
53
+ providerId,
54
+ aggregator: 'direct',
55
+ isActive: true,
56
+ ...overrides,
57
+ })
58
+ .returning();
59
+ if (!row) {
60
+ throw new Error('failed to seed a game');
61
+ }
62
+ return row;
63
+ }
64
+ async function seedManyGames(providerId, count) {
65
+ const rows = await db.drizzle.db
66
+ .insert(game)
67
+ .values(Array.from({ length: count }, () => ({
68
+ name: 'Game',
69
+ slug: `game-${randomUUID()}`,
70
+ providerId,
71
+ aggregator: 'direct',
72
+ isActive: true,
73
+ })))
74
+ .returning({ id: game.id });
75
+ return rows.map((row) => row.id);
76
+ }
77
+ async function seedManyTags(count) {
78
+ const rows = await db.drizzle.db
79
+ .insert(gameTag)
80
+ .values(Array.from({ length: count }, () => ({ name: `Tag ${randomUUID()}` })))
81
+ .returning({ id: gameTag.id });
82
+ return rows.map((row) => row.id);
83
+ }
84
+ async function seedTag(overrides = {}) {
85
+ const [row] = await db.drizzle.db
86
+ .insert(gameTag)
87
+ .values({ name: `Tag ${randomUUID()}`, ...overrides })
88
+ .returning();
89
+ if (!row) {
90
+ throw new Error('failed to seed a game tag');
91
+ }
92
+ return row;
93
+ }
94
+ async function seedCategory(overrides = {}) {
95
+ const [row] = await db.drizzle.db
96
+ .insert(gameCategory)
97
+ .values({ slug: `category-${randomUUID()}`, name: `Category ${randomUUID()}`, ...overrides })
98
+ .returning();
99
+ if (!row) {
100
+ throw new Error('failed to seed a game category');
101
+ }
102
+ return row;
103
+ }
104
+ async function gameTagIdsFor(gameId) {
105
+ const rows = await db.drizzle.db
106
+ .select({ tagId: gameTagGame.tagId })
107
+ .from(gameTagGame)
108
+ .where(eq(gameTagGame.gameId, gameId))
109
+ .orderBy(asc(gameTagGame.tagId));
110
+ return rows.map((r) => r.tagId);
111
+ }
112
+ async function gameCategoryIdsFor(gameId) {
113
+ const rows = await db.drizzle.db
114
+ .select({ categoryId: gameCategoryGame.categoryId })
115
+ .from(gameCategoryGame)
116
+ .where(eq(gameCategoryGame.gameId, gameId))
117
+ .orderBy(asc(gameCategoryGame.categoryId));
118
+ return rows.map((r) => r.categoryId);
119
+ }
120
+ beforeAll(async () => {
121
+ db = await createTestDb([migrate]);
122
+ });
123
+ afterAll(async () => {
124
+ await db.drop();
125
+ });
126
+ beforeEach(async () => {
127
+ await db.drizzle.db.execute(sql `TRUNCATE ${gameRound}, ${gameCategoryGame}, ${gameTagGame}, ${game}, ${gameProvider}, ${gameCategory}, ${gameTag} RESTART IDENTITY CASCADE`);
128
+ });
129
+ const UNKNOWN_ID = '00000000-0000-4000-8000-000000000000';
130
+ describe('setGamesActive', () => {
131
+ it('rejects a non-privileged caller and writes nothing', async () => {
132
+ const provider = await seedProvider();
133
+ const target = await seedGame(provider.id);
134
+ await expect(call(routerWith(denyingGuard()).router.setGamesActive, { gameIds: [target.id], isActive: false }, { context: CTX })).rejects.toBeInstanceOf(ORPCError);
135
+ const [row] = await db.drizzle.db.select().from(game).where(eq(game.id, target.id));
136
+ expect(row?.isActive).toBe(true);
137
+ });
138
+ it('rejects an unauthenticated caller the same way', async () => {
139
+ const provider = await seedProvider();
140
+ const target = await seedGame(provider.id);
141
+ const { router } = routerWith(makeAdminGuard({ allow: [] }));
142
+ await expect(call(router.setGamesActive, { gameIds: [target.id], isActive: false }, { context: CTX })).rejects.toBeInstanceOf(ORPCError);
143
+ });
144
+ it('deactivates by gameIds, by providerIds, and counts a mixed overlap once', async () => {
145
+ const providerA = await seedProvider();
146
+ const providerB = await seedProvider();
147
+ const gA1 = await seedGame(providerA.id);
148
+ const gA2 = await seedGame(providerA.id);
149
+ const gB1 = await seedGame(providerB.id);
150
+ const untouched = await seedGame(providerB.id);
151
+ const { router, events } = routerWith(allowingGuard());
152
+ const result = await call(router.setGamesActive, { gameIds: [gA1.id, gB1.id], providerIds: [providerA.id], isActive: false }, { context: CTX });
153
+ expect(result).toEqual({
154
+ games: { updatedCount: 3, unchangedCount: 0 },
155
+ providers: { updatedCount: 1, unchangedCount: 0 },
156
+ notFound: { gameIds: [], providerIds: [] },
157
+ unplayableGameIds: [],
158
+ });
159
+ const rows = await db.drizzle.db
160
+ .select({ id: game.id, isActive: game.isActive })
161
+ .from(game)
162
+ .where(inArray(game.id, [gA1.id, gA2.id, gB1.id, untouched.id]));
163
+ const byId = new Map(rows.map((r) => [r.id, r.isActive]));
164
+ expect(byId.get(gA1.id)).toBe(false);
165
+ expect(byId.get(gA2.id)).toBe(false);
166
+ expect(byId.get(gB1.id)).toBe(false);
167
+ expect(byId.get(untouched.id)).toBe(true);
168
+ const [providerRow] = await db.drizzle.db
169
+ .select()
170
+ .from(gameProvider)
171
+ .where(eq(gameProvider.id, providerA.id));
172
+ expect(providerRow?.isActive).toBe(false);
173
+ expect(events.emit).toHaveBeenCalledTimes(2);
174
+ const [summaryCall] = events.emit.mock.calls.filter(([topic]) => topic === 'gaming.games.bulk_updated');
175
+ const [providerCall] = events.emit.mock.calls.filter(([topic]) => topic === 'gaming.provider.updated');
176
+ expect(summaryCall?.[1]).toMatchObject({
177
+ operation: 'set_active',
178
+ isActive: false,
179
+ changedGameIds: [gA1.id, gA2.id, gB1.id].sort(),
180
+ changedProviderIds: [providerA.id],
181
+ notFound: { gameIds: [], providerIds: [] },
182
+ bulkOperationId: expect.any(String),
183
+ });
184
+ expect(providerCall?.[1]).toMatchObject({
185
+ providerId: providerA.id,
186
+ before: expect.objectContaining({ isActive: true }),
187
+ after: expect.objectContaining({ isActive: false }),
188
+ bulkOperationId: summaryCall?.[1].bulkOperationId,
189
+ });
190
+ });
191
+ it('reports nonexistent ids in notFound while the rest still applies', async () => {
192
+ const provider = await seedProvider();
193
+ const target = await seedGame(provider.id);
194
+ const ghostGame = randomUUID();
195
+ const ghostProvider = randomUUID();
196
+ const { router } = routerWith(allowingGuard());
197
+ const result = await call(router.setGamesActive, { gameIds: [target.id, ghostGame], providerIds: [ghostProvider], isActive: false }, { context: CTX });
198
+ expect(result).toEqual({
199
+ games: { updatedCount: 1, unchangedCount: 0 },
200
+ providers: { updatedCount: 0, unchangedCount: 0 },
201
+ notFound: { gameIds: [ghostGame], providerIds: [ghostProvider] },
202
+ unplayableGameIds: [],
203
+ });
204
+ const [row] = await db.drizzle.db.select().from(game).where(eq(game.id, target.id));
205
+ expect(row?.isActive).toBe(false);
206
+ });
207
+ it('flags a game left active under a still-inactive provider as unplayable', async () => {
208
+ const activeProvider = await seedProvider();
209
+ const inactiveProvider = await seedProvider({ isActive: false });
210
+ const targeted = await seedGame(activeProvider.id, { isActive: false });
211
+ const strandedGame = await seedGame(inactiveProvider.id, { isActive: false });
212
+ const { router } = routerWith(allowingGuard());
213
+ const result = await call(router.setGamesActive, { gameIds: [targeted.id, strandedGame.id], isActive: true }, { context: CTX });
214
+ expect(result.games).toEqual({ updatedCount: 2, unchangedCount: 0 });
215
+ expect(result.unplayableGameIds).toEqual([strandedGame.id]);
216
+ });
217
+ it('repeating an identical call reports everything unchanged and emits no second event', async () => {
218
+ const provider = await seedProvider();
219
+ const target = await seedGame(provider.id);
220
+ const { router, events } = routerWith(allowingGuard());
221
+ await call(router.setGamesActive, { gameIds: [target.id], isActive: false }, { context: CTX });
222
+ expect(events.emit).toHaveBeenCalledTimes(1);
223
+ const second = await call(router.setGamesActive, { gameIds: [target.id], isActive: false }, { context: CTX });
224
+ expect(second).toEqual({
225
+ games: { updatedCount: 0, unchangedCount: 1 },
226
+ providers: { updatedCount: 0, unchangedCount: 0 },
227
+ notFound: { gameIds: [], providerIds: [] },
228
+ unplayableGameIds: [],
229
+ });
230
+ expect(events.emit).toHaveBeenCalledTimes(1);
231
+ });
232
+ });
233
+ describe('addGameTags', () => {
234
+ it('rejects a non-privileged caller and writes nothing', async () => {
235
+ const provider = await seedProvider();
236
+ const target = await seedGame(provider.id);
237
+ const tag = await seedTag();
238
+ await expect(call(routerWith(denyingGuard()).router.addGameTags, { gameIds: [target.id], tagIds: [tag.id] }, { context: CTX })).rejects.toBeInstanceOf(ORPCError);
239
+ expect(await gameTagIdsFor(target.id)).toEqual([]);
240
+ });
241
+ it('adds tags by gameIds, by providerIds, and counts a mixed overlap once', async () => {
242
+ const providerA = await seedProvider();
243
+ const providerB = await seedProvider();
244
+ const gA1 = await seedGame(providerA.id);
245
+ const gA2 = await seedGame(providerA.id);
246
+ const gB1 = await seedGame(providerB.id);
247
+ const tag = await seedTag();
248
+ const { router, events } = routerWith(allowingGuard());
249
+ const result = await call(router.addGameTags, { gameIds: [gA1.id, gB1.id], providerIds: [providerA.id], tagIds: [tag.id] }, { context: CTX });
250
+ expect(result).toEqual({
251
+ games: { updatedCount: 3, unchangedCount: 0 },
252
+ notFound: { gameIds: [], providerIds: [] },
253
+ });
254
+ expect(await gameTagIdsFor(gA1.id)).toEqual([tag.id]);
255
+ expect(await gameTagIdsFor(gA2.id)).toEqual([tag.id]);
256
+ expect(await gameTagIdsFor(gB1.id)).toEqual([tag.id]);
257
+ expect(events.emit).toHaveBeenCalledTimes(1);
258
+ expect(events.emit).toHaveBeenCalledWith('gaming.games.bulk_updated', expect.objectContaining({
259
+ operation: 'add_tags',
260
+ tagIds: [tag.id],
261
+ addedLinks: [gA1.id, gA2.id, gB1.id].sort().map((gameId) => ({ gameId, tagIds: [tag.id] })),
262
+ }));
263
+ });
264
+ it('reports a nonexistent gameId in notFound while the rest still applies', async () => {
265
+ const provider = await seedProvider();
266
+ const target = await seedGame(provider.id);
267
+ const tag = await seedTag();
268
+ const ghostGame = randomUUID();
269
+ const { router } = routerWith(allowingGuard());
270
+ const result = await call(router.addGameTags, { gameIds: [target.id, ghostGame], tagIds: [tag.id] }, { context: CTX });
271
+ expect(result).toEqual({
272
+ games: { updatedCount: 1, unchangedCount: 0 },
273
+ notFound: { gameIds: [ghostGame], providerIds: [] },
274
+ });
275
+ });
276
+ it('rejects the whole call with NOT_FOUND on an unknown tagId, writing nothing', async () => {
277
+ const provider = await seedProvider();
278
+ const target = await seedGame(provider.id);
279
+ const realTag = await seedTag();
280
+ const ghostTag = randomUUID();
281
+ const { router } = routerWith(allowingGuard());
282
+ await expect(call(router.addGameTags, { gameIds: [target.id], tagIds: [realTag.id, ghostTag] }, { context: CTX })).rejects.toMatchObject({ code: 'NOT_FOUND' });
283
+ expect(await gameTagIdsFor(target.id)).toEqual([]);
284
+ });
285
+ it('is add-only: a pre-existing tag on another slot survives', async () => {
286
+ const provider = await seedProvider();
287
+ const target = await seedGame(provider.id);
288
+ const existingTag = await seedTag();
289
+ const newTag = await seedTag();
290
+ await db.drizzle.db.insert(gameTagGame).values({ gameId: target.id, tagId: existingTag.id });
291
+ const { router } = routerWith(allowingGuard());
292
+ await call(router.addGameTags, { gameIds: [target.id], tagIds: [newTag.id] }, { context: CTX });
293
+ expect(await gameTagIdsFor(target.id)).toEqual([existingTag.id, newTag.id].sort());
294
+ });
295
+ it('reports only the missing ids per game on a partial overlap', async () => {
296
+ const provider = await seedProvider();
297
+ const partial = await seedGame(provider.id);
298
+ const fresh = await seedGame(provider.id);
299
+ const tagA = await seedTag();
300
+ const tagB = await seedTag();
301
+ await db.drizzle.db.insert(gameTagGame).values({ gameId: partial.id, tagId: tagA.id });
302
+ const { router, events } = routerWith(allowingGuard());
303
+ const result = await call(router.addGameTags, { gameIds: [partial.id, fresh.id], tagIds: [tagA.id, tagB.id] }, { context: CTX });
304
+ expect(result).toEqual({
305
+ games: { updatedCount: 2, unchangedCount: 0 },
306
+ notFound: { gameIds: [], providerIds: [] },
307
+ });
308
+ expect(await gameTagIdsFor(partial.id)).toEqual([tagA.id, tagB.id].sort());
309
+ expect(await gameTagIdsFor(fresh.id)).toEqual([tagA.id, tagB.id].sort());
310
+ expect(events.emit).toHaveBeenCalledWith('gaming.games.bulk_updated', expect.objectContaining({
311
+ addedLinks: [
312
+ { gameId: partial.id, tagIds: [tagB.id] },
313
+ { gameId: fresh.id, tagIds: [tagA.id, tagB.id].sort() },
314
+ ].sort((a, b) => (a.gameId < b.gameId ? -1 : a.gameId > b.gameId ? 1 : 0)),
315
+ }));
316
+ });
317
+ it('repeating an identical call reports everything unchanged and emits no second event', async () => {
318
+ const provider = await seedProvider();
319
+ const target = await seedGame(provider.id);
320
+ const tag = await seedTag();
321
+ const { router, events } = routerWith(allowingGuard());
322
+ await call(router.addGameTags, { gameIds: [target.id], tagIds: [tag.id] }, { context: CTX });
323
+ expect(events.emit).toHaveBeenCalledTimes(1);
324
+ const second = await call(router.addGameTags, { gameIds: [target.id], tagIds: [tag.id] }, { context: CTX });
325
+ expect(second).toEqual({
326
+ games: { updatedCount: 0, unchangedCount: 1 },
327
+ notFound: { gameIds: [], providerIds: [] },
328
+ });
329
+ expect(events.emit).toHaveBeenCalledTimes(1);
330
+ });
331
+ });
332
+ describe('addGameCategories', () => {
333
+ it('rejects a non-privileged caller and writes nothing', async () => {
334
+ const provider = await seedProvider();
335
+ const target = await seedGame(provider.id);
336
+ const category = await seedCategory();
337
+ await expect(call(routerWith(denyingGuard()).router.addGameCategories, { gameIds: [target.id], categoryIds: [category.id] }, { context: CTX })).rejects.toBeInstanceOf(ORPCError);
338
+ expect(await gameCategoryIdsFor(target.id)).toEqual([]);
339
+ });
340
+ it('adds categories by gameIds, by providerIds, and counts a mixed overlap once', async () => {
341
+ const providerA = await seedProvider();
342
+ const providerB = await seedProvider();
343
+ const gA1 = await seedGame(providerA.id);
344
+ const gA2 = await seedGame(providerA.id);
345
+ const gB1 = await seedGame(providerB.id);
346
+ const category = await seedCategory();
347
+ const { router, events } = routerWith(allowingGuard());
348
+ const result = await call(router.addGameCategories, { gameIds: [gA1.id, gB1.id], providerIds: [providerA.id], categoryIds: [category.id] }, { context: CTX });
349
+ expect(result).toEqual({
350
+ games: { updatedCount: 3, unchangedCount: 0 },
351
+ notFound: { gameIds: [], providerIds: [] },
352
+ });
353
+ expect(await gameCategoryIdsFor(gA1.id)).toEqual([category.id]);
354
+ expect(await gameCategoryIdsFor(gA2.id)).toEqual([category.id]);
355
+ expect(await gameCategoryIdsFor(gB1.id)).toEqual([category.id]);
356
+ expect(events.emit).toHaveBeenCalledTimes(1);
357
+ expect(events.emit).toHaveBeenCalledWith('gaming.games.bulk_updated', expect.objectContaining({
358
+ operation: 'add_categories',
359
+ categoryIds: [category.id],
360
+ addedLinks: [gA1.id, gA2.id, gB1.id]
361
+ .sort()
362
+ .map((gameId) => ({ gameId, categoryIds: [category.id] })),
363
+ }));
364
+ });
365
+ it('rejects the whole call with NOT_FOUND on an unknown categoryId, writing nothing', async () => {
366
+ const provider = await seedProvider();
367
+ const target = await seedGame(provider.id);
368
+ const realCategory = await seedCategory();
369
+ const ghostCategory = randomUUID();
370
+ const { router } = routerWith(allowingGuard());
371
+ await expect(call(router.addGameCategories, { gameIds: [target.id], categoryIds: [realCategory.id, ghostCategory] }, { context: CTX })).rejects.toMatchObject({ code: 'NOT_FOUND' });
372
+ expect(await gameCategoryIdsFor(target.id)).toEqual([]);
373
+ });
374
+ it('is add-only: a pre-existing category survives a second bulk add', async () => {
375
+ const provider = await seedProvider();
376
+ const target = await seedGame(provider.id);
377
+ const existingCategory = await seedCategory();
378
+ const newCategory = await seedCategory();
379
+ await db.drizzle.db
380
+ .insert(gameCategoryGame)
381
+ .values({ gameId: target.id, categoryId: existingCategory.id });
382
+ const { router } = routerWith(allowingGuard());
383
+ await call(router.addGameCategories, { gameIds: [target.id], categoryIds: [newCategory.id] }, { context: CTX });
384
+ expect(await gameCategoryIdsFor(target.id)).toEqual([existingCategory.id, newCategory.id].sort());
385
+ });
386
+ it('reports a nonexistent providerId in notFound while the rest still applies', async () => {
387
+ const provider = await seedProvider();
388
+ const target = await seedGame(provider.id);
389
+ const category = await seedCategory();
390
+ const ghostProvider = randomUUID();
391
+ const { router } = routerWith(allowingGuard());
392
+ const result = await call(router.addGameCategories, { gameIds: [target.id], providerIds: [ghostProvider], categoryIds: [category.id] }, { context: CTX });
393
+ expect(result).toEqual({
394
+ games: { updatedCount: 1, unchangedCount: 0 },
395
+ notFound: { gameIds: [], providerIds: [ghostProvider] },
396
+ });
397
+ });
398
+ });
399
+ describe('bulk route 5,000-game cap', () => {
400
+ it('rejects a call matching more than 5,000 games and writes nothing', async () => {
401
+ const provider = await seedProvider();
402
+ const gameIds = await seedManyGames(provider.id, 5001);
403
+ const tag = await seedTag();
404
+ const { router } = routerWith(allowingGuard());
405
+ await expect(call(router.addGameTags, { providerIds: [provider.id], tagIds: [tag.id] }, { context: CTX })).rejects.toMatchObject({ code: 'BAD_REQUEST' });
406
+ expect(await gameTagIdsFor(gameIds[0])).toEqual([]);
407
+ }, 30_000);
408
+ it('adds 7 tags across exactly 5,000 games (35,000 links, past the bind-parameter limit of a VALUES insert)', async () => {
409
+ const provider = await seedProvider();
410
+ const gameIds = await seedManyGames(provider.id, 5000);
411
+ const tagIds = await seedManyTags(7);
412
+ const { router } = routerWith(allowingGuard());
413
+ const result = await call(router.addGameTags, { providerIds: [provider.id], tagIds }, { context: CTX });
414
+ expect(result).toEqual({
415
+ games: { updatedCount: 5000, unchangedCount: 0 },
416
+ notFound: { gameIds: [], providerIds: [] },
417
+ });
418
+ expect(await gameTagIdsFor(gameIds[0])).toEqual([...tagIds].sort());
419
+ }, 30_000);
420
+ it('also caps setGamesActive and addGameCategories the same way', async () => {
421
+ const provider = await seedProvider();
422
+ await seedManyGames(provider.id, 5001);
423
+ const category = await seedCategory();
424
+ const { router } = routerWith(allowingGuard());
425
+ await expect(call(router.setGamesActive, { providerIds: [provider.id], isActive: false }, { context: CTX })).rejects.toMatchObject({ code: 'BAD_REQUEST' });
426
+ await expect(call(router.addGameCategories, { providerIds: [provider.id], categoryIds: [category.id] }, { context: CTX })).rejects.toMatchObject({ code: 'BAD_REQUEST' });
427
+ }, 30_000);
428
+ });
429
+ describe('bulk route input validation', () => {
430
+ it('rejects a target naming neither gameIds nor providerIds', async () => {
431
+ const { router } = routerWith(allowingGuard());
432
+ await expect(call(router.setGamesActive, { isActive: true }, { context: CTX })).rejects.toBeInstanceOf(ORPCError);
433
+ });
434
+ it('rejects an empty tagIds array', async () => {
435
+ const provider = await seedProvider();
436
+ const target = await seedGame(provider.id);
437
+ const { router } = routerWith(allowingGuard());
438
+ await expect(call(router.addGameTags, { gameIds: [target.id], tagIds: [] }, { context: CTX })).rejects.toBeInstanceOf(ORPCError);
439
+ });
440
+ it('rejects when the guarded id is not even a UUID', async () => {
441
+ const { router } = routerWith(allowingGuard());
442
+ await expect(call(router.setGamesActive, { gameIds: [UNKNOWN_ID], providerIds: ['not-a-uuid'] }, {
443
+ context: CTX,
444
+ })).rejects.toBeInstanceOf(ORPCError);
445
+ });
446
+ });
447
+ //# sourceMappingURL=game-bulk.router.int.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game-bulk.router.int.test.js","sourceRoot":"","sources":["../../../../src/casino/gaming/__tests__/game-bulk.router.int.test.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ import { GamingService } from '../service/gaming.service.js';
11
11
  import { GameCategoryService } from '../service/game-category.service.js';
12
12
  import { GameTagService } from '../service/game-tag.service.js';
13
13
  import { GameProviderService } from '../service/game-provider.service.js';
14
+ import { GameBulkService } from '../service/game-bulk.service.js';
14
15
  const CTX = testContext();
15
16
  let db;
16
17
  const unrestricted = mock({
@@ -31,8 +32,9 @@ function routerWith(adminGuard) {
31
32
  const providers = new GameProviderService(db.drizzle, events);
32
33
  const categories = new GameCategoryService(db.drizzle, events);
33
34
  const tags = new GameTagService(db.drizzle, events);
35
+ const bulk = new GameBulkService(db.drizzle, events);
34
36
  return {
35
- router: createGamingRouter({ gaming, providers, categories, tags, adminGuard }),
37
+ router: createGamingRouter({ gaming, providers, categories, tags, bulk, adminGuard }),
36
38
  events,
37
39
  };
38
40
  }
@@ -94,6 +96,24 @@ const GUARDED_ROUTES = [
94
96
  name: 'getCatalogStats',
95
97
  invoke: (r) => call(r.getCatalogStats, undefined, { context: CTX }),
96
98
  },
99
+ {
100
+ name: 'setGamesActive',
101
+ invoke: (r) => call(r.setGamesActive, { gameIds: ['00000000-0000-4000-8000-000000000000'], isActive: true }, { context: CTX }),
102
+ },
103
+ {
104
+ name: 'addGameTags',
105
+ invoke: (r) => call(r.addGameTags, {
106
+ gameIds: ['00000000-0000-4000-8000-000000000000'],
107
+ tagIds: ['00000000-0000-4000-8000-000000000001'],
108
+ }, { context: CTX }),
109
+ },
110
+ {
111
+ name: 'addGameCategories',
112
+ invoke: (r) => call(r.addGameCategories, {
113
+ gameIds: ['00000000-0000-4000-8000-000000000000'],
114
+ categoryIds: ['00000000-0000-4000-8000-000000000001'],
115
+ }, { context: CTX }),
116
+ },
97
117
  ];
98
118
  beforeAll(async () => {
99
119
  db = await createTestDb([migrate]);
@@ -1 +1 @@
1
- {"version":3,"file":"gaming-catalog-admin.router.int.test.js","sourceRoot":"","sources":["../../../../src/casino/gaming/__tests__/gaming-catalog-admin.router.int.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gaming-catalog-admin.router.int.test.js","sourceRoot":"","sources":["../../../../src/casino/gaming/__tests__/gaming-catalog-admin.router.int.test.ts"],"names":[],"mappings":"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"}