@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.
- package/dist/.tsbuildinfo +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/schemas/__tests__/tag-schemas.test.d.ts +2 -0
- package/dist/contracts/schemas/__tests__/tag-schemas.test.d.ts.map +1 -0
- package/dist/contracts/schemas/__tests__/tag-schemas.test.js +42 -0
- package/dist/contracts/schemas/__tests__/tag-schemas.test.js.map +1 -0
- package/dist/contracts/schemas/platform-config.d.ts +0 -43
- package/dist/contracts/schemas/platform-config.d.ts.map +1 -1
- package/dist/contracts/schemas/platform-config.js +0 -6
- package/dist/contracts/schemas/platform-config.js.map +1 -1
- package/dist/contracts/schemas/tag.d.ts +1 -1
- package/dist/contracts/schemas/tag.js +2 -2
- package/dist/contracts/schemas/tag.js.map +1 -1
- package/dist/iam/service/iam.service.d.ts +1 -1
- package/dist/pam/tag/__tests__/tag.router.int.test.js +63 -0
- package/dist/pam/tag/__tests__/tag.router.int.test.js.map +1 -1
- package/dist/pam/tag/contract/index.d.ts +1 -1
- package/dist/pam/tag/router/index.d.ts +1 -1
- package/dist/pam/tag/router/index.d.ts.map +1 -1
- package/dist/pam/tag/router/index.js +5 -2
- package/dist/pam/tag/router/index.js.map +1 -1
- package/dist/pam/tag/service/tag.service.d.ts +1 -0
- package/dist/pam/tag/service/tag.service.d.ts.map +1 -1
- package/dist/pam/tag/service/tag.service.js +14 -3
- package/dist/pam/tag/service/tag.service.js.map +1 -1
- package/dist/server/auth/permissions.d.ts +12 -0
- package/dist/server/auth/permissions.d.ts.map +1 -1
- package/dist/server/auth/permissions.js +2 -0
- package/dist/server/auth/permissions.js.map +1 -1
- package/dist/wallet/__tests__/wallet-auto-withdrawal-config.router.int.test.d.ts +2 -0
- package/dist/wallet/__tests__/wallet-auto-withdrawal-config.router.int.test.d.ts.map +1 -0
- package/dist/wallet/__tests__/wallet-auto-withdrawal-config.router.int.test.js +183 -0
- package/dist/wallet/__tests__/wallet-auto-withdrawal-config.router.int.test.js.map +1 -0
- package/dist/wallet/__tests__/wallet-auto-withdrawal.int.test.js +196 -46
- package/dist/wallet/__tests__/wallet-auto-withdrawal.int.test.js.map +1 -1
- package/dist/wallet/contract/index.d.ts +124 -0
- package/dist/wallet/contract/index.d.ts.map +1 -1
- package/dist/wallet/contract/index.js +29 -1
- package/dist/wallet/contract/index.js.map +1 -1
- package/dist/wallet/drizzle/migrations/0005_gigantic_dust.sql +10 -0
- package/dist/wallet/drizzle/migrations/0006_lush_morg.sql +1 -0
- package/dist/wallet/drizzle/migrations/meta/0004_snapshot.json +64 -0
- package/dist/wallet/drizzle/migrations/meta/0006_snapshot.json +638 -0
- package/dist/wallet/drizzle/migrations/meta/_journal.json +14 -0
- package/dist/wallet/router/index.d.ts +75 -0
- package/dist/wallet/router/index.d.ts.map +1 -1
- package/dist/wallet/router/index.js +13 -1
- package/dist/wallet/router/index.js.map +1 -1
- package/dist/wallet/schema/index.d.ts +171 -0
- package/dist/wallet/schema/index.d.ts.map +1 -1
- package/dist/wallet/schema/index.js +18 -0
- package/dist/wallet/schema/index.js.map +1 -1
- package/dist/wallet/seed/index.d.ts +2 -0
- package/dist/wallet/seed/index.d.ts.map +1 -0
- package/dist/wallet/seed/index.js +2 -0
- package/dist/wallet/seed/index.js.map +1 -0
- package/dist/wallet/seed/seed-auto-withdrawal-config.d.ts +11 -0
- package/dist/wallet/seed/seed-auto-withdrawal-config.d.ts.map +1 -0
- package/dist/wallet/seed/seed-auto-withdrawal-config.js +16 -0
- package/dist/wallet/seed/seed-auto-withdrawal-config.js.map +1 -0
- package/dist/wallet/service/wallet.service.d.ts +10 -2
- package/dist/wallet/service/wallet.service.d.ts.map +1 -1
- package/dist/wallet/service/wallet.service.js +96 -15
- package/dist/wallet/service/wallet.service.js.map +1 -1
- 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
|
-
|
|
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({
|
|
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: {
|
|
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: {
|
|
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: {
|
|
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: {
|
|
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: {
|
|
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({
|
|
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: {
|
|
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({
|
|
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({
|
|
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: {
|
|
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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"}
|