@logtail/next
Version:
Better Stack Telemetry Next.js client
37 lines (29 loc) • 1.11 kB
text/typescript
import { test, expect, vi } from 'vitest';
import { config } from '../src/config';
import { EndpointType } from '../src/shared';
import { Logger } from '../src/logger';
vi.hoisted(() => {
process.env.NEXT_PUBLIC_BETTER_STACK_INGESTING_URL = 'https://s123.test.betterstackdata.com';
process.env.NEXT_PUBLIC_BETTER_STACK_SOURCE_TOKEN = 'mytoken';
});
test('reading vercel ingest endpoint', () => {
let url = config.getIngestURL(EndpointType.webVitals);
expect(url).toEqual('https://s123.test.betterstackdata.com');
url = config.getIngestURL(EndpointType.logs);
expect(url).toEqual('https://s123.test.betterstackdata.com');
});
test('logging when running on lambda', async () => {
vi.useFakeTimers();
const mockedConsole = vi.spyOn(console, 'log');
global.fetch = vi.fn(async () => {
const resp = new Response('', { status: 200 });
return Promise.resolve(resp);
});
const logger = new Logger({
source: 'lambda-log',
});
logger.info('hello, world!');
await logger.flush();
expect(mockedConsole).toHaveBeenCalledTimes(0);
expect(fetch).toHaveBeenCalledTimes(1);
});