@openora/core 0.4.1-canary.152 → 0.4.1-canary.154
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/dist/.tsbuildinfo +1 -1
- package/dist/admin-console/__tests__/backoffice.service.int.test.js +20 -3
- package/dist/admin-console/__tests__/backoffice.service.int.test.js.map +1 -1
- package/dist/audit/__tests__/map-event.test.js +46 -0
- package/dist/audit/__tests__/map-event.test.js.map +1 -1
- package/dist/audit/plugin.d.ts.map +1 -1
- package/dist/audit/plugin.js +74 -1
- package/dist/audit/plugin.js.map +1 -1
- package/dist/audit/service/audit.service.d.ts.map +1 -1
- package/dist/audit/service/audit.service.js +1 -6
- package/dist/audit/service/audit.service.js.map +1 -1
- package/dist/casino/gaming/__tests__/admin-reporting.int.test.js +20 -3
- package/dist/casino/gaming/__tests__/admin-reporting.int.test.js.map +1 -1
- package/dist/casino/gaming/__tests__/game-category.service.int.test.d.ts +2 -0
- package/dist/casino/gaming/__tests__/game-category.service.int.test.d.ts.map +1 -0
- package/dist/casino/gaming/__tests__/game-category.service.int.test.js +134 -0
- package/dist/casino/gaming/__tests__/game-category.service.int.test.js.map +1 -0
- package/dist/casino/gaming/__tests__/game-provider.service.int.test.d.ts +2 -0
- package/dist/casino/gaming/__tests__/game-provider.service.int.test.d.ts.map +1 -0
- package/dist/casino/gaming/__tests__/game-provider.service.int.test.js +274 -0
- package/dist/casino/gaming/__tests__/game-provider.service.int.test.js.map +1 -0
- package/dist/casino/gaming/__tests__/gaming-catalog-admin.router.int.test.d.ts +2 -0
- package/dist/casino/gaming/__tests__/gaming-catalog-admin.router.int.test.d.ts.map +1 -0
- package/dist/casino/gaming/__tests__/gaming-catalog-admin.router.int.test.js +174 -0
- package/dist/casino/gaming/__tests__/gaming-catalog-admin.router.int.test.js.map +1 -0
- package/dist/casino/gaming/__tests__/gaming-migration.int.test.d.ts +2 -0
- package/dist/casino/gaming/__tests__/gaming-migration.int.test.d.ts.map +1 -0
- package/dist/casino/gaming/__tests__/gaming-migration.int.test.js +171 -0
- package/dist/casino/gaming/__tests__/gaming-migration.int.test.js.map +1 -0
- package/dist/casino/gaming/__tests__/gaming.service.int.test.js +274 -13
- package/dist/casino/gaming/__tests__/gaming.service.int.test.js.map +1 -1
- package/dist/casino/gaming/contract/index.d.ts +520 -18
- package/dist/casino/gaming/contract/index.d.ts.map +1 -1
- package/dist/casino/gaming/contract/index.js +167 -4
- package/dist/casino/gaming/contract/index.js.map +1 -1
- package/dist/casino/gaming/drizzle/migrations/0005_natural_thunderbolt_ross.sql +223 -0
- package/dist/casino/gaming/drizzle/migrations/meta/0005_snapshot.json +680 -0
- package/dist/casino/gaming/drizzle/migrations/meta/_journal.json +7 -0
- package/dist/casino/gaming/plugin.d.ts.map +1 -1
- package/dist/casino/gaming/plugin.js +9 -2
- package/dist/casino/gaming/plugin.js.map +1 -1
- package/dist/casino/gaming/router/index.d.ts +372 -18
- package/dist/casino/gaming/router/index.d.ts.map +1 -1
- package/dist/casino/gaming/router/index.js +62 -6
- package/dist/casino/gaming/router/index.js.map +1 -1
- package/dist/casino/gaming/schema/index.d.ts +499 -4
- package/dist/casino/gaming/schema/index.d.ts.map +1 -1
- package/dist/casino/gaming/schema/index.js +72 -6
- package/dist/casino/gaming/schema/index.js.map +1 -1
- package/dist/casino/gaming/service/game-category.service.d.ts +109 -0
- package/dist/casino/gaming/service/game-category.service.d.ts.map +1 -0
- package/dist/casino/gaming/service/game-category.service.js +176 -0
- package/dist/casino/gaming/service/game-category.service.js.map +1 -0
- package/dist/casino/gaming/service/game-provider.service.d.ts +118 -0
- package/dist/casino/gaming/service/game-provider.service.d.ts.map +1 -0
- package/dist/casino/gaming/service/game-provider.service.js +251 -0
- package/dist/casino/gaming/service/game-provider.service.js.map +1 -0
- package/dist/casino/gaming/service/gaming.service.d.ts +122 -14
- package/dist/casino/gaming/service/gaming.service.d.ts.map +1 -1
- package/dist/casino/gaming/service/gaming.service.js +189 -23
- package/dist/casino/gaming/service/gaming.service.js.map +1 -1
- package/dist/casino/lobby/__tests__/lobby.cache.int.test.js +137 -4
- package/dist/casino/lobby/__tests__/lobby.cache.int.test.js.map +1 -1
- package/dist/casino/lobby/contract/index.d.ts +68 -8
- package/dist/casino/lobby/contract/index.d.ts.map +1 -1
- package/dist/casino/lobby/contract/index.js +4 -3
- package/dist/casino/lobby/contract/index.js.map +1 -1
- package/dist/casino/lobby/router/index.d.ts +34 -4
- package/dist/casino/lobby/router/index.d.ts.map +1 -1
- package/dist/casino/lobby/service/lobby.service.d.ts +34 -4
- package/dist/casino/lobby/service/lobby.service.d.ts.map +1 -1
- package/dist/casino/lobby/service/lobby.service.js +60 -26
- package/dist/casino/lobby/service/lobby.service.js.map +1 -1
- package/dist/casino/shared/game-catalog.d.ts +32 -0
- package/dist/casino/shared/game-catalog.d.ts.map +1 -0
- package/dist/casino/shared/game-catalog.js +67 -0
- package/dist/casino/shared/game-catalog.js.map +1 -0
- package/dist/compliance/__tests__/compliance.service.int.test.js +248 -25
- package/dist/compliance/__tests__/compliance.service.int.test.js.map +1 -1
- package/dist/compliance/__tests__/regulatory-overview.router.int.test.d.ts +2 -0
- package/dist/compliance/__tests__/regulatory-overview.router.int.test.d.ts.map +1 -0
- package/dist/compliance/__tests__/regulatory-overview.router.int.test.js +102 -0
- package/dist/compliance/__tests__/regulatory-overview.router.int.test.js.map +1 -0
- package/dist/compliance/__tests__/rg-monitoring.service.int.test.js +17 -3
- package/dist/compliance/__tests__/rg-monitoring.service.int.test.js.map +1 -1
- package/dist/compliance/__tests__/rg-self-service.int.test.js +2 -2
- package/dist/compliance/__tests__/rg-self-service.int.test.js.map +1 -1
- package/dist/compliance/contract/index.d.ts +77 -2
- package/dist/compliance/contract/index.d.ts.map +1 -1
- package/dist/compliance/contract/index.js +50 -1
- package/dist/compliance/contract/index.js.map +1 -1
- package/dist/compliance/drizzle/migrations/0008_omniscient_northstar.sql +14 -0
- package/dist/compliance/drizzle/migrations/meta/0008_snapshot.json +870 -0
- package/dist/compliance/drizzle/migrations/meta/_journal.json +7 -0
- package/dist/compliance/plugin.d.ts.map +1 -1
- package/dist/compliance/plugin.js +2 -2
- package/dist/compliance/plugin.js.map +1 -1
- package/dist/compliance/router/index.d.ts +43 -1
- package/dist/compliance/router/index.d.ts.map +1 -1
- package/dist/compliance/router/index.js +32 -4
- package/dist/compliance/router/index.js.map +1 -1
- package/dist/compliance/schema/index.d.ts +181 -2
- package/dist/compliance/schema/index.d.ts.map +1 -1
- package/dist/compliance/schema/index.js +15 -2
- package/dist/compliance/schema/index.js.map +1 -1
- package/dist/compliance/server.d.ts +1 -1
- package/dist/compliance/server.d.ts.map +1 -1
- package/dist/compliance/server.js +1 -1
- package/dist/compliance/server.js.map +1 -1
- package/dist/compliance/service/compliance.service.d.ts +61 -14
- package/dist/compliance/service/compliance.service.d.ts.map +1 -1
- package/dist/compliance/service/compliance.service.js +226 -30
- package/dist/compliance/service/compliance.service.js.map +1 -1
- package/dist/contracts/__tests__/kit.test.js +21 -1
- package/dist/contracts/__tests__/kit.test.js.map +1 -1
- package/dist/contracts/adapters/audit.d.ts +1 -1
- package/dist/contracts/adapters/audit.d.ts.map +1 -1
- package/dist/contracts/adapters/audit.js.map +1 -1
- package/dist/contracts/kit.d.ts +3 -0
- package/dist/contracts/kit.d.ts.map +1 -1
- package/dist/contracts/kit.js +8 -0
- package/dist/contracts/kit.js.map +1 -1
- package/dist/contracts/schemas/__tests__/events.test.js +7 -0
- package/dist/contracts/schemas/__tests__/events.test.js.map +1 -1
- package/dist/contracts/schemas/__tests__/game-schemas.test.d.ts +2 -0
- package/dist/contracts/schemas/__tests__/game-schemas.test.d.ts.map +1 -0
- package/dist/contracts/schemas/__tests__/game-schemas.test.js +43 -0
- package/dist/contracts/schemas/__tests__/game-schemas.test.js.map +1 -0
- package/dist/contracts/schemas/events.d.ts +109 -0
- package/dist/contracts/schemas/events.d.ts.map +1 -1
- package/dist/contracts/schemas/events.js +87 -3
- package/dist/contracts/schemas/events.js.map +1 -1
- package/dist/contracts/schemas/game.d.ts +39 -0
- package/dist/contracts/schemas/game.d.ts.map +1 -1
- package/dist/contracts/schemas/game.js +32 -0
- package/dist/contracts/schemas/game.js.map +1 -1
- package/dist/contracts/schemas/iam.d.ts +2 -1
- package/dist/contracts/schemas/iam.d.ts.map +1 -1
- package/dist/contracts/schemas/iam.js +2 -1
- package/dist/contracts/schemas/iam.js.map +1 -1
- package/dist/iam/seed/data/default-admin-roles.d.ts.map +1 -1
- package/dist/iam/seed/data/default-admin-roles.js +1 -0
- package/dist/iam/seed/data/default-admin-roles.js.map +1 -1
- package/dist/iam/service/iam.service.d.ts +1 -1
- package/dist/react/client.d.ts +2 -1
- package/dist/react/client.d.ts.map +1 -1
- package/dist/react/client.js +2 -1
- package/dist/react/client.js.map +1 -1
- package/dist/server/auth/permissions.d.ts +24 -12
- package/dist/server/auth/permissions.d.ts.map +1 -1
- package/dist/server/auth/permissions.js +2 -1
- package/dist/server/auth/permissions.js.map +1 -1
- package/dist/server/db/__tests__/query-helpers.test.js +47 -1
- package/dist/server/db/__tests__/query-helpers.test.js.map +1 -1
- package/dist/server/db/index.d.ts +1 -1
- package/dist/server/db/index.d.ts.map +1 -1
- package/dist/server/db/index.js +1 -1
- package/dist/server/db/index.js.map +1 -1
- package/dist/server/db/query-helpers.d.ts +5 -0
- package/dist/server/db/query-helpers.d.ts.map +1 -1
- package/dist/server/db/query-helpers.js +37 -0
- package/dist/server/db/query-helpers.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { describe, it, expect, vi, beforeAll, afterAll, beforeEach } from 'vitest';
|
|
2
|
+
import { randomUUID } from 'node:crypto';
|
|
2
3
|
import { eq, sql } from 'drizzle-orm';
|
|
3
4
|
import { createTestDb } from '@openora/core/testing';
|
|
4
5
|
import { migrate as migrateProfile } from '@openora/core/pam/migrate/profile';
|
|
5
|
-
import { mock, makeEventBus, makeIdentityReader } from '../../../testing/mock.js';
|
|
6
|
+
import { mock, makeEventBus, makeIdentityReader, NO_CLIENT_META } from '../../../testing/mock.js';
|
|
6
7
|
import { migrate } from '../migrate.js';
|
|
7
|
-
import { game, gameRound } from '../schema/index.js';
|
|
8
|
-
import { GamingService, GameNotFoundError, RgRestrictedError, InsufficientBalanceError, WinCreditFailedError, ExternalRoundOwnerMismatchError, } from '../service/gaming.service.js';
|
|
8
|
+
import { game, gameCategory, gameCategoryGame, gameProvider, gameProviderAggregatorMapping, gameRound, } from '../schema/index.js';
|
|
9
|
+
import { GamingService, GameAggregatorNotMappedError, GameNotFoundError, GameSlugTakenError, RgRestrictedError, InsufficientBalanceError, WinCreditFailedError, ExternalRoundOwnerMismatchError, } from '../service/gaming.service.js';
|
|
10
|
+
import { GameProviderNotFoundError } from '../service/game-provider.service.js';
|
|
11
|
+
import { GameCategoryNotFoundError } from '../service/game-category.service.js';
|
|
9
12
|
let db;
|
|
10
13
|
const noopEvents = makeEventBus();
|
|
14
|
+
const ACTOR = { actorId: '00000000-0000-4000-8000-000000000001', ...NO_CLIENT_META };
|
|
11
15
|
const eligibility = (isRestricted) => mock({ isRestricted: vi.fn().mockResolvedValue(isRestricted) });
|
|
12
16
|
const unrestricted = eligibility(false);
|
|
13
17
|
function makeWalletCommands(debitResult, creditResult = { ok: true, newBalance: '0' }) {
|
|
@@ -19,14 +23,43 @@ function makeWalletCommands(debitResult, creditResult = { ok: true, newBalance:
|
|
|
19
23
|
function makeService({ provider = mock({
|
|
20
24
|
launchGame: vi.fn().mockResolvedValue({ launchUrl: 'https://mock/play', token: 'tok' }),
|
|
21
25
|
endRound: vi.fn(),
|
|
22
|
-
}), playEligibility = unrestricted, walletCommands = makeWalletCommands({ ok: true, newBalance: '0', currency: 'USD' }), rgLimits, } = {}) {
|
|
23
|
-
return new GamingService(db.drizzle,
|
|
26
|
+
}), playEligibility = unrestricted, walletCommands = makeWalletCommands({ ok: true, newBalance: '0', currency: 'USD' }), rgLimits, events = noopEvents, } = {}) {
|
|
27
|
+
return new GamingService(db.drizzle, events, provider, playEligibility, walletCommands, makeIdentityReader(), rgLimits);
|
|
24
28
|
}
|
|
25
|
-
async function
|
|
29
|
+
async function seedProvider(overrides = {}) {
|
|
30
|
+
const [row] = await db.drizzle.db
|
|
31
|
+
.insert(gameProvider)
|
|
32
|
+
.values({ slug: `studio-${randomUUID()}`, name: 'Studio', isActive: true, ...overrides })
|
|
33
|
+
.returning();
|
|
34
|
+
await db.drizzle.db
|
|
35
|
+
.insert(gameProviderAggregatorMapping)
|
|
36
|
+
.values({ providerId: row.id, aggregator: 'direct', vendorId: row.slug });
|
|
37
|
+
return row;
|
|
38
|
+
}
|
|
39
|
+
async function seedCategory(overrides = {}) {
|
|
40
|
+
const [row] = await db.drizzle.db
|
|
41
|
+
.insert(gameCategory)
|
|
42
|
+
.values({ slug: `category-${randomUUID()}`, name: 'Slots', ...overrides })
|
|
43
|
+
.returning();
|
|
44
|
+
return row;
|
|
45
|
+
}
|
|
46
|
+
async function seedGame(overrides = {}, categoryIds) {
|
|
47
|
+
const provider = await seedProvider({ name: 'Mock Studio' });
|
|
48
|
+
const ids = categoryIds ?? [(await seedCategory()).id];
|
|
26
49
|
const [row] = await db.drizzle.db
|
|
27
50
|
.insert(game)
|
|
28
|
-
.values({
|
|
51
|
+
.values({
|
|
52
|
+
name: 'Game',
|
|
53
|
+
slug: `game-${randomUUID()}`,
|
|
54
|
+
providerId: provider.id,
|
|
55
|
+
aggregator: 'direct',
|
|
56
|
+
isActive: true,
|
|
57
|
+
...overrides,
|
|
58
|
+
})
|
|
29
59
|
.returning();
|
|
60
|
+
await db.drizzle.db
|
|
61
|
+
.insert(gameCategoryGame)
|
|
62
|
+
.values(ids.map((categoryId) => ({ gameId: row.id, categoryId })));
|
|
30
63
|
return row;
|
|
31
64
|
}
|
|
32
65
|
beforeAll(async () => {
|
|
@@ -36,22 +69,87 @@ afterAll(async () => {
|
|
|
36
69
|
await db.drop();
|
|
37
70
|
});
|
|
38
71
|
beforeEach(async () => {
|
|
39
|
-
await db.drizzle.db.execute(sql `TRUNCATE ${gameRound}, ${game} RESTART IDENTITY CASCADE`);
|
|
72
|
+
await db.drizzle.db.execute(sql `TRUNCATE ${gameRound}, ${gameCategoryGame}, ${game}, ${gameProvider}, ${gameCategory} RESTART IDENTITY CASCADE`);
|
|
40
73
|
});
|
|
41
74
|
describe('GamingService lobby (real PG)', () => {
|
|
42
|
-
it('
|
|
75
|
+
it('listGamesPublic paginates playable games ordered by name', async () => {
|
|
43
76
|
await seedGame({ name: 'Baccarat', isActive: true });
|
|
44
77
|
await seedGame({ name: 'Aces', isActive: true });
|
|
45
78
|
await seedGame({ name: 'Retired', isActive: false });
|
|
46
|
-
const
|
|
47
|
-
expect(
|
|
79
|
+
const page = await makeService().listGamesPublic({ page: 1, limit: 10 });
|
|
80
|
+
expect(page.total).toBe(2);
|
|
81
|
+
expect(page.items.map((g) => g.name)).toEqual(['Aces', 'Baccarat']);
|
|
82
|
+
});
|
|
83
|
+
it('listGamesPublic searches and filters by provider and category', async () => {
|
|
84
|
+
const p1 = await seedProvider({ slug: 'studio-one', name: 'One' });
|
|
85
|
+
const p2 = await seedProvider({ slug: 'studio-two', name: 'Two' });
|
|
86
|
+
const slots = await seedCategory({ slug: 'slots', name: 'Slots' });
|
|
87
|
+
const live = await seedCategory({ slug: 'live', name: 'Live' });
|
|
88
|
+
await seedGame({ name: 'Gates of Olympus', slug: 'gates-of-olympus', providerId: p1.id, isActive: true }, [slots.id]);
|
|
89
|
+
await seedGame({ name: 'Sweet Bonanza', slug: 'sweet-bonanza', providerId: p1.id, isActive: true }, [slots.id]);
|
|
90
|
+
await seedGame({ name: 'Crazy Time', slug: 'crazy-time', providerId: p2.id, isActive: true }, [
|
|
91
|
+
live.id,
|
|
92
|
+
slots.id,
|
|
93
|
+
]);
|
|
94
|
+
const svc = makeService();
|
|
95
|
+
expect((await svc.listGamesPublic({ page: 1, limit: 10, q: 'bonanza' })).total).toBe(1);
|
|
96
|
+
expect((await svc.listGamesPublic({ page: 1, limit: 10, providerId: p1.id })).items.map((g) => g.slug)).toEqual(['gates-of-olympus', 'sweet-bonanza']);
|
|
97
|
+
expect((await svc.listGamesPublic({ page: 1, limit: 10, categoryId: live.id })).total).toBe(1);
|
|
98
|
+
expect((await svc.listGamesPublic({ page: 1, limit: 10, categoryId: slots.id })).total).toBe(3);
|
|
99
|
+
});
|
|
100
|
+
it('hides an inactive category from public filtering while retaining admin filtering', async () => {
|
|
101
|
+
const inactive = await seedCategory({ name: 'Hidden', isActive: false });
|
|
102
|
+
const linked = await seedGame({ name: 'Linked Game' }, [inactive.id]);
|
|
103
|
+
const svc = makeService();
|
|
104
|
+
const publicResult = await svc.listGamesPublic({
|
|
105
|
+
page: 1,
|
|
106
|
+
limit: 10,
|
|
107
|
+
categoryId: inactive.id,
|
|
108
|
+
});
|
|
109
|
+
expect(publicResult).toMatchObject({ items: [], total: 0 });
|
|
110
|
+
const adminResult = await svc.listGamesAdmin({
|
|
111
|
+
page: 1,
|
|
112
|
+
limit: 10,
|
|
113
|
+
categoryId: inactive.id,
|
|
114
|
+
isActive: true,
|
|
115
|
+
});
|
|
116
|
+
expect(adminResult.items.map((item) => item.id)).toEqual([linked.id]);
|
|
117
|
+
expect(adminResult.total).toBe(1);
|
|
48
118
|
});
|
|
49
119
|
it('getGame returns the row for a known id and 404s an unknown one', async () => {
|
|
50
|
-
const
|
|
120
|
+
const table = await seedCategory({
|
|
121
|
+
slug: 'table-games',
|
|
122
|
+
name: 'Table Games',
|
|
123
|
+
translations: { de: { name: 'Tischspiele' } },
|
|
124
|
+
});
|
|
125
|
+
const blackjack = await seedCategory({ slug: 'blackjack', name: 'Blackjack', isActive: false });
|
|
126
|
+
const created = await seedGame({ name: 'Roulette' }, [table.id, blackjack.id]);
|
|
51
127
|
const svc = makeService();
|
|
52
|
-
expect(await svc.getGame(created.id)).toMatchObject({
|
|
128
|
+
expect(await svc.getGame(created.id)).toMatchObject({
|
|
129
|
+
name: 'Roulette',
|
|
130
|
+
categories: [
|
|
131
|
+
{ slug: 'blackjack', translations: {} },
|
|
132
|
+
{ slug: 'table-games', translations: { de: { name: 'Tischspiele' } } },
|
|
133
|
+
],
|
|
134
|
+
});
|
|
135
|
+
await expect(svc.getGame(created.id, { activeOnly: true })).resolves.toMatchObject({
|
|
136
|
+
categories: [{ slug: 'table-games' }],
|
|
137
|
+
});
|
|
53
138
|
await expect(svc.getGame('00000000-0000-0000-0000-000000000000')).rejects.toBeInstanceOf(GameNotFoundError);
|
|
54
139
|
});
|
|
140
|
+
it('getGame hides inactive games and deactivated providers only behind activeOnly', async () => {
|
|
141
|
+
const dark = await seedGame({ name: 'Dark', isActive: false });
|
|
142
|
+
const orphaned = await seedGame({ name: 'Orphaned' });
|
|
143
|
+
await db.drizzle.db
|
|
144
|
+
.update(gameProvider)
|
|
145
|
+
.set({ isActive: false })
|
|
146
|
+
.where(eq(gameProvider.id, orphaned.providerId));
|
|
147
|
+
const svc = makeService();
|
|
148
|
+
await expect(svc.getGame(dark.id, { activeOnly: true })).rejects.toBeInstanceOf(GameNotFoundError);
|
|
149
|
+
await expect(svc.getGame(orphaned.id, { activeOnly: true })).rejects.toBeInstanceOf(GameNotFoundError);
|
|
150
|
+
await expect(svc.getGame(dark.id)).resolves.toMatchObject({ name: 'Dark', isActive: false });
|
|
151
|
+
await expect(svc.getGame(orphaned.id)).resolves.toMatchObject({ name: 'Orphaned' });
|
|
152
|
+
});
|
|
55
153
|
});
|
|
56
154
|
const refusingLimits = () => mock({
|
|
57
155
|
checkDeposit: vi.fn(),
|
|
@@ -101,6 +199,36 @@ describe('GamingService.startRound (real PG)', () => {
|
|
|
101
199
|
await expect(svc.startRound('00000000-0000-0000-0000-000000000111', '00000000-0000-0000-0000-000000000222', 'EUR', '10')).rejects.toBeInstanceOf(GameNotFoundError);
|
|
102
200
|
expect(launchGame).not.toHaveBeenCalled();
|
|
103
201
|
});
|
|
202
|
+
it('404s an inactive game without touching the wallet or provider', async () => {
|
|
203
|
+
const created = await seedGame({ name: 'Dark', isActive: false });
|
|
204
|
+
const walletCommands = makeWalletCommands({ ok: true, newBalance: '90', currency: 'USD' });
|
|
205
|
+
const launchGame = vi.fn();
|
|
206
|
+
const svc = makeService({
|
|
207
|
+
provider: mock({ launchGame, endRound: vi.fn() }),
|
|
208
|
+
walletCommands,
|
|
209
|
+
});
|
|
210
|
+
await expect(svc.startRound('00000000-0000-0000-0000-000000000311', created.id, 'USD', '10')).rejects.toBeInstanceOf(GameNotFoundError);
|
|
211
|
+
expect(walletCommands.debit).not.toHaveBeenCalled();
|
|
212
|
+
expect(launchGame).not.toHaveBeenCalled();
|
|
213
|
+
expect(await db.drizzle.db.select().from(gameRound)).toHaveLength(0);
|
|
214
|
+
});
|
|
215
|
+
it('404s a game on a deactivated provider without touching the wallet or provider', async () => {
|
|
216
|
+
const created = await seedGame({ name: 'Orphaned' });
|
|
217
|
+
await db.drizzle.db
|
|
218
|
+
.update(gameProvider)
|
|
219
|
+
.set({ isActive: false })
|
|
220
|
+
.where(eq(gameProvider.id, created.providerId));
|
|
221
|
+
const walletCommands = makeWalletCommands({ ok: true, newBalance: '90', currency: 'USD' });
|
|
222
|
+
const launchGame = vi.fn();
|
|
223
|
+
const svc = makeService({
|
|
224
|
+
provider: mock({ launchGame, endRound: vi.fn() }),
|
|
225
|
+
walletCommands,
|
|
226
|
+
});
|
|
227
|
+
await expect(svc.startRound('00000000-0000-0000-0000-000000000312', created.id, 'USD', '10')).rejects.toBeInstanceOf(GameNotFoundError);
|
|
228
|
+
expect(walletCommands.debit).not.toHaveBeenCalled();
|
|
229
|
+
expect(launchGame).not.toHaveBeenCalled();
|
|
230
|
+
expect(await db.drizzle.db.select().from(gameRound)).toHaveLength(0);
|
|
231
|
+
});
|
|
104
232
|
it('debits the stake and persists the round on sufficient balance', async () => {
|
|
105
233
|
const created = await seedGame({ id: '00000000-0000-0000-0000-0000000000a1', name: 'Aces' });
|
|
106
234
|
const walletCommands = makeWalletCommands({ ok: true, newBalance: '90', currency: 'USD' });
|
|
@@ -141,6 +269,47 @@ describe('GamingService.startRound (real PG)', () => {
|
|
|
141
269
|
expect(await db.drizzle.db.select().from(gameRound)).toHaveLength(0);
|
|
142
270
|
});
|
|
143
271
|
});
|
|
272
|
+
describe('GamingService listGames provider gate (real PG)', () => {
|
|
273
|
+
it('separates the public playable gate from the admin game-active filter', async () => {
|
|
274
|
+
const live = await seedGame({ name: 'Live Game' });
|
|
275
|
+
const hidden = await seedGame({ name: 'Hidden Game' });
|
|
276
|
+
await db.drizzle.db
|
|
277
|
+
.update(gameProvider)
|
|
278
|
+
.set({ isActive: false })
|
|
279
|
+
.where(eq(gameProvider.id, hidden.providerId));
|
|
280
|
+
const svc = makeService();
|
|
281
|
+
const pub = await svc.listGamesPublic({ page: 1, limit: 10 });
|
|
282
|
+
expect(pub.items.map((g) => g.id)).toEqual([live.id]);
|
|
283
|
+
expect(pub.total).toBe(1);
|
|
284
|
+
const admin = await svc.listGamesAdmin({ page: 1, limit: 10, isActive: true });
|
|
285
|
+
expect(admin.total).toBe(2);
|
|
286
|
+
});
|
|
287
|
+
it('listGamesAdmin includes non-playable games and sorts by provider and game fields', async () => {
|
|
288
|
+
const alphaZulu = await seedProvider({ name: 'Alpha', slug: 'zulu' });
|
|
289
|
+
const alphaAlpha = await seedProvider({ name: 'Alpha', slug: 'alpha' });
|
|
290
|
+
const betaAlpha = await seedProvider({ name: 'Beta', slug: 'beta-alpha', isActive: false });
|
|
291
|
+
await seedGame({
|
|
292
|
+
id: '00000000-0000-4000-8000-000000000002',
|
|
293
|
+
name: 'Same',
|
|
294
|
+
providerId: alphaZulu.id,
|
|
295
|
+
});
|
|
296
|
+
await seedGame({
|
|
297
|
+
id: '00000000-0000-4000-8000-000000000001',
|
|
298
|
+
name: 'Same',
|
|
299
|
+
providerId: alphaZulu.id,
|
|
300
|
+
});
|
|
301
|
+
await seedGame({ name: 'Zulu', providerId: alphaAlpha.id });
|
|
302
|
+
await seedGame({ name: 'Aardvark', providerId: betaAlpha.id });
|
|
303
|
+
const result = await makeService().listGamesAdmin({ page: 1, limit: 10 });
|
|
304
|
+
expect(result.items.map((item) => [item.provider.name, item.provider.slug, item.name, item.id])).toEqual([
|
|
305
|
+
['Alpha', 'alpha', 'Zulu', expect.any(String)],
|
|
306
|
+
['Alpha', 'zulu', 'Same', '00000000-0000-4000-8000-000000000001'],
|
|
307
|
+
['Alpha', 'zulu', 'Same', '00000000-0000-4000-8000-000000000002'],
|
|
308
|
+
['Beta', 'beta-alpha', 'Aardvark', expect.any(String)],
|
|
309
|
+
]);
|
|
310
|
+
expect(result.total).toBe(4);
|
|
311
|
+
});
|
|
312
|
+
});
|
|
144
313
|
describe('GamingService.startRound bonus rollover completion (real PG)', () => {
|
|
145
314
|
it('emits wallet.bonus_rollover.completed once per credit the bet just completed', async () => {
|
|
146
315
|
const created = await seedGame({ id: '00000000-0000-0000-0000-0000000000a3', name: 'Aces' });
|
|
@@ -209,6 +378,98 @@ describe('GamingService.startRound bonus rollover completion (real PG)', () => {
|
|
|
209
378
|
expect(events.emit).not.toHaveBeenCalledWith('wallet.bonus_rollover.completed', expect.anything());
|
|
210
379
|
});
|
|
211
380
|
});
|
|
381
|
+
describe('GamingService updateGame (real PG)', () => {
|
|
382
|
+
const emittedTopics = (events) => events.emit.mock.calls.map(([topic]) => topic);
|
|
383
|
+
it('patches scalar fields and emits an event', async () => {
|
|
384
|
+
const created = await seedGame({ name: 'Roulette' });
|
|
385
|
+
const events = makeEventBus();
|
|
386
|
+
const svc = makeService({ events });
|
|
387
|
+
const updated = await svc.updateGame({
|
|
388
|
+
id: created.id,
|
|
389
|
+
name: 'Roulette Gold',
|
|
390
|
+
isActive: false,
|
|
391
|
+
...ACTOR,
|
|
392
|
+
});
|
|
393
|
+
expect(updated).toMatchObject({ name: 'Roulette Gold', isActive: false });
|
|
394
|
+
expect(emittedTopics(events)).toContain('gaming.game.updated');
|
|
395
|
+
});
|
|
396
|
+
it('replaces the category set, including clearing it with an empty array', async () => {
|
|
397
|
+
const table = await seedCategory({ slug: 'table-games', name: 'Table Games' });
|
|
398
|
+
const blackjack = await seedCategory({ slug: 'blackjack', name: 'Blackjack' });
|
|
399
|
+
const created = await seedGame({}, [table.id, blackjack.id]);
|
|
400
|
+
const svc = makeService();
|
|
401
|
+
const replaced = await svc.updateGame({
|
|
402
|
+
id: created.id,
|
|
403
|
+
categoryIds: [blackjack.id],
|
|
404
|
+
...ACTOR,
|
|
405
|
+
});
|
|
406
|
+
expect(replaced.categories.map((c) => c.slug)).toEqual(['blackjack']);
|
|
407
|
+
const cleared = await svc.updateGame({ id: created.id, categoryIds: [], ...ACTOR });
|
|
408
|
+
expect(cleared.categories).toEqual([]);
|
|
409
|
+
});
|
|
410
|
+
it('leaves links untouched when categoryIds is omitted', async () => {
|
|
411
|
+
const table = await seedCategory({ slug: 'table-games', name: 'Table Games' });
|
|
412
|
+
const created = await seedGame({}, [table.id]);
|
|
413
|
+
const svc = makeService();
|
|
414
|
+
const updated = await svc.updateGame({ id: created.id, name: 'Renamed', ...ACTOR });
|
|
415
|
+
expect(updated.categories.map((c) => c.slug)).toEqual(['table-games']);
|
|
416
|
+
});
|
|
417
|
+
it('reassigns the provider and validates all references', async () => {
|
|
418
|
+
const created = await seedGame();
|
|
419
|
+
const other = await seedProvider({ slug: 'other-studio', name: 'Other' });
|
|
420
|
+
const svc = makeService();
|
|
421
|
+
const updated = await svc.updateGame({
|
|
422
|
+
id: created.id,
|
|
423
|
+
providerId: other.id,
|
|
424
|
+
...ACTOR,
|
|
425
|
+
});
|
|
426
|
+
expect(updated.provider).toMatchObject({ slug: 'other-studio' });
|
|
427
|
+
await expect(svc.updateGame({
|
|
428
|
+
id: created.id,
|
|
429
|
+
providerId: '00000000-0000-4000-8000-000000000000',
|
|
430
|
+
...ACTOR,
|
|
431
|
+
})).rejects.toBeInstanceOf(GameProviderNotFoundError);
|
|
432
|
+
await expect(svc.updateGame({
|
|
433
|
+
id: created.id,
|
|
434
|
+
categoryIds: ['00000000-0000-4000-8000-000000000000'],
|
|
435
|
+
...ACTOR,
|
|
436
|
+
})).rejects.toBeInstanceOf(GameCategoryNotFoundError);
|
|
437
|
+
await expect(svc.updateGame({
|
|
438
|
+
id: '00000000-0000-4000-8000-000000000000',
|
|
439
|
+
name: 'X',
|
|
440
|
+
...ACTOR,
|
|
441
|
+
})).rejects.toBeInstanceOf(GameNotFoundError);
|
|
442
|
+
});
|
|
443
|
+
it('rejects an aggregator the target provider is not mapped on', async () => {
|
|
444
|
+
const created = await seedGame();
|
|
445
|
+
const unmapped = await seedProvider({ slug: 'unmapped-studio', name: 'Unmapped' });
|
|
446
|
+
await db.drizzle.db
|
|
447
|
+
.delete(gameProviderAggregatorMapping)
|
|
448
|
+
.where(eq(gameProviderAggregatorMapping.providerId, unmapped.id));
|
|
449
|
+
const svc = makeService();
|
|
450
|
+
await expect(svc.updateGame({ id: created.id, providerId: unmapped.id, ...ACTOR })).rejects.toBeInstanceOf(GameAggregatorNotMappedError);
|
|
451
|
+
await expect(svc.updateGame({ id: created.id, aggregator: 'everymatrix', ...ACTOR })).rejects.toBeInstanceOf(GameAggregatorNotMappedError);
|
|
452
|
+
await db.drizzle.db
|
|
453
|
+
.insert(gameProviderAggregatorMapping)
|
|
454
|
+
.values({ providerId: unmapped.id, aggregator: 'everymatrix', vendorId: 'vendor-unmapped' });
|
|
455
|
+
const moved = await svc.updateGame({
|
|
456
|
+
id: created.id,
|
|
457
|
+
providerId: unmapped.id,
|
|
458
|
+
aggregator: 'everymatrix',
|
|
459
|
+
...ACTOR,
|
|
460
|
+
});
|
|
461
|
+
expect(moved).toMatchObject({
|
|
462
|
+
provider: { slug: 'unmapped-studio' },
|
|
463
|
+
aggregator: 'everymatrix',
|
|
464
|
+
});
|
|
465
|
+
});
|
|
466
|
+
it('rejects a taken game slug', async () => {
|
|
467
|
+
const created = await seedGame({ slug: 'game-one' });
|
|
468
|
+
await seedGame({ slug: 'game-two' });
|
|
469
|
+
const svc = makeService();
|
|
470
|
+
await expect(svc.updateGame({ id: created.id, slug: 'game-two', ...ACTOR })).rejects.toBeInstanceOf(GameSlugTakenError);
|
|
471
|
+
});
|
|
472
|
+
});
|
|
212
473
|
async function seedRound(gameId, userId) {
|
|
213
474
|
const [row] = await db.drizzle.db
|
|
214
475
|
.insert(gameRound)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gaming.service.int.test.js","sourceRoot":"","sources":["../../../../src/casino/gaming/__tests__/gaming.service.int.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gaming.service.int.test.js","sourceRoot":"","sources":["../../../../src/casino/gaming/__tests__/gaming.service.int.test.ts"],"names":[],"mappings":"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"}
|