@bsv/message-box-client 2.0.5 → 2.0.7

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 (32) hide show
  1. package/dist/cjs/package.json +2 -2
  2. package/dist/cjs/src/PeerPayClient.js +463 -62
  3. package/dist/cjs/src/PeerPayClient.js.map +1 -1
  4. package/dist/cjs/src/__tests/PeerPayClientRequestIntegration.test.js +317 -0
  5. package/dist/cjs/src/__tests/PeerPayClientRequestIntegration.test.js.map +1 -0
  6. package/dist/cjs/src/__tests/PeerPayClientUnit.test.js +505 -1
  7. package/dist/cjs/src/__tests/PeerPayClientUnit.test.js.map +1 -1
  8. package/dist/cjs/src/types.js +5 -0
  9. package/dist/cjs/src/types.js.map +1 -1
  10. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  11. package/dist/esm/src/PeerPayClient.js +459 -61
  12. package/dist/esm/src/PeerPayClient.js.map +1 -1
  13. package/dist/esm/src/__tests/PeerPayClientRequestIntegration.test.js +312 -0
  14. package/dist/esm/src/__tests/PeerPayClientRequestIntegration.test.js.map +1 -0
  15. package/dist/esm/src/__tests/PeerPayClientUnit.test.js +505 -1
  16. package/dist/esm/src/__tests/PeerPayClientUnit.test.js.map +1 -1
  17. package/dist/esm/src/types.js +4 -1
  18. package/dist/esm/src/types.js.map +1 -1
  19. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  20. package/dist/types/src/PeerPayClient.d.ts +160 -0
  21. package/dist/types/src/PeerPayClient.d.ts.map +1 -1
  22. package/dist/types/src/__tests/PeerPayClientRequestIntegration.test.d.ts +10 -0
  23. package/dist/types/src/__tests/PeerPayClientRequestIntegration.test.d.ts.map +1 -0
  24. package/dist/types/src/types.d.ts +88 -0
  25. package/dist/types/src/types.d.ts.map +1 -1
  26. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  27. package/dist/umd/bundle.js +1 -1
  28. package/package.json +2 -2
  29. package/src/PeerPayClient.ts +526 -69
  30. package/src/__tests/PeerPayClientRequestIntegration.test.ts +364 -0
  31. package/src/__tests/PeerPayClientUnit.test.ts +594 -1
  32. package/src/types.ts +95 -0
@@ -33,7 +33,8 @@ jest.mock('@bsv/sdk', () => {
33
33
  internalizeAction: jest.fn(),
34
34
  createHmac: jest.fn().mockResolvedValue({
35
35
  hmac: [1, 2, 3, 4, 5]
36
- })
36
+ }),
37
+ verifyHmac: jest.fn().mockResolvedValue({ valid: true })
37
38
  }))
38
39
  };
39
40
  });
@@ -207,5 +208,508 @@ describe('PeerPayClient Unit Tests', () => {
207
208
  expect(payments[1].token.amount).toBe(9);
208
209
  });
209
210
  });
211
+ // Test: listIncomingPaymentRequests
212
+ describe('listIncomingPaymentRequests', () => {
213
+ const futureExpiry = Date.now() + 60000;
214
+ const pastExpiry = Date.now() - 60000;
215
+ it('returns parsed request messages from payment_requests box', async () => {
216
+ jest.spyOn(peerPayClient, 'listMessages').mockResolvedValue([
217
+ {
218
+ messageId: 'msg1',
219
+ sender: 'sender1',
220
+ created_at: '2025-01-01T00:00:00Z',
221
+ updated_at: '2025-01-01T00:00:00Z',
222
+ body: JSON.stringify({
223
+ requestId: 'req1',
224
+ amount: 5000,
225
+ description: 'Test request',
226
+ expiresAt: futureExpiry,
227
+ senderIdentityKey: 'sender1',
228
+ requestProof: 'abcd1234'
229
+ })
230
+ }
231
+ ]);
232
+ jest.spyOn(peerPayClient, 'acknowledgeMessage').mockResolvedValue('ok');
233
+ const requests = await peerPayClient.listIncomingPaymentRequests();
234
+ expect(requests).toHaveLength(1);
235
+ expect(requests[0]).toMatchObject({
236
+ messageId: 'msg1',
237
+ sender: 'sender1',
238
+ requestId: 'req1',
239
+ amount: 5000,
240
+ description: 'Test request'
241
+ });
242
+ });
243
+ it('filters expired requests and acknowledges them', async () => {
244
+ jest.spyOn(peerPayClient, 'listMessages').mockResolvedValue([
245
+ {
246
+ messageId: 'expired-msg',
247
+ sender: 'sender1',
248
+ created_at: '2025-01-01T00:00:00Z',
249
+ updated_at: '2025-01-01T00:00:00Z',
250
+ body: JSON.stringify({
251
+ requestId: 'req-expired',
252
+ amount: 5000,
253
+ description: 'Expired request',
254
+ expiresAt: pastExpiry,
255
+ senderIdentityKey: 'sender1',
256
+ requestProof: 'abcd1234'
257
+ })
258
+ },
259
+ {
260
+ messageId: 'active-msg',
261
+ sender: 'sender2',
262
+ created_at: '2025-01-01T00:00:00Z',
263
+ updated_at: '2025-01-01T00:00:00Z',
264
+ body: JSON.stringify({
265
+ requestId: 'req-active',
266
+ amount: 3000,
267
+ description: 'Active request',
268
+ expiresAt: futureExpiry,
269
+ senderIdentityKey: 'sender2',
270
+ requestProof: 'abcd1234'
271
+ })
272
+ }
273
+ ]);
274
+ const ackSpy = jest.spyOn(peerPayClient, 'acknowledgeMessage').mockResolvedValue('ok');
275
+ const requests = await peerPayClient.listIncomingPaymentRequests();
276
+ expect(requests).toHaveLength(1);
277
+ expect(requests[0].requestId).toBe('req-active');
278
+ expect(ackSpy).toHaveBeenCalledWith({ messageIds: ['expired-msg'] });
279
+ });
280
+ it('filters cancelled requests and acknowledges both original and cancel messages', async () => {
281
+ jest.spyOn(peerPayClient, 'listMessages').mockResolvedValue([
282
+ {
283
+ messageId: 'original-msg',
284
+ sender: 'sender1',
285
+ created_at: '2025-01-01T00:00:00Z',
286
+ updated_at: '2025-01-01T00:00:00Z',
287
+ body: JSON.stringify({
288
+ requestId: 'req-cancel',
289
+ amount: 5000,
290
+ description: 'To be cancelled',
291
+ expiresAt: futureExpiry,
292
+ senderIdentityKey: 'sender1',
293
+ requestProof: 'abcd1234'
294
+ })
295
+ },
296
+ {
297
+ messageId: 'cancel-msg',
298
+ sender: 'sender1',
299
+ created_at: '2025-01-01T00:01:00Z',
300
+ updated_at: '2025-01-01T00:01:00Z',
301
+ body: JSON.stringify({
302
+ requestId: 'req-cancel',
303
+ senderIdentityKey: 'sender1',
304
+ cancelled: true,
305
+ requestProof: 'abcd1234'
306
+ })
307
+ },
308
+ {
309
+ messageId: 'other-msg',
310
+ sender: 'sender2',
311
+ created_at: '2025-01-01T00:00:00Z',
312
+ updated_at: '2025-01-01T00:00:00Z',
313
+ body: JSON.stringify({
314
+ requestId: 'req-other',
315
+ amount: 2000,
316
+ description: 'Other request',
317
+ expiresAt: futureExpiry,
318
+ senderIdentityKey: 'sender2',
319
+ requestProof: 'abcd1234'
320
+ })
321
+ }
322
+ ]);
323
+ const ackSpy = jest.spyOn(peerPayClient, 'acknowledgeMessage').mockResolvedValue('ok');
324
+ const requests = await peerPayClient.listIncomingPaymentRequests();
325
+ expect(requests).toHaveLength(1);
326
+ expect(requests[0].requestId).toBe('req-other');
327
+ expect(ackSpy).toHaveBeenCalledWith({ messageIds: expect.arrayContaining(['original-msg', 'cancel-msg']) });
328
+ });
329
+ it('discards malformed messages (invalid JSON) and acknowledges them', async () => {
330
+ jest.spyOn(peerPayClient, 'listMessages').mockResolvedValue([
331
+ {
332
+ messageId: 'bad-msg',
333
+ sender: 'sender1',
334
+ created_at: '2025-01-01T00:00:00Z',
335
+ updated_at: '2025-01-01T00:00:00Z',
336
+ body: 'NOT VALID JSON {{{}'
337
+ },
338
+ {
339
+ messageId: 'good-msg',
340
+ sender: 'sender2',
341
+ created_at: '2025-01-01T00:00:00Z',
342
+ updated_at: '2025-01-01T00:00:00Z',
343
+ body: JSON.stringify({
344
+ requestId: 'req-good',
345
+ amount: 5000,
346
+ description: 'Valid request',
347
+ expiresAt: Date.now() + 60000,
348
+ senderIdentityKey: 'sender2',
349
+ requestProof: 'abcd1234'
350
+ })
351
+ }
352
+ ]);
353
+ const ackSpy = jest.spyOn(peerPayClient, 'acknowledgeMessage').mockResolvedValue('ok');
354
+ const requests = await peerPayClient.listIncomingPaymentRequests();
355
+ expect(requests).toHaveLength(1);
356
+ expect(requests[0].requestId).toBe('req-good');
357
+ expect(ackSpy).toHaveBeenCalledWith(expect.objectContaining({
358
+ messageIds: expect.arrayContaining(['bad-msg'])
359
+ }));
360
+ });
361
+ it('discards messages with missing required fields and acknowledges them', async () => {
362
+ jest.spyOn(peerPayClient, 'listMessages').mockResolvedValue([
363
+ {
364
+ messageId: 'incomplete-msg',
365
+ sender: 'sender1',
366
+ created_at: '2025-01-01T00:00:00Z',
367
+ updated_at: '2025-01-01T00:00:00Z',
368
+ body: JSON.stringify({ requestId: 'req-incomplete' })
369
+ }
370
+ ]);
371
+ const ackSpy = jest.spyOn(peerPayClient, 'acknowledgeMessage').mockResolvedValue('ok');
372
+ const requests = await peerPayClient.listIncomingPaymentRequests();
373
+ expect(requests).toHaveLength(0);
374
+ expect(ackSpy).toHaveBeenCalledWith(expect.objectContaining({
375
+ messageIds: expect.arrayContaining(['incomplete-msg'])
376
+ }));
377
+ });
378
+ it('only cancels requests from the same sender', async () => {
379
+ const futureExpiry = Date.now() + 60000;
380
+ jest.spyOn(peerPayClient, 'listMessages').mockResolvedValue([
381
+ {
382
+ messageId: 'original-msg',
383
+ sender: 'sender1',
384
+ created_at: '2025-01-01T00:00:00Z',
385
+ updated_at: '2025-01-01T00:00:00Z',
386
+ body: JSON.stringify({
387
+ requestId: 'req-1',
388
+ amount: 5000,
389
+ description: 'Real request',
390
+ expiresAt: futureExpiry,
391
+ senderIdentityKey: 'sender1',
392
+ requestProof: 'abcd1234'
393
+ })
394
+ },
395
+ {
396
+ messageId: 'spoofed-cancel',
397
+ sender: 'attacker',
398
+ created_at: '2025-01-01T00:01:00Z',
399
+ updated_at: '2025-01-01T00:01:00Z',
400
+ body: JSON.stringify({
401
+ requestId: 'req-1',
402
+ senderIdentityKey: 'attacker',
403
+ cancelled: true,
404
+ requestProof: 'abcd1234'
405
+ })
406
+ }
407
+ ]);
408
+ jest.spyOn(peerPayClient, 'acknowledgeMessage').mockResolvedValue('ok');
409
+ const requests = await peerPayClient.listIncomingPaymentRequests();
410
+ // The request should NOT be cancelled because the cancel came from a different sender
411
+ expect(requests).toHaveLength(1);
412
+ expect(requests[0].requestId).toBe('req-1');
413
+ });
414
+ it('filters out requests below minAmount and above maxAmount, acknowledges them', async () => {
415
+ jest.spyOn(peerPayClient, 'listMessages').mockResolvedValue([
416
+ {
417
+ messageId: 'too-small',
418
+ sender: 'sender1',
419
+ created_at: '2025-01-01T00:00:00Z',
420
+ updated_at: '2025-01-01T00:00:00Z',
421
+ body: JSON.stringify({
422
+ requestId: 'req-small',
423
+ amount: 100,
424
+ description: 'Too small',
425
+ expiresAt: futureExpiry,
426
+ senderIdentityKey: 'sender1',
427
+ requestProof: 'abcd1234'
428
+ })
429
+ },
430
+ {
431
+ messageId: 'too-large',
432
+ sender: 'sender2',
433
+ created_at: '2025-01-01T00:00:00Z',
434
+ updated_at: '2025-01-01T00:00:00Z',
435
+ body: JSON.stringify({
436
+ requestId: 'req-large',
437
+ amount: 99999,
438
+ description: 'Too large',
439
+ expiresAt: futureExpiry,
440
+ senderIdentityKey: 'sender2',
441
+ requestProof: 'abcd1234'
442
+ })
443
+ },
444
+ {
445
+ messageId: 'just-right',
446
+ sender: 'sender3',
447
+ created_at: '2025-01-01T00:00:00Z',
448
+ updated_at: '2025-01-01T00:00:00Z',
449
+ body: JSON.stringify({
450
+ requestId: 'req-ok',
451
+ amount: 5000,
452
+ description: 'Just right',
453
+ expiresAt: futureExpiry,
454
+ senderIdentityKey: 'sender3',
455
+ requestProof: 'abcd1234'
456
+ })
457
+ }
458
+ ]);
459
+ const ackSpy = jest.spyOn(peerPayClient, 'acknowledgeMessage').mockResolvedValue('ok');
460
+ const requests = await peerPayClient.listIncomingPaymentRequests(undefined, { minAmount: 1000, maxAmount: 10000 });
461
+ expect(requests).toHaveLength(1);
462
+ expect(requests[0].requestId).toBe('req-ok');
463
+ expect(ackSpy).toHaveBeenCalledWith({ messageIds: expect.arrayContaining(['too-small', 'too-large']) });
464
+ });
465
+ });
466
+ // Test: fulfillPaymentRequest
467
+ describe('fulfillPaymentRequest', () => {
468
+ const mockRequest = {
469
+ messageId: 'req-msg-1',
470
+ sender: 'senderKey',
471
+ requestId: 'req-id-1',
472
+ amount: 5000,
473
+ description: 'Pay for goods',
474
+ expiresAt: Date.now() + 60000
475
+ };
476
+ it('sends payment for request.amount, sends paid response, acknowledges', async () => {
477
+ const sendPaymentSpy = jest.spyOn(peerPayClient, 'sendPayment').mockResolvedValue(undefined);
478
+ const sendMessageSpy = jest.spyOn(peerPayClient, 'sendMessage').mockResolvedValue({
479
+ status: 'success',
480
+ messageId: 'resp-msg-id'
481
+ });
482
+ const ackSpy = jest.spyOn(peerPayClient, 'acknowledgeMessage').mockResolvedValue('ok');
483
+ await peerPayClient.fulfillPaymentRequest({ request: mockRequest });
484
+ expect(sendPaymentSpy).toHaveBeenCalledWith({ recipient: 'senderKey', amount: 5000 }, undefined);
485
+ const responseBody = JSON.parse(sendMessageSpy.mock.calls[0][0].body);
486
+ expect(responseBody).toMatchObject({ requestId: 'req-id-1', status: 'paid', amountPaid: 5000 });
487
+ expect(ackSpy).toHaveBeenCalledWith({ messageIds: ['req-msg-1'] });
488
+ });
489
+ it('includes note when provided', async () => {
490
+ jest.spyOn(peerPayClient, 'sendPayment').mockResolvedValue(undefined);
491
+ const sendMessageSpy = jest.spyOn(peerPayClient, 'sendMessage').mockResolvedValue({
492
+ status: 'success',
493
+ messageId: 'resp-msg-id'
494
+ });
495
+ jest.spyOn(peerPayClient, 'acknowledgeMessage').mockResolvedValue('ok');
496
+ await peerPayClient.fulfillPaymentRequest({ request: mockRequest, note: 'Here you go' });
497
+ const responseBody = JSON.parse(sendMessageSpy.mock.calls[0][0].body);
498
+ expect(responseBody).toMatchObject({ note: 'Here you go' });
499
+ });
500
+ });
501
+ // Test: declinePaymentRequest
502
+ describe('declinePaymentRequest', () => {
503
+ const mockRequest = {
504
+ messageId: 'req-msg-2',
505
+ sender: 'senderKey2',
506
+ requestId: 'req-id-2',
507
+ amount: 3000,
508
+ description: 'Pay for service',
509
+ expiresAt: Date.now() + 60000
510
+ };
511
+ it('sends declined response to payment_request_responses and acknowledges request', async () => {
512
+ const sendMessageSpy = jest.spyOn(peerPayClient, 'sendMessage').mockResolvedValue({
513
+ status: 'success',
514
+ messageId: 'resp-msg-id'
515
+ });
516
+ const ackSpy = jest.spyOn(peerPayClient, 'acknowledgeMessage').mockResolvedValue('ok');
517
+ await peerPayClient.declinePaymentRequest({ request: mockRequest, note: 'Not today' });
518
+ expect(sendMessageSpy).toHaveBeenCalledWith(expect.objectContaining({
519
+ recipient: 'senderKey2',
520
+ messageBox: 'payment_request_responses'
521
+ }), undefined);
522
+ const responseBody = JSON.parse(sendMessageSpy.mock.calls[0][0].body);
523
+ expect(responseBody).toMatchObject({ requestId: 'req-id-2', status: 'declined', note: 'Not today' });
524
+ expect(ackSpy).toHaveBeenCalledWith({ messageIds: ['req-msg-2'] });
525
+ });
526
+ });
527
+ // Test: listPaymentRequestResponses
528
+ describe('listPaymentRequestResponses', () => {
529
+ it('returns parsed responses from payment_request_responses box', async () => {
530
+ jest.spyOn(peerPayClient, 'listMessages').mockResolvedValue([
531
+ {
532
+ messageId: 'resp-1',
533
+ sender: 'payer1',
534
+ created_at: '2025-01-01T00:00:00Z',
535
+ updated_at: '2025-01-01T00:00:00Z',
536
+ body: JSON.stringify({ requestId: 'req-1', status: 'paid', amountPaid: 5000 })
537
+ },
538
+ {
539
+ messageId: 'resp-2',
540
+ sender: 'payer2',
541
+ created_at: '2025-01-01T00:00:00Z',
542
+ updated_at: '2025-01-01T00:00:00Z',
543
+ body: JSON.stringify({ requestId: 'req-2', status: 'declined', note: 'No funds' })
544
+ }
545
+ ]);
546
+ const responses = await peerPayClient.listPaymentRequestResponses();
547
+ expect(responses).toHaveLength(2);
548
+ expect(responses[0]).toMatchObject({ requestId: 'req-1', status: 'paid', amountPaid: 5000 });
549
+ expect(responses[1]).toMatchObject({ requestId: 'req-2', status: 'declined', note: 'No funds' });
550
+ });
551
+ });
552
+ // Test: listenForLivePaymentRequests
553
+ describe('listenForLivePaymentRequests', () => {
554
+ it('calls listenForLiveMessages on payment_requests box and converts messages to IncomingPaymentRequest', async () => {
555
+ const listenSpy = jest.spyOn(peerPayClient, 'listenForLiveMessages').mockResolvedValue(undefined);
556
+ const onRequest = jest.fn();
557
+ await peerPayClient.listenForLivePaymentRequests({ onRequest });
558
+ expect(listenSpy).toHaveBeenCalledWith(expect.objectContaining({ messageBox: 'payment_requests' }));
559
+ // Simulate a message arriving by calling the onMessage callback
560
+ const { onMessage } = listenSpy.mock.calls[0][0];
561
+ onMessage({
562
+ messageId: 'live-msg-1',
563
+ sender: 'sender1',
564
+ created_at: '2025-01-01T00:00:00Z',
565
+ updated_at: '2025-01-01T00:00:00Z',
566
+ body: JSON.stringify({
567
+ requestId: 'req-live-1',
568
+ amount: 3000,
569
+ description: 'Live request',
570
+ expiresAt: Date.now() + 60000,
571
+ senderIdentityKey: 'sender1',
572
+ requestProof: 'abcd1234'
573
+ })
574
+ });
575
+ expect(onRequest).toHaveBeenCalledWith(expect.objectContaining({ messageId: 'live-msg-1', requestId: 'req-live-1', amount: 3000 }));
576
+ });
577
+ });
578
+ // Test: listenForLivePaymentRequestResponses
579
+ describe('listenForLivePaymentRequestResponses', () => {
580
+ it('calls listenForLiveMessages on payment_request_responses box and parses responses', async () => {
581
+ const listenSpy = jest.spyOn(peerPayClient, 'listenForLiveMessages').mockResolvedValue(undefined);
582
+ const onResponse = jest.fn();
583
+ await peerPayClient.listenForLivePaymentRequestResponses({ onResponse });
584
+ expect(listenSpy).toHaveBeenCalledWith(expect.objectContaining({ messageBox: 'payment_request_responses' }));
585
+ // Simulate a message arriving
586
+ const { onMessage } = listenSpy.mock.calls[0][0];
587
+ onMessage({
588
+ messageId: 'live-resp-1',
589
+ sender: 'payer1',
590
+ created_at: '2025-01-01T00:00:00Z',
591
+ updated_at: '2025-01-01T00:00:00Z',
592
+ body: JSON.stringify({ requestId: 'req-1', status: 'paid', amountPaid: 5000 })
593
+ });
594
+ expect(onResponse).toHaveBeenCalledWith(expect.objectContaining({ requestId: 'req-1', status: 'paid', amountPaid: 5000 }));
595
+ });
596
+ });
597
+ // Test: allowPaymentRequestsFrom
598
+ describe('allowPaymentRequestsFrom', () => {
599
+ it('calls setMessageBoxPermission with messageBox=payment_requests and recipientFee=0', async () => {
600
+ const setPermSpy = jest.spyOn(peerPayClient, 'setMessageBoxPermission').mockResolvedValue(undefined);
601
+ await peerPayClient.allowPaymentRequestsFrom({ identityKey: 'trustedKey' });
602
+ expect(setPermSpy).toHaveBeenCalledWith({
603
+ messageBox: 'payment_requests',
604
+ sender: 'trustedKey',
605
+ recipientFee: 0
606
+ });
607
+ });
608
+ });
609
+ // Test: blockPaymentRequestsFrom
610
+ describe('blockPaymentRequestsFrom', () => {
611
+ it('calls setMessageBoxPermission with recipientFee=-1', async () => {
612
+ const setPermSpy = jest.spyOn(peerPayClient, 'setMessageBoxPermission').mockResolvedValue(undefined);
613
+ await peerPayClient.blockPaymentRequestsFrom({ identityKey: 'blockedKey' });
614
+ expect(setPermSpy).toHaveBeenCalledWith({
615
+ messageBox: 'payment_requests',
616
+ sender: 'blockedKey',
617
+ recipientFee: -1
618
+ });
619
+ });
620
+ });
621
+ // Test: listPaymentRequestPermissions
622
+ describe('listPaymentRequestPermissions', () => {
623
+ it('calls listMessageBoxPermissions and maps to { identityKey, allowed } array', async () => {
624
+ jest.spyOn(peerPayClient, 'listMessageBoxPermissions').mockResolvedValue([
625
+ {
626
+ sender: 'key1',
627
+ messageBox: 'payment_requests',
628
+ recipientFee: 0,
629
+ status: 'always_allow',
630
+ createdAt: '2025-01-01T00:00:00Z',
631
+ updatedAt: '2025-01-01T00:00:00Z'
632
+ },
633
+ {
634
+ sender: 'key2',
635
+ messageBox: 'payment_requests',
636
+ recipientFee: -1,
637
+ status: 'blocked',
638
+ createdAt: '2025-01-01T00:00:00Z',
639
+ updatedAt: '2025-01-01T00:00:00Z'
640
+ }
641
+ ]);
642
+ const permissions = await peerPayClient.listPaymentRequestPermissions();
643
+ expect(permissions).toHaveLength(2);
644
+ expect(permissions[0]).toEqual({ identityKey: 'key1', allowed: true });
645
+ expect(permissions[1]).toEqual({ identityKey: 'key2', allowed: false });
646
+ });
647
+ });
648
+ // Test: requestPayment
649
+ describe('requestPayment', () => {
650
+ it('sends payment request message to payment_requests box with correct body fields', async () => {
651
+ jest.spyOn(peerPayClient, 'getIdentityKey').mockResolvedValue('myIdentityKey');
652
+ const sendMessageSpy = jest.spyOn(peerPayClient, 'sendMessage').mockResolvedValue({
653
+ status: 'success',
654
+ messageId: 'mockedMessageId'
655
+ });
656
+ const result = await peerPayClient.requestPayment({
657
+ recipient: 'recipientKey',
658
+ amount: 1000,
659
+ description: 'Please pay me',
660
+ expiresAt: Date.now() + 60000
661
+ });
662
+ expect(result).toHaveProperty('requestId');
663
+ expect(typeof result.requestId).toBe('string');
664
+ expect(sendMessageSpy).toHaveBeenCalledWith(expect.objectContaining({
665
+ recipient: 'recipientKey',
666
+ messageBox: 'payment_requests',
667
+ body: expect.stringContaining('"amount":1000')
668
+ }), undefined);
669
+ const sentBody = JSON.parse(sendMessageSpy.mock.calls[0][0].body);
670
+ expect(sentBody).toHaveProperty('requestId');
671
+ expect(sentBody).toHaveProperty('amount', 1000);
672
+ expect(sentBody).toHaveProperty('description', 'Please pay me');
673
+ expect(sentBody).toHaveProperty('senderIdentityKey', 'myIdentityKey');
674
+ expect(sentBody).toHaveProperty('requestProof');
675
+ expect(typeof sentBody.requestProof).toBe('string');
676
+ expect(sentBody.requestProof.length).toBeGreaterThan(0);
677
+ expect(result).toHaveProperty('requestProof');
678
+ });
679
+ it('throws if amount <= 0', async () => {
680
+ await expect(peerPayClient.requestPayment({
681
+ recipient: 'recipientKey',
682
+ amount: 0,
683
+ description: 'Bad request',
684
+ expiresAt: Date.now() + 60000
685
+ })).rejects.toThrow();
686
+ });
687
+ });
688
+ // Test: cancelPaymentRequest
689
+ describe('cancelPaymentRequest', () => {
690
+ it('sends cancellation message with requestId, real senderIdentityKey, and cancelled: true', async () => {
691
+ jest.spyOn(peerPayClient, 'getIdentityKey').mockResolvedValue('myIdentityKey');
692
+ const sendMessageSpy = jest.spyOn(peerPayClient, 'sendMessage').mockResolvedValue({
693
+ status: 'success',
694
+ messageId: 'mockedMessageId'
695
+ });
696
+ await peerPayClient.cancelPaymentRequest({
697
+ recipient: 'recipientKey',
698
+ requestId: 'existing-request-id',
699
+ requestProof: 'original-proof-hex'
700
+ });
701
+ expect(sendMessageSpy).toHaveBeenCalledWith(expect.objectContaining({
702
+ recipient: 'recipientKey',
703
+ messageBox: 'payment_requests'
704
+ }), undefined);
705
+ const sentBody = JSON.parse(sendMessageSpy.mock.calls[0][0].body);
706
+ expect(sentBody).toEqual({
707
+ requestId: 'existing-request-id',
708
+ senderIdentityKey: 'myIdentityKey',
709
+ requestProof: 'original-proof-hex',
710
+ cancelled: true
711
+ });
712
+ });
713
+ });
210
714
  });
211
715
  //# sourceMappingURL=PeerPayClientUnit.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PeerPayClientUnit.test.js","sourceRoot":"","sources":["../../../../src/__tests/PeerPayClientUnit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PeerPayClientUnit.test.js","sourceRoot":"","sources":["../../../../src/__tests/PeerPayClientUnit.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,5 @@
1
- export {};
1
+ /** Default minimum satoshis for payment request filtering. */
2
+ export const DEFAULT_PAYMENT_REQUEST_MIN_AMOUNT = 1000;
3
+ /** Default maximum satoshis for payment request filtering. */
4
+ export const DEFAULT_PAYMENT_REQUEST_MAX_AMOUNT = 10_000_000;
2
5
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AA6QA,8DAA8D;AAC9D,MAAM,CAAC,MAAM,kCAAkC,GAAG,IAAI,CAAA;AACtD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,kCAAkC,GAAG,UAAU,CAAA"}