test: add vitest

* feature(root): add vitest and some basic tests

* fix(test): after rebase + added referrars test and more sites

* fix(test): test broken after rebase

* fix(test): provide db url to make prisma happy

* fix tests
This commit is contained in:
Carl-Gerhard Lindesvärd
2025-06-06 19:14:18 +02:00
committed by GitHub
parent 09c83ddeb4
commit 5445d6309e
23 changed files with 1131 additions and 3133 deletions

View File

@@ -121,14 +121,36 @@ export async function incomingEvent(
// if timestamp is from the past we dont want to create a new session
if (uaInfo.isServer || isTimestampFromThePast) {
const event = profileId
const screenView = profileId
? await eventBuffer.getLastScreenView({
profileId,
projectId,
})
: null;
const payload = merge(omit(['properties'], event ?? {}), baseEvent);
const payload = {
...baseEvent,
deviceId: screenView?.deviceId ?? '',
sessionId: screenView?.sessionId ?? '',
referrer: screenView?.referrer ?? undefined,
referrerName: screenView?.referrerName ?? undefined,
referrerType: screenView?.referrerType ?? undefined,
path: screenView?.path ?? baseEvent.path,
os: screenView?.os ?? baseEvent.os,
osVersion: screenView?.osVersion ?? baseEvent.osVersion,
browserVersion: screenView?.browserVersion ?? baseEvent.browserVersion,
browser: screenView?.browser ?? baseEvent.browser,
device: screenView?.device ?? baseEvent.device,
brand: screenView?.brand ?? baseEvent.brand,
model: screenView?.model ?? baseEvent.model,
city: screenView?.city ?? baseEvent.city,
country: screenView?.country ?? baseEvent.country,
region: screenView?.region ?? baseEvent.region,
longitude: screenView?.longitude ?? baseEvent.longitude,
latitude: screenView?.latitude ?? baseEvent.latitude,
origin: screenView?.origin ?? baseEvent.origin,
};
return createEventAndNotify(
payload as IServiceEvent,
job.data.payload,
@@ -180,7 +202,9 @@ export async function incomingEvent(
const event = await createEventAndNotify(payload, job.data.payload, logger);
await createSessionEndJob({ payload });
if (!sessionEnd) {
await createSessionEndJob({ payload });
}
return event;
}