Slave/btc integration #4

Merged
nobswebdev merged 47 commits from slave/btc-integration into master 2026-09-07 11:11:10 +00:00
2 changed files with 24 additions and 3 deletions
Showing only changes of commit 500fe6cf94 - Show all commits
@@ -222,7 +222,7 @@ describe('OrderService', () => {
({
id: 'order-1',
lines: [{ deliveryMode: DeliveryMode.Manual }],
checkoutInvoice: { id: 'checkout-invoice-1', fiatCurrency: 'USD' }
checkoutInvoice: { id: 'checkout-invoice-1', fiatCurrency: 'USD', paymentMethod: PaymentMethod.Xmr }
}) as Order;
it('throws when the order cannot be quoted', async () => {
@@ -300,6 +300,26 @@ describe('OrderService', () => {
});
expect(result).toBe(orderExtended);
});
it('uses the checkout invoice payment method for shipping invoices', async () => {
orderRepo.findOne.mockResolvedValue({
...buildQuotableOrder(),
checkoutInvoice: {
id: 'checkout-invoice-1',
fiatCurrency: 'USD',
paymentMethod: PaymentMethod.Btc
}
});
await service.setDeliveryCost('order-1', { deliveryCost: 12.5 });
expect(invoiceService.issueInvoice).toHaveBeenCalledWith({
paymentMethod: PaymentMethod.Btc,
reason: InvoiceReason.Shipping,
contextId: 'order-1',
amountFiat: 12.5
});
});
});
describe('fulfillManualLine', () => {
@@ -15,7 +15,6 @@ import type { InvoiceExtended } from '../../payment/types/InvoiceExtended';
import type { InvoicePaymentExtended } from '../../payment/types/InvoicePaymentExtended';
import { InvoiceReason } from '../../payment/types/InvoiceReason';
import { InvoiceService } from '../../payment/services/InvoiceService';
import { PaymentMethod } from '../../payment/types/PaymentMethod';
import { DeliveryMode } from '../../product/types/DeliveryMode';
import { SetDeliveryCostDto } from '../dto/SetDeliveryCostDto';
import type { ListOrdersQueryDto } from '../dto/ListOrdersQueryDto';
@@ -99,9 +98,11 @@ export class OrderService {
'checkoutInvoice',
'checkoutInvoice.payments',
'checkoutInvoice.moneroDetails',
'checkoutInvoice.btcDetails',
'shippingInvoice',
'shippingInvoice.payments',
'shippingInvoice.moneroDetails',
'shippingInvoice.btcDetails',
'lines',
'lines.manualFulfillment',
'discounts',
@@ -244,7 +245,7 @@ export class OrderService {
}
const shippingInvoice = await this.invoiceService.issueInvoice({
paymentMethod: PaymentMethod.Xmr,
paymentMethod: order.checkoutInvoice.paymentMethod,
reason: InvoiceReason.Shipping,
contextId: orderId,
amountFiat: deliveryCost