Skip to content

Commit cb634b2

Browse files
authored
feat: purchase cores (#2701)
1 parent d516062 commit cb634b2

17 files changed

+1093
-125
lines changed

__tests__/comments.ts

+9-4
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,12 @@ import {
5353
ContentPreferenceType,
5454
} from '../src/entity/contentPreference/types';
5555
import { Connection } from 'graphql-relay';
56-
import { UserTransaction } from '../src/entity/user/UserTransaction';
56+
import {
57+
UserTransaction,
58+
UserTransactionProcessor,
59+
UserTransactionStatus,
60+
} from '../src/entity/user/UserTransaction';
5761
import { Product, ProductType } from '../src/entity/Product';
58-
import { TransferStatus } from '@dailydotdev/schema';
5962

6063
let con: DataSource;
6164
let state: GraphQLTestingState;
@@ -1812,8 +1815,9 @@ describe('userState field', () => {
18121815
loggedUser = '1';
18131816

18141817
const transaction = await con.getRepository(UserTransaction).save({
1818+
processor: UserTransactionProcessor.Njord,
18151819
receiverId: '1',
1816-
status: TransferStatus.SUCCESS,
1820+
status: UserTransactionStatus.Success,
18171821
productId: null,
18181822
senderId: '1',
18191823
fee: 0,
@@ -2353,8 +2357,9 @@ describe('award field', () => {
23532357
loggedUser = '1';
23542358

23552359
const transaction = await con.getRepository(UserTransaction).save({
2360+
processor: UserTransactionProcessor.Njord,
23562361
receiverId: '1',
2357-
status: TransferStatus.SUCCESS,
2362+
status: UserTransactionStatus.Success,
23582363
productId: '9104b834-6fac-4276-a168-0be1294ab371',
23592364
senderId: '1',
23602365
fee: 0,

__tests__/common/njord.ts

+21-16
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,15 @@ import { usersFixture } from '../fixture';
66
import { Product, ProductType } from '../../src/entity/Product';
77
import type { AuthContext } from '../../src/Context';
88
import { createClient } from '@connectrpc/connect';
9-
import { Credits, EntityType, TransferStatus } from '@dailydotdev/schema';
9+
import { Credits, EntityType } from '@dailydotdev/schema';
1010
import * as njordCommon from '../../src/common/njord';
1111
import { User } from '../../src/entity/user/User';
1212
import { ForbiddenError } from 'apollo-server-errors';
13-
import { UserTransaction } from '../../src/entity/user/UserTransaction';
13+
import {
14+
UserTransaction,
15+
UserTransactionProcessor,
16+
UserTransactionStatus,
17+
} from '../../src/entity/user/UserTransaction';
1418
import * as redisFile from '../../src/redis';
1519
import { ioRedisPool } from '../../src/redis';
1620
import { parseBigInt } from '../../src/common';
@@ -100,8 +104,9 @@ describe('transferCores', () => {
100104

101105
expect(transaction).toMatchObject({
102106
id: expect.any(String),
107+
processor: UserTransactionProcessor.Njord,
103108
receiverId: 't-tc-2',
104-
status: TransferStatus.SUCCESS,
109+
status: UserTransactionStatus.Success,
105110
productId: 'dd65570f-86c0-40a0-b8a0-3fdbd0d3945d',
106111
senderId: 't-tc-1',
107112
value: 42,
@@ -207,7 +212,7 @@ describe('getBalance', () => {
207212
});
208213

209214
const result = await njordCommon.getBalance({
210-
ctx: { userId: 't-gb-1' } as AuthContext,
215+
userId: 't-gb-1',
211216
});
212217

213218
expect(result).toEqual({ amount: 100 });
@@ -223,7 +228,7 @@ describe('getBalance', () => {
223228
const getRedisObjectSpy = jest.spyOn(redisFile, 'getRedisObject');
224229

225230
const result = await njordCommon.getBalance({
226-
ctx: { userId: 't-gb-1' } as AuthContext,
231+
userId: 't-gb-1',
227232
});
228233

229234
expect(result).toEqual({ amount: 0 });
@@ -259,7 +264,7 @@ describe('getBalance', () => {
259264
});
260265

261266
const resultNotCached = await njordCommon.getBalance({
262-
ctx: { userId: 't-gb-1' } as AuthContext,
267+
userId: 't-gb-1',
263268
});
264269

265270
expect(resultNotCached).toEqual({ amount: 42 });
@@ -269,7 +274,7 @@ describe('getBalance', () => {
269274
expect(getFreshBalanceSpy).toHaveBeenCalledTimes(1);
270275

271276
const result = await njordCommon.getBalance({
272-
ctx: { userId: 't-gb-1' } as AuthContext,
277+
userId: 't-gb-1',
273278
});
274279

275280
expect(result).toEqual({ amount: 42 });
@@ -300,7 +305,7 @@ describe('getBalance', () => {
300305
});
301306

302307
const resultNotCached = await njordCommon.getBalance({
303-
ctx: { userId: 't-gb-1' } as AuthContext,
308+
userId: 't-gb-1',
304309
});
305310

306311
expect(resultNotCached).toEqual({ amount: 42 });
@@ -310,7 +315,7 @@ describe('getBalance', () => {
310315
expect(getFreshBalanceSpy).toHaveBeenCalledTimes(1);
311316

312317
const result = await njordCommon.getBalance({
313-
ctx: { userId: 't-gb-1' } as AuthContext,
318+
userId: 't-gb-1',
314319
});
315320

316321
expect(result).toEqual({ amount: 42 });
@@ -324,7 +329,7 @@ describe('getBalance', () => {
324329
});
325330

326331
const resultExpired = await njordCommon.getBalance({
327-
ctx: { userId: 't-gb-1' } as AuthContext,
332+
userId: 't-gb-1',
328333
});
329334

330335
expect(resultExpired).toEqual({ amount: 42 });
@@ -336,7 +341,7 @@ describe('getBalance', () => {
336341

337342
it('should return 0 if no balance', async () => {
338343
const result = await njordCommon.getBalance({
339-
ctx: { userId: 't-gb-1-not-exists' } as AuthContext,
344+
userId: 't-gb-1-not-exists',
340345
});
341346

342347
expect(result).toEqual({ amount: 0 });
@@ -361,7 +366,7 @@ describe('updatedBalanceCache', () => {
361366
);
362367

363368
const resultBefore = await njordCommon.getBalance({
364-
ctx: { userId: 't-ubc-1' } as AuthContext,
369+
userId: 't-ubc-1',
365370
});
366371

367372
expect(resultBefore).toEqual({ amount: 0 });
@@ -378,7 +383,7 @@ describe('updatedBalanceCache', () => {
378383
);
379384

380385
const resultAfter = await njordCommon.getBalance({
381-
ctx: { userId: 't-ubc-1' } as AuthContext,
386+
userId: 't-ubc-1',
382387
});
383388

384389
expect(resultAfter).toEqual({ amount: 101 });
@@ -401,13 +406,13 @@ describe('expireBalanceCache', () => {
401406
const getFreshBalanceSpy = jest.spyOn(njordCommon, 'getFreshBalance');
402407

403408
await njordCommon.getBalance({
404-
ctx: { userId: 't-ebc-1' } as AuthContext,
409+
userId: 't-ebc-1',
405410
});
406411

407412
expect(getFreshBalanceSpy).toHaveBeenCalledTimes(1);
408413

409414
await njordCommon.getBalance({
410-
ctx: { userId: 't-ebc-1' } as AuthContext,
415+
userId: 't-ebc-1',
411416
});
412417

413418
expect(getFreshBalanceSpy).toHaveBeenCalledTimes(1);
@@ -421,7 +426,7 @@ describe('expireBalanceCache', () => {
421426
);
422427

423428
await njordCommon.getBalance({
424-
ctx: { userId: 't-ebc-1' } as AuthContext,
429+
userId: 't-ebc-1',
425430
});
426431

427432
expect(getFreshBalanceSpy).toHaveBeenCalledTimes(2);

__tests__/posts.ts

+7-3
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,11 @@ import {
9090
ContentPreferenceType,
9191
} from '../src/entity/contentPreference/types';
9292
import { ContentPreference } from '../src/entity/contentPreference/ContentPreference';
93-
import { UserTransaction } from '../src/entity/user/UserTransaction';
94-
import { TransferStatus } from '@dailydotdev/schema';
93+
import {
94+
UserTransaction,
95+
UserTransactionProcessor,
96+
UserTransactionStatus,
97+
} from '../src/entity/user/UserTransaction';
9598

9699
jest.mock('../src/common/pubsub', () => ({
97100
...(jest.requireActual('../src/common/pubsub') as Record<string, unknown>),
@@ -5168,8 +5171,9 @@ describe('userState field', () => {
51685171
loggedUser = '1';
51695172

51705173
const transaction = await con.getRepository(UserTransaction).save({
5174+
processor: UserTransactionProcessor.Njord,
51715175
receiverId: '1',
5172-
status: TransferStatus.SUCCESS,
5176+
status: UserTransactionStatus.Success,
51735177
productId: null,
51745178
senderId: '1',
51755179
fee: 0,

__tests__/triggers/comment.ts

+13-6
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,13 @@ import {
99
User,
1010
Comment,
1111
} from '../../src/entity';
12-
import { UserTransaction } from '../../src/entity/user/UserTransaction';
12+
import {
13+
UserTransaction,
14+
UserTransactionProcessor,
15+
UserTransactionStatus,
16+
} from '../../src/entity/user/UserTransaction';
1317
import { usersFixture } from '../fixture';
1418
import { UserComment } from '../../src/entity/user/UserComment';
15-
import { TransferStatus } from '@dailydotdev/schema';
1619

1720
let con: DataSource;
1821

@@ -72,8 +75,9 @@ describe('trigger user_comment_award_insert_trigger', () => {
7275
expect(comment.awards).toBe(0);
7376

7477
const transaction = await con.getRepository(UserTransaction).save({
78+
processor: UserTransactionProcessor.Njord,
7579
receiverId: 'ucait-1',
76-
status: TransferStatus.SUCCESS,
80+
status: UserTransactionStatus.Success,
7781
productId: null,
7882
senderId: 'ucait-2',
7983
fee: 0,
@@ -138,8 +142,9 @@ describe('trigger user_comment_award_delete_trigger_function', () => {
138142
});
139143

140144
const transaction = await con.getRepository(UserTransaction).save({
145+
processor: UserTransactionProcessor.Njord,
141146
receiverId: 'ucadt-1',
142-
status: TransferStatus.SUCCESS,
147+
status: UserTransactionStatus.Success,
143148
productId: null,
144149
senderId: 'ucadt-2',
145150
fee: 0,
@@ -232,8 +237,9 @@ describe('trigger user_comment_award_update_trigger_function', () => {
232237
expect(comment.awards).toBe(5);
233238

234239
const transaction = await con.getRepository(UserTransaction).save({
240+
processor: UserTransactionProcessor.Njord,
235241
receiverId: 'ucaut-1',
236-
status: TransferStatus.SUCCESS,
242+
status: UserTransactionStatus.Success,
237243
productId: null,
238244
senderId: 'ucaut-2',
239245
fee: 0,
@@ -262,8 +268,9 @@ describe('trigger user_comment_award_update_trigger_function', () => {
262268

263269
it('should update comment awards on award removed', async () => {
264270
const transaction = await con.getRepository(UserTransaction).save({
271+
processor: UserTransactionProcessor.Njord,
265272
receiverId: 'ucaut-1',
266-
status: TransferStatus.SUCCESS,
273+
status: UserTransactionStatus.Success,
267274
productId: null,
268275
senderId: 'ucaut-2',
269276
fee: 0,

__tests__/triggers/post.ts

+13-6
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,12 @@ import {
1313
} from '../../src/entity';
1414
import { sourcesFixture } from '../fixture/source';
1515
import { postsFixture } from '../fixture/post';
16-
import { UserTransaction } from '../../src/entity/user/UserTransaction';
16+
import {
17+
UserTransaction,
18+
UserTransactionProcessor,
19+
UserTransactionStatus,
20+
} from '../../src/entity/user/UserTransaction';
1721
import { usersFixture } from '../fixture';
18-
import { TransferStatus } from '@dailydotdev/schema';
1922

2023
let con: DataSource;
2124

@@ -267,8 +270,9 @@ describe('trigger user_post_award_insert_trigger', () => {
267270
expect(post.awards).toBe(0);
268271

269272
const transaction = await con.getRepository(UserTransaction).save({
273+
processor: UserTransactionProcessor.Njord,
270274
receiverId: 'upait-1',
271-
status: TransferStatus.SUCCESS,
275+
status: UserTransactionStatus.Success,
272276
productId: null,
273277
senderId: 'upait-2',
274278
fee: 0,
@@ -327,8 +331,9 @@ describe('trigger user_post_award_delete_trigger_function', () => {
327331
});
328332

329333
const transaction = await con.getRepository(UserTransaction).save({
334+
processor: UserTransactionProcessor.Njord,
330335
receiverId: 'upadt-1',
331-
status: TransferStatus.SUCCESS,
336+
status: UserTransactionStatus.Success,
332337
productId: null,
333338
senderId: 'upadt-2',
334339
fee: 0,
@@ -414,8 +419,9 @@ describe('trigger user_post_award_update_trigger_function', () => {
414419
expect(post.awards).toBe(5);
415420

416421
const transaction = await con.getRepository(UserTransaction).save({
422+
processor: UserTransactionProcessor.Njord,
417423
receiverId: 'upaut-1',
418-
status: TransferStatus.SUCCESS,
424+
status: UserTransactionStatus.Success,
419425
productId: null,
420426
senderId: 'upaut-2',
421427
fee: 0,
@@ -444,8 +450,9 @@ describe('trigger user_post_award_update_trigger_function', () => {
444450

445451
it('should update post awards on award removed', async () => {
446452
const transaction = await con.getRepository(UserTransaction).save({
453+
processor: UserTransactionProcessor.Njord,
447454
receiverId: 'upaut-1',
448-
status: TransferStatus.SUCCESS,
455+
status: UserTransactionStatus.Success,
449456
productId: null,
450457
senderId: 'upaut-2',
451458
fee: 0,

0 commit comments

Comments
 (0)