perf(api): stop ledgering session payment reconciliation (#2889)

This commit is contained in:
Hampus authored and GitHub committed 2026-09-22 01:37:21 +02:00
1 parent 0b2306ec3d
commit 412a1ae79d
3 files changed
+39 -2

No files matched your search

+1 -1
View File
@@ -864,7 +864,7 @@ export class RpcService {
if (!queueAllowed) {
return;
}
await this.workerService.addJob('reconcileUserPayments', {userId: userIdString});
await this.workerService.addJob('reconcileUserPayments', {userId: userIdString}, {skipLedger: true});
})
.catch((error) => {
Logger.warn(
@@ -0,0 +1,37 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
import {createTestUserWithPremium} from '@app/api/stripe/tests/StripeWebhookTestUtils';
import {type ApiTestHarness, createApiTestHarness} from '@app/api/test/ApiTestHarness';
import {NoopWorkerService} from '@app/api/test/NoopWorkerService';
import {HTTP_STATUS} from '@app/api/test/TestConstants';
import {createBuilder} from '@app/api/test/TestRequestBuilder';
import {UserPremiumTypes} from '@fluxer/constants/src/UserConstants';
import {afterEach, beforeEach, describe, expect, test, vi} from 'vitest';
describe('RpcService session payment reconciliation', () => {
let harness: ApiTestHarness;
beforeEach(async () => {
harness = await createApiTestHarness();
});
afterEach(async () => {
await harness?.shutdown();
});
test('queues payment reconciliation without a job record', async () => {
const account = await createTestUserWithPremium(harness, UserPremiumTypes.SUBSCRIPTION, {
stripeCustomerId: 'cus_rpc_session_reconcile',
});
const addJob = vi.spyOn(NoopWorkerService.prototype, 'addJob');
try {
await createBuilder(harness, '')
.post('/test/rpc-session-init')
.body({type: 'session', token: account.token, version: 1, ip: '127.0.0.1'})
.expect(HTTP_STATUS.OK)
.execute();
await vi.waitFor(() =>
expect(addJob).toHaveBeenCalledWith('reconcileUserPayments', {userId: account.userId}, {skipLedger: true}),
);
} finally {
addJob.mockRestore();
}
});
});