- CCIP/trustless bridge contracts, GRU tokens, DEX/PMM tests, reserve vault. - Token-aggregation service routes, planner, chain config, relay env templates. - Config snapshots and multi-chain deployment markdown updates. - gitignore services/btc-intake/dist/ (tsc output); do not track dist. Run forge build && forge test before deploy (large solc graph). Made-with: Cursor
62 lines
1.4 KiB
TypeScript
62 lines
1.4 KiB
TypeScript
const mockQuery = jest.fn();
|
|
const mockLoggerInfo = jest.fn();
|
|
|
|
jest.mock('../database/client', () => ({
|
|
getDatabasePool: () => ({ query: mockQuery }),
|
|
}));
|
|
|
|
jest.mock('../utils/logger', () => ({
|
|
logger: {
|
|
info: mockLoggerInfo,
|
|
warn: jest.fn(),
|
|
error: jest.fn(),
|
|
},
|
|
}));
|
|
|
|
import { OHLCVGenerator } from './ohlcv-generator';
|
|
|
|
describe('OHLCVGenerator', () => {
|
|
beforeEach(() => {
|
|
mockQuery.mockReset();
|
|
mockLoggerInfo.mockReset();
|
|
});
|
|
|
|
it('returns empty data and logs once when swap tables are not provisioned yet', async () => {
|
|
mockQuery.mockRejectedValue({
|
|
code: '42P01',
|
|
message: 'relation "swap_events" does not exist',
|
|
});
|
|
|
|
const generator = new OHLCVGenerator();
|
|
|
|
await expect(
|
|
generator.generateOHLCV(
|
|
138,
|
|
'0xToken',
|
|
'1h',
|
|
new Date('2026-03-01T00:00:00.000Z'),
|
|
new Date('2026-03-02T00:00:00.000Z')
|
|
)
|
|
).resolves.toEqual([]);
|
|
|
|
await expect(
|
|
generator.generateOHLCV(
|
|
138,
|
|
'0xToken',
|
|
'1h',
|
|
new Date('2026-03-01T00:00:00.000Z'),
|
|
new Date('2026-03-02T00:00:00.000Z')
|
|
)
|
|
).resolves.toEqual([]);
|
|
|
|
expect(mockLoggerInfo).toHaveBeenCalledTimes(1);
|
|
expect(mockLoggerInfo).toHaveBeenCalledWith(
|
|
'Skipping OHLCV generation; relation "swap_events" is not available yet',
|
|
expect.objectContaining({
|
|
operation: 'OHLCV generation',
|
|
relation: 'swap_events',
|
|
})
|
|
);
|
|
});
|
|
});
|