@openora/core 0.4.1-canary.53 → 0.4.1-canary.55

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 (67) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/adapters/audit.d.ts +1 -1
  3. package/dist/contracts/adapters/audit.d.ts.map +1 -1
  4. package/dist/contracts/adapters/audit.js.map +1 -1
  5. package/dist/contracts/schemas/__tests__/tag-schemas.test.d.ts +2 -0
  6. package/dist/contracts/schemas/__tests__/tag-schemas.test.d.ts.map +1 -0
  7. package/dist/contracts/schemas/__tests__/tag-schemas.test.js +42 -0
  8. package/dist/contracts/schemas/__tests__/tag-schemas.test.js.map +1 -0
  9. package/dist/contracts/schemas/platform-config.d.ts +0 -43
  10. package/dist/contracts/schemas/platform-config.d.ts.map +1 -1
  11. package/dist/contracts/schemas/platform-config.js +0 -6
  12. package/dist/contracts/schemas/platform-config.js.map +1 -1
  13. package/dist/contracts/schemas/tag.d.ts +1 -1
  14. package/dist/contracts/schemas/tag.js +2 -2
  15. package/dist/contracts/schemas/tag.js.map +1 -1
  16. package/dist/iam/service/iam.service.d.ts +1 -1
  17. package/dist/pam/tag/__tests__/tag.router.int.test.js +63 -0
  18. package/dist/pam/tag/__tests__/tag.router.int.test.js.map +1 -1
  19. package/dist/pam/tag/contract/index.d.ts +1 -1
  20. package/dist/pam/tag/router/index.d.ts +1 -1
  21. package/dist/pam/tag/router/index.d.ts.map +1 -1
  22. package/dist/pam/tag/router/index.js +5 -2
  23. package/dist/pam/tag/router/index.js.map +1 -1
  24. package/dist/pam/tag/service/tag.service.d.ts +1 -0
  25. package/dist/pam/tag/service/tag.service.d.ts.map +1 -1
  26. package/dist/pam/tag/service/tag.service.js +14 -3
  27. package/dist/pam/tag/service/tag.service.js.map +1 -1
  28. package/dist/server/auth/permissions.d.ts +12 -0
  29. package/dist/server/auth/permissions.d.ts.map +1 -1
  30. package/dist/server/auth/permissions.js +2 -0
  31. package/dist/server/auth/permissions.js.map +1 -1
  32. package/dist/wallet/__tests__/wallet-auto-withdrawal-config.router.int.test.d.ts +2 -0
  33. package/dist/wallet/__tests__/wallet-auto-withdrawal-config.router.int.test.d.ts.map +1 -0
  34. package/dist/wallet/__tests__/wallet-auto-withdrawal-config.router.int.test.js +183 -0
  35. package/dist/wallet/__tests__/wallet-auto-withdrawal-config.router.int.test.js.map +1 -0
  36. package/dist/wallet/__tests__/wallet-auto-withdrawal.int.test.js +196 -46
  37. package/dist/wallet/__tests__/wallet-auto-withdrawal.int.test.js.map +1 -1
  38. package/dist/wallet/contract/index.d.ts +124 -0
  39. package/dist/wallet/contract/index.d.ts.map +1 -1
  40. package/dist/wallet/contract/index.js +29 -1
  41. package/dist/wallet/contract/index.js.map +1 -1
  42. package/dist/wallet/drizzle/migrations/0005_gigantic_dust.sql +10 -0
  43. package/dist/wallet/drizzle/migrations/0006_lush_morg.sql +1 -0
  44. package/dist/wallet/drizzle/migrations/meta/0004_snapshot.json +64 -0
  45. package/dist/wallet/drizzle/migrations/meta/0006_snapshot.json +638 -0
  46. package/dist/wallet/drizzle/migrations/meta/_journal.json +14 -0
  47. package/dist/wallet/router/index.d.ts +75 -0
  48. package/dist/wallet/router/index.d.ts.map +1 -1
  49. package/dist/wallet/router/index.js +13 -1
  50. package/dist/wallet/router/index.js.map +1 -1
  51. package/dist/wallet/schema/index.d.ts +171 -0
  52. package/dist/wallet/schema/index.d.ts.map +1 -1
  53. package/dist/wallet/schema/index.js +18 -0
  54. package/dist/wallet/schema/index.js.map +1 -1
  55. package/dist/wallet/seed/index.d.ts +2 -0
  56. package/dist/wallet/seed/index.d.ts.map +1 -0
  57. package/dist/wallet/seed/index.js +2 -0
  58. package/dist/wallet/seed/index.js.map +1 -0
  59. package/dist/wallet/seed/seed-auto-withdrawal-config.d.ts +11 -0
  60. package/dist/wallet/seed/seed-auto-withdrawal-config.d.ts.map +1 -0
  61. package/dist/wallet/seed/seed-auto-withdrawal-config.js +16 -0
  62. package/dist/wallet/seed/seed-auto-withdrawal-config.js.map +1 -0
  63. package/dist/wallet/service/wallet.service.d.ts +10 -2
  64. package/dist/wallet/service/wallet.service.d.ts.map +1 -1
  65. package/dist/wallet/service/wallet.service.js +96 -15
  66. package/dist/wallet/service/wallet.service.js.map +1 -1
  67. package/package.json +6 -1
@@ -4,10 +4,28 @@ import { eq, sql } from 'drizzle-orm';
4
4
  import { createTestDb } from '@openora/core/testing';
5
5
  import { mock, makeEventBus, NO_CLIENT_META, makeAuditWriter } from '../../testing/mock.js';
6
6
  import { migrate } from '../migrate.js';
7
- import { wallet, walletTransaction, autoWithdrawalRule } from '../schema/index.js';
7
+ import { wallet, walletTransaction, autoWithdrawalRule, walletAutoWithdrawalConfig, } from '../schema/index.js';
8
8
  import { WalletService } from '../service/wallet.service.js';
9
9
  let db;
10
- function makeService({ autoWithdrawal, kycStatus = 'verified', directoryThrows = false, riskTags = [], } = {}) {
10
+ // The migration-level column DEFAULT (0006_lush_morg.sql) - a starting value for
11
+ // upgraded installs, not a server-enforced floor. A Super Admin can clear or
12
+ // change any of it via setAutoWithdrawalConfig.
13
+ const MIGRATION_DEFAULT_EXCLUDE_RISK_FLAGS = [
14
+ 'high_risk',
15
+ 'bonus_abuser',
16
+ 'kyc_rejected',
17
+ 'withdrawal_review',
18
+ 'multi_account',
19
+ ];
20
+ async function makeService({ autoWithdrawal, fiatThreshold, cryptoThreshold, excludeRiskFlags, skipConfigSeed = false, kycStatus = 'verified', directoryThrows = false, riskTags = [], } = {}) {
21
+ if (autoWithdrawal && !skipConfigSeed) {
22
+ await db.drizzle.db.insert(walletAutoWithdrawalConfig).values({
23
+ singletonKey: 'global',
24
+ fiatThreshold: fiatThreshold ?? '0',
25
+ cryptoThreshold: cryptoThreshold ?? '0',
26
+ ...(excludeRiskFlags !== undefined ? { excludeRiskFlags: [...excludeRiskFlags] } : {}),
27
+ });
28
+ }
11
29
  const events = makeEventBus();
12
30
  const psp = {
13
31
  processWithdrawal: vi.fn(async () => ({
@@ -26,9 +44,7 @@ function makeService({ autoWithdrawal, kycStatus = 'verified', directoryThrows =
26
44
  : [];
27
45
  }),
28
46
  });
29
- const platformConfig = mock(autoWithdrawal
30
- ? { autoWithdrawal: { enabled: true, excludeRiskFlags: [], ...autoWithdrawal } }
31
- : {});
47
+ const platformConfig = mock(autoWithdrawal ? { autoWithdrawal: { enabled: true, ...autoWithdrawal } } : {});
32
48
  const svc = new WalletService({
33
49
  drizzle: db.drizzle,
34
50
  events: events,
@@ -67,11 +83,14 @@ afterAll(async () => {
67
83
  await db.drop();
68
84
  });
69
85
  beforeEach(async () => {
70
- await db.drizzle.db.execute(sql `TRUNCATE ${walletTransaction}, ${autoWithdrawalRule}, ${wallet} RESTART IDENTITY CASCADE`);
86
+ await db.drizzle.db.execute(sql `TRUNCATE ${walletTransaction}, ${autoWithdrawalRule}, ${walletAutoWithdrawalConfig}, ${wallet} RESTART IDENTITY CASCADE`);
71
87
  });
72
88
  describe('WalletService.withdraw auto-approval (real PG)', () => {
73
89
  it('auto-approves a fiat withdrawal that clears every gate, marking the system as reviewer', async () => {
74
- const { svc, psp, audit, events } = makeService({ autoWithdrawal: { fiatThreshold: '1000' } });
90
+ const { svc, psp, audit, events } = await makeService({
91
+ autoWithdrawal: {},
92
+ fiatThreshold: '1000',
93
+ });
75
94
  const w = await seedWallet();
76
95
  const result = await svc.withdraw({
77
96
  userId: w.userId,
@@ -97,7 +116,7 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
97
116
  resourceType: 'wallet_transaction',
98
117
  resourceId: result.transactionId,
99
118
  after: expect.objectContaining({
100
- threshold: '1000',
119
+ threshold: '1000.00000000',
101
120
  thresholdSource: 'global',
102
121
  kycStatus: 'verified',
103
122
  cumulativeCountUsed: 0,
@@ -105,7 +124,7 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
105
124
  }));
106
125
  });
107
126
  it('reverts the flip to pending when the audit write fails instead of stranding it processing', async () => {
108
- const { svc, audit, psp } = makeService({ autoWithdrawal: { fiatThreshold: '1000' } });
127
+ const { svc, audit, psp } = await makeService({ autoWithdrawal: {}, fiatThreshold: '1000' });
109
128
  audit.record.mockRejectedValueOnce(new Error('audit sink down'));
110
129
  const w = await seedWallet();
111
130
  const result = await svc.withdraw({
@@ -124,7 +143,7 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
124
143
  });
125
144
  });
126
145
  it('holds the funds even when auto-approval declines', async () => {
127
- const { svc } = makeService({ autoWithdrawal: { fiatThreshold: '10' } });
146
+ const { svc } = await makeService({ autoWithdrawal: {}, fiatThreshold: '10' });
128
147
  const w = await seedWallet({ balance: '100' });
129
148
  const result = await svc.withdraw({
130
149
  userId: w.userId,
@@ -137,7 +156,7 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
137
156
  expect(Number(row?.balance)).toBe(60);
138
157
  });
139
158
  it('stays pending when the amount exceeds the configured threshold', async () => {
140
- const { svc, psp } = makeService({ autoWithdrawal: { fiatThreshold: '10' } });
159
+ const { svc, psp } = await makeService({ autoWithdrawal: {}, fiatThreshold: '10' });
141
160
  const w = await seedWallet();
142
161
  const result = await svc.withdraw({
143
162
  userId: w.userId,
@@ -149,7 +168,22 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
149
168
  expect(psp.processWithdrawal).not.toHaveBeenCalled();
150
169
  });
151
170
  it('stays pending when no threshold is configured at all', async () => {
152
- const { svc } = makeService({ autoWithdrawal: {} });
171
+ const { svc } = await makeService({ autoWithdrawal: {} });
172
+ const w = await seedWallet();
173
+ const result = await svc.withdraw({
174
+ userId: w.userId,
175
+ amount: '40',
176
+ currency: 'USD',
177
+ ...NO_CLIENT_META,
178
+ });
179
+ expect(result.status).toBe('pending');
180
+ });
181
+ it('stays pending, without throwing, when the auto-withdrawal config row is missing entirely', async () => {
182
+ const { svc } = await makeService({
183
+ autoWithdrawal: {},
184
+ fiatThreshold: '1000',
185
+ skipConfigSeed: true,
186
+ });
153
187
  const w = await seedWallet();
154
188
  const result = await svc.withdraw({
155
189
  userId: w.userId,
@@ -160,7 +194,7 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
160
194
  expect(result.status).toBe('pending');
161
195
  });
162
196
  it('stays pending when auto-withdrawal is not enabled', async () => {
163
- const { svc, audit } = makeService();
197
+ const { svc, audit } = await makeService();
164
198
  const w = await seedWallet();
165
199
  const result = await svc.withdraw({
166
200
  userId: w.userId,
@@ -172,8 +206,9 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
172
206
  expect(audit.record).not.toHaveBeenCalled();
173
207
  });
174
208
  it('stays pending when KYC is not passing even though gateWithdrawals is off', async () => {
175
- const { svc } = makeService({
176
- autoWithdrawal: { fiatThreshold: '1000' },
209
+ const { svc } = await makeService({
210
+ autoWithdrawal: {},
211
+ fiatThreshold: '1000',
177
212
  kycStatus: 'pending',
178
213
  });
179
214
  const w = await seedWallet();
@@ -186,8 +221,9 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
186
221
  expect(result.status).toBe('pending');
187
222
  });
188
223
  it('fails closed to pending when the directory throws during the KYC check', async () => {
189
- const { svc } = makeService({
190
- autoWithdrawal: { fiatThreshold: '1000' },
224
+ const { svc } = await makeService({
225
+ autoWithdrawal: {},
226
+ fiatThreshold: '1000',
191
227
  directoryThrows: true,
192
228
  });
193
229
  const w = await seedWallet();
@@ -200,8 +236,10 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
200
236
  expect(result.status).toBe('pending');
201
237
  });
202
238
  it('stays pending when the player carries an excluded risk flag', async () => {
203
- const { svc } = makeService({
204
- autoWithdrawal: { fiatThreshold: '1000', excludeRiskFlags: ['bonus_abuser'] },
239
+ const { svc } = await makeService({
240
+ autoWithdrawal: {},
241
+ fiatThreshold: '1000',
242
+ excludeRiskFlags: ['bonus_abuser'],
205
243
  riskTags: ['bonus_abuser'],
206
244
  });
207
245
  const w = await seedWallet();
@@ -234,11 +272,15 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
234
272
  const directory = mock({
235
273
  lookupPlayers: vi.fn(async (ids) => ids.map((userId) => mock({ userId, username: 'player', kycStatus: 'verified' }))),
236
274
  });
275
+ await db.drizzle.db.insert(walletAutoWithdrawalConfig).values({
276
+ singletonKey: 'global',
277
+ fiatThreshold: '1000',
278
+ cryptoThreshold: '0',
279
+ excludeRiskFlags: ['withdrawal_review'],
280
+ });
237
281
  const platformConfig = mock({
238
282
  autoWithdrawal: {
239
283
  enabled: true,
240
- fiatThreshold: '1000',
241
- excludeRiskFlags: ['withdrawal_review'],
242
284
  },
243
285
  });
244
286
  const payment = mock({
@@ -274,8 +316,12 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
274
316
  expect(payment.processWithdrawal).not.toHaveBeenCalled();
275
317
  });
276
318
  it('auto-approves when the player carries only unrelated tags', async () => {
277
- const { svc } = makeService({
278
- autoWithdrawal: { fiatThreshold: '1000', excludeRiskFlags: ['bonus_abuser'] },
319
+ const { svc } = await makeService({
320
+ autoWithdrawal: {},
321
+ fiatThreshold: '1000',
322
+ // Explicit empty array proves the exclusion set is genuinely empty here,
323
+ // not the column's non-empty DB default leaking through.
324
+ excludeRiskFlags: [],
279
325
  riskTags: ['vip'],
280
326
  });
281
327
  const w = await seedWallet();
@@ -288,8 +334,10 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
288
334
  expect(result.status).toBe('completed');
289
335
  });
290
336
  it('fails closed to pending when risk flags are configured but the tags port is unbound', async () => {
291
- const { svc } = makeService({
292
- autoWithdrawal: { fiatThreshold: '1000', excludeRiskFlags: ['bonus_abuser'] },
337
+ const { svc } = await makeService({
338
+ autoWithdrawal: {},
339
+ fiatThreshold: '1000',
340
+ excludeRiskFlags: ['bonus_abuser'],
293
341
  riskTags: 'unbound',
294
342
  });
295
343
  const w = await seedWallet();
@@ -301,8 +349,54 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
301
349
  });
302
350
  expect(result.status).toBe('pending');
303
351
  });
352
+ it('setAutoWithdrawalConfig clearing excludeRiskFlags to [] lets a high_risk-tagged player auto-approve', async () => {
353
+ const { svc } = await makeService({
354
+ autoWithdrawal: {},
355
+ fiatThreshold: '1000',
356
+ riskTags: ['high_risk'],
357
+ });
358
+ await svc.setAutoWithdrawalConfig(randomUUID(), {
359
+ fiatThreshold: '1000',
360
+ cryptoThreshold: '0',
361
+ excludeRiskFlags: [],
362
+ });
363
+ const w = await seedWallet();
364
+ const result = await svc.withdraw({
365
+ userId: w.userId,
366
+ amount: '40',
367
+ currency: 'USD',
368
+ ...NO_CLIENT_META,
369
+ });
370
+ expect(result.status).toBe('completed');
371
+ });
372
+ it('a per-player auto_withdrawal_rule override that clears the threshold gate does NOT bypass the tag-exclusion gate - a tag-excluded player still stays pending', async () => {
373
+ const { svc } = await makeService({
374
+ autoWithdrawal: {},
375
+ fiatThreshold: '10',
376
+ riskTags: ['kyc_rejected'],
377
+ });
378
+ const w = await seedWallet();
379
+ await svc.setAutoWithdrawalRule({
380
+ userId: w.userId,
381
+ threshold: '1000',
382
+ reason: 'trusted, but still carries an excluded tag',
383
+ createdBy: randomUUID(),
384
+ });
385
+ const result = await svc.withdraw({
386
+ userId: w.userId,
387
+ amount: '40',
388
+ currency: 'USD',
389
+ ...NO_CLIENT_META,
390
+ });
391
+ expect(result.status).toBe('pending');
392
+ });
393
+ it('an upgraded install with a pre-existing config row (no explicit excludeRiskFlags) gets the migration DEFAULT tags without any admin edit', async () => {
394
+ const { svc } = await makeService({ autoWithdrawal: {}, fiatThreshold: '1000' });
395
+ const config = await svc.getAutoWithdrawalConfig();
396
+ expect(new Set(config.excludeRiskFlags)).toEqual(new Set(MIGRATION_DEFAULT_EXCLUDE_RISK_FLAGS));
397
+ });
304
398
  it('stays pending on the large_amount heuristic regardless of the threshold', async () => {
305
- const { svc } = makeService({ autoWithdrawal: { fiatThreshold: '100000' } });
399
+ const { svc } = await makeService({ autoWithdrawal: {}, fiatThreshold: '100000' });
306
400
  const w = await seedWallet();
307
401
  const result = await svc.withdraw({
308
402
  userId: w.userId,
@@ -313,7 +407,7 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
313
407
  expect(result.status).toBe('pending');
314
408
  });
315
409
  it('stays pending once the wallet hits the high_frequency velocity flag', async () => {
316
- const { svc } = makeService({ autoWithdrawal: { fiatThreshold: '1000' } });
410
+ const { svc } = await makeService({ autoWithdrawal: {}, fiatThreshold: '1000' });
317
411
  const w = await seedWallet();
318
412
  await db.drizzle.db.insert(walletTransaction).values([
319
413
  { walletId: w.id, type: 'withdrawal', amount: '1', currency: 'USD', status: 'completed' },
@@ -328,7 +422,7 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
328
422
  expect(result.status).toBe('pending');
329
423
  });
330
424
  it('ignores withdrawals outside the velocity window', async () => {
331
- const { svc } = makeService({ autoWithdrawal: { fiatThreshold: '1000' } });
425
+ const { svc } = await makeService({ autoWithdrawal: {}, fiatThreshold: '1000' });
332
426
  const w = await seedWallet();
333
427
  const outsideWindow = new Date(Date.now() - 48 * 60 * 60 * 1000);
334
428
  await db.drizzle.db.insert(walletTransaction).values([
@@ -358,7 +452,10 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
358
452
  expect(result.status).toBe('completed');
359
453
  });
360
454
  it('stays pending when a configured daily count cap would be exceeded', async () => {
361
- const { svc } = makeService({ autoWithdrawal: { fiatThreshold: '1000', dailyCapCount: 1 } });
455
+ const { svc } = await makeService({
456
+ autoWithdrawal: { dailyCapCount: 1 },
457
+ fiatThreshold: '1000',
458
+ });
362
459
  const w = await seedWallet();
363
460
  await db.drizzle.db.insert(walletTransaction).values({
364
461
  walletId: w.id,
@@ -377,8 +474,9 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
377
474
  expect(result.status).toBe('pending');
378
475
  });
379
476
  it('stays pending when a configured daily amount cap would be exceeded', async () => {
380
- const { svc } = makeService({
381
- autoWithdrawal: { fiatThreshold: '1000', dailyCapAmount: '50' },
477
+ const { svc } = await makeService({
478
+ autoWithdrawal: { dailyCapAmount: '50' },
479
+ fiatThreshold: '1000',
382
480
  });
383
481
  const w = await seedWallet();
384
482
  await db.drizzle.db.insert(walletTransaction).values({
@@ -398,7 +496,10 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
398
496
  expect(result.status).toBe('pending');
399
497
  });
400
498
  it('counts only auto-approved payouts towards the daily cap', async () => {
401
- const { svc } = makeService({ autoWithdrawal: { fiatThreshold: '1000', dailyCapCount: 1 } });
499
+ const { svc } = await makeService({
500
+ autoWithdrawal: { dailyCapCount: 1 },
501
+ fiatThreshold: '1000',
502
+ });
402
503
  const w = await seedWallet();
403
504
  await db.drizzle.db.insert(walletTransaction).values({
404
505
  walletId: w.id,
@@ -417,7 +518,10 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
417
518
  expect(result.status).toBe('completed');
418
519
  });
419
520
  it('serializes concurrent withdrawals so a count cap of one cannot be bypassed', async () => {
420
- const { svc } = makeService({ autoWithdrawal: { fiatThreshold: '1000', dailyCapCount: 1 } });
521
+ const { svc } = await makeService({
522
+ autoWithdrawal: { dailyCapCount: 1 },
523
+ fiatThreshold: '1000',
524
+ });
421
525
  const w = await seedWallet();
422
526
  const results = await Promise.all([
423
527
  svc.withdraw({ userId: w.userId, amount: '40', currency: 'USD', ...NO_CLIENT_META }),
@@ -429,7 +533,7 @@ describe('WalletService.withdraw auto-approval (real PG)', () => {
429
533
  });
430
534
  describe('WalletService.withdraw auto-approval - crypto rail (real PG)', () => {
431
535
  it('stays pending when no cryptoThreshold is configured, even with a fiat one', async () => {
432
- const { svc } = makeService({ autoWithdrawal: { fiatThreshold: '1000' } });
536
+ const { svc } = await makeService({ autoWithdrawal: {}, fiatThreshold: '1000' });
433
537
  const w = await seedWallet({ currency: 'BTC', balance: '10' });
434
538
  const result = await svc.withdraw({
435
539
  userId: w.userId,
@@ -441,7 +545,7 @@ describe('WalletService.withdraw auto-approval - crypto rail (real PG)', () => {
441
545
  expect(result.status).toBe('pending');
442
546
  });
443
547
  it('auto-approves once an operator configures a positive cryptoThreshold', async () => {
444
- const { svc } = makeService({ autoWithdrawal: { cryptoThreshold: '2' } });
548
+ const { svc } = await makeService({ autoWithdrawal: {}, cryptoThreshold: '2' });
445
549
  const w = await seedWallet({ currency: 'BTC', balance: '10' });
446
550
  const result = await svc.withdraw({
447
551
  userId: w.userId,
@@ -458,7 +562,7 @@ describe('WalletService.withdraw auto-approval - crypto rail (real PG)', () => {
458
562
  });
459
563
  });
460
564
  it('stays pending when the crypto amount exceeds cryptoThreshold', async () => {
461
- const { svc } = makeService({ autoWithdrawal: { cryptoThreshold: '0.5' } });
565
+ const { svc } = await makeService({ autoWithdrawal: {}, cryptoThreshold: '0.5' });
462
566
  const w = await seedWallet({ currency: 'BTC', balance: '10' });
463
567
  const result = await svc.withdraw({
464
568
  userId: w.userId,
@@ -470,8 +574,9 @@ describe('WalletService.withdraw auto-approval - crypto rail (real PG)', () => {
470
574
  expect(result.status).toBe('pending');
471
575
  });
472
576
  it('applies the same KYC guard as the fiat rail', async () => {
473
- const { svc } = makeService({
474
- autoWithdrawal: { cryptoThreshold: '2' },
577
+ const { svc } = await makeService({
578
+ autoWithdrawal: {},
579
+ cryptoThreshold: '2',
475
580
  kycStatus: 'rejected',
476
581
  });
477
582
  const w = await seedWallet({ currency: 'BTC', balance: '10' });
@@ -487,7 +592,7 @@ describe('WalletService.withdraw auto-approval - crypto rail (real PG)', () => {
487
592
  });
488
593
  describe('WalletService auto-approval threshold resolution (real PG)', () => {
489
594
  it('a per-player rule below the global threshold blocks what global would allow', async () => {
490
- const { svc } = makeService({ autoWithdrawal: { fiatThreshold: '1000' } });
595
+ const { svc } = await makeService({ autoWithdrawal: {}, fiatThreshold: '1000' });
491
596
  const w = await seedWallet();
492
597
  await svc.setAutoWithdrawalRule({
493
598
  userId: w.userId,
@@ -504,7 +609,7 @@ describe('WalletService auto-approval threshold resolution (real PG)', () => {
504
609
  expect(result.status).toBe('pending');
505
610
  });
506
611
  it('a per-player rule above the global threshold allows what global would block', async () => {
507
- const { svc, audit } = makeService({ autoWithdrawal: { fiatThreshold: '10' } });
612
+ const { svc, audit } = await makeService({ autoWithdrawal: {}, fiatThreshold: '10' });
508
613
  const w = await seedWallet();
509
614
  await svc.setAutoWithdrawalRule({
510
615
  userId: w.userId,
@@ -523,8 +628,29 @@ describe('WalletService auto-approval threshold resolution (real PG)', () => {
523
628
  after: expect.objectContaining({ thresholdSource: 'per-player' }),
524
629
  }));
525
630
  });
631
+ it('stays pending for a player with a per-player override when the global config row is missing (fail-closed)', async () => {
632
+ const { svc } = await makeService({
633
+ autoWithdrawal: {},
634
+ fiatThreshold: '1000',
635
+ skipConfigSeed: true,
636
+ });
637
+ const w = await seedWallet();
638
+ await svc.setAutoWithdrawalRule({
639
+ userId: w.userId,
640
+ threshold: '1000',
641
+ reason: 'trusted',
642
+ createdBy: randomUUID(),
643
+ });
644
+ const result = await svc.withdraw({
645
+ userId: w.userId,
646
+ amount: '40',
647
+ currency: 'USD',
648
+ ...NO_CLIENT_META,
649
+ });
650
+ expect(result.status).toBe('pending');
651
+ });
526
652
  it('a per-player rule overrides the crypto threshold too', async () => {
527
- const { svc } = makeService({ autoWithdrawal: { cryptoThreshold: '0.5' } });
653
+ const { svc } = await makeService({ autoWithdrawal: {}, cryptoThreshold: '0.5' });
528
654
  const w = await seedWallet({ currency: 'BTC', balance: '10' });
529
655
  await svc.setAutoWithdrawalRule({
530
656
  userId: w.userId,
@@ -542,7 +668,7 @@ describe('WalletService auto-approval threshold resolution (real PG)', () => {
542
668
  expect(result.status).toBe('completed');
543
669
  });
544
670
  it('a zero per-player threshold turns auto-approval off for that player', async () => {
545
- const { svc } = makeService({ autoWithdrawal: { fiatThreshold: '1000' } });
671
+ const { svc } = await makeService({ autoWithdrawal: {}, fiatThreshold: '1000' });
546
672
  const w = await seedWallet();
547
673
  await svc.setAutoWithdrawalRule({
548
674
  userId: w.userId,
@@ -561,7 +687,7 @@ describe('WalletService auto-approval threshold resolution (real PG)', () => {
561
687
  });
562
688
  describe('WalletService auto-withdrawal rule methods (real PG)', () => {
563
689
  it('setAutoWithdrawalRule inserts, then upserts on a repeat for the same player', async () => {
564
- const { svc } = makeService();
690
+ const { svc } = await makeService();
565
691
  const userId = randomUUID();
566
692
  const createdBy = randomUUID();
567
693
  const created = await svc.setAutoWithdrawalRule({
@@ -586,11 +712,11 @@ describe('WalletService auto-withdrawal rule methods (real PG)', () => {
586
712
  expect(rows).toHaveLength(1);
587
713
  });
588
714
  it('getAutoWithdrawalRule returns null when no rule exists', async () => {
589
- const { svc } = makeService();
715
+ const { svc } = await makeService();
590
716
  expect(await svc.getAutoWithdrawalRule(randomUUID())).toBeNull();
591
717
  });
592
718
  it('getAutoWithdrawalRule serializes the timestamps as ISO strings', async () => {
593
- const { svc } = makeService();
719
+ const { svc } = await makeService();
594
720
  const userId = randomUUID();
595
721
  await svc.setAutoWithdrawalRule({
596
722
  userId,
@@ -602,7 +728,7 @@ describe('WalletService auto-withdrawal rule methods (real PG)', () => {
602
728
  expect(rule?.createdAt).toBe(new Date(rule?.createdAt ?? '').toISOString());
603
729
  });
604
730
  it('deleteAutoWithdrawalRule reports whether a row was removed', async () => {
605
- const { svc } = makeService();
731
+ const { svc } = await makeService();
606
732
  const userId = randomUUID();
607
733
  await svc.setAutoWithdrawalRule({
608
734
  userId,
@@ -615,4 +741,28 @@ describe('WalletService auto-withdrawal rule methods (real PG)', () => {
615
741
  expect(await svc.getAutoWithdrawalRule(userId)).toBeNull();
616
742
  });
617
743
  });
744
+ describe('WalletService auto-withdrawal config methods (real PG)', () => {
745
+ it('setAutoWithdrawalConfig updates the singleton row and stamps the admin', async () => {
746
+ const { svc } = await makeService({ autoWithdrawal: {} });
747
+ const adminId = randomUUID();
748
+ const updated = await svc.setAutoWithdrawalConfig(adminId, {
749
+ fiatThreshold: '2500',
750
+ cryptoThreshold: '3',
751
+ excludeRiskFlags: ['bonus_abuser'],
752
+ });
753
+ expect(updated.fiatThreshold).toBe('2500.00000000');
754
+ expect(updated.cryptoThreshold).toBe('3.00000000');
755
+ expect(updated.excludeRiskFlags).toEqual(['bonus_abuser']);
756
+ expect(updated.updatedBy).toBe(adminId);
757
+ expect(await svc.getAutoWithdrawalConfig()).toMatchObject({
758
+ fiatThreshold: '2500.00000000',
759
+ cryptoThreshold: '3.00000000',
760
+ updatedBy: adminId,
761
+ });
762
+ });
763
+ it('getAutoWithdrawalConfig throws a typed not-found error when the singleton row is missing', async () => {
764
+ const { svc } = await makeService();
765
+ await expect(svc.getAutoWithdrawalConfig()).rejects.toThrow();
766
+ });
767
+ });
618
768
  //# sourceMappingURL=wallet-auto-withdrawal.int.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-auto-withdrawal.int.test.js","sourceRoot":"","sources":["../../../src/wallet/__tests__/wallet-auto-withdrawal.int.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet-auto-withdrawal.int.test.js","sourceRoot":"","sources":["../../../src/wallet/__tests__/wallet-auto-withdrawal.int.test.ts"],"names":[],"mappings":"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"}