test: align resource availability metadata
This commit was merged in pull request #50.
This commit is contained in:
@@ -151,7 +151,7 @@ describe('local accounts and portfolio HTTP (SQLite)', () => {
|
||||
const cold = await get('brokerage-accounts/unknown/portfolio?sync=observe').expect(200);
|
||||
expect((cold.body as PortfolioResourceDto).data).toBeNull();
|
||||
expect((cold.body as PortfolioResourceDto).meta.availability).toBe(
|
||||
'missing',
|
||||
'temporarily-unavailable',
|
||||
);
|
||||
await get('brokerage-accounts?sync=observe').expect(200);
|
||||
expect(upstream.getOpenAccounts).not.toHaveBeenCalled();
|
||||
@@ -321,7 +321,7 @@ describe('local accounts and portfolio HTTP (SQLite)', () => {
|
||||
'brokerage-accounts/account/portfolio?sync=observe',
|
||||
).expect(200);
|
||||
expect((failed.body as PortfolioResourceDto).data).toEqual(previous);
|
||||
expect((failed.body as PortfolioResourceDto).meta.sync.state).toBe('idle');
|
||||
expect((failed.body as PortfolioResourceDto).meta.lastAttempt.state).toBe('none');
|
||||
expect(upstream.getPortfolio).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
@@ -375,7 +375,7 @@ describe('local accounts and portfolio HTTP (SQLite)', () => {
|
||||
where: { id: 'abandoned-membership' },
|
||||
data: { state: 'complete' },
|
||||
});
|
||||
expect((await get('brokerage-accounts/account/portfolio?sync=observe').expect(200)).body).toMatchObject({ data: null, meta: { availability: 'missing' } });
|
||||
expect((await get('brokerage-accounts/account/portfolio?sync=observe').expect(200)).body).toMatchObject({ data: null, meta: { availability: 'temporarily-unavailable', completeness: 'incomplete' } });
|
||||
expect(await prisma.tbankPortfolio.count()).toBe(0);
|
||||
expect((await get('brokerage-accounts?sync=observe')).body).toMatchObject({
|
||||
data: [{ id: 'account', portfolioSummary: null }],
|
||||
@@ -423,13 +423,14 @@ describe('local accounts and portfolio HTTP (SQLite)', () => {
|
||||
{ currency: 'RUB', value: '21.1' },
|
||||
]);
|
||||
expect(summaries.data?.[1].portfolioSummary).toBeNull();
|
||||
expect(summaries.meta.availability).toBe('partial');
|
||||
expect(summaries.meta.availability).toBe('available');
|
||||
expect(summaries.meta.completeness).toBe('complete');
|
||||
expect(
|
||||
(await get('brokerage-accounts/all/portfolio?sync=observe')).body,
|
||||
).toMatchObject({ data: null, meta: { availability: 'partial' } });
|
||||
).toMatchObject({ data: null, meta: { availability: 'temporarily-unavailable', completeness: 'incomplete' } });
|
||||
expect(
|
||||
(await get(`stocks/${uid}/position?sync=observe`).expect(200)).body,
|
||||
).toMatchObject({ data: null, meta: { availability: 'partial' } });
|
||||
).toMatchObject({ data: null, meta: { availability: 'temporarily-unavailable', completeness: 'incomplete' } });
|
||||
expect(upstream.getPortfolio).toHaveBeenCalledTimes(2);
|
||||
await prisma.tbankAccount.deleteMany({ where: { accountId: 'second' } });
|
||||
await prisma.tbankSyncWork.updateMany({
|
||||
@@ -444,7 +445,7 @@ describe('local accounts and portfolio HTTP (SQLite)', () => {
|
||||
);
|
||||
expect(position.body).toMatchObject({
|
||||
data: { quantity: '2', accounts: [{ account: { id: 'account' } }] },
|
||||
meta: { availability: 'complete' },
|
||||
meta: { availability: 'available', completeness: 'complete' },
|
||||
});
|
||||
await prisma.$disconnect();
|
||||
expect(
|
||||
@@ -495,7 +496,7 @@ describe('local accounts and portfolio HTTP (SQLite)', () => {
|
||||
const empty = await get('brokerage-accounts?sync=observe').expect(200);
|
||||
expect((empty.body as BrokerageAccountsResourceDto).data).toEqual([]);
|
||||
expect((empty.body as BrokerageAccountsResourceDto).meta.availability).toBe(
|
||||
'complete',
|
||||
'available',
|
||||
);
|
||||
await put().expect(200);
|
||||
await seedMembership();
|
||||
|
||||
Reference in New Issue
Block a user