diff --git a/src/lib/ctx.ts b/src/lib/ctx.ts index 42c3a68..c0bafc5 100644 --- a/src/lib/ctx.ts +++ b/src/lib/ctx.ts @@ -295,6 +295,7 @@ export default (options: Record): Context => { isSnapshotCaptured: false, sessionCapabilitiesMap: new Map(), sessionTestIdMap: new Map(), + testIdTestNameMap: new Map(), buildToSnapshotCountMap: new Map(), sessionIdToSnapshotNameMap: new Map(), fetchResultsForBuild: new Array, diff --git a/src/lib/processSnapshot.ts b/src/lib/processSnapshot.ts index 581240c..1b697c4 100644 --- a/src/lib/processSnapshot.ts +++ b/src/lib/processSnapshot.ts @@ -89,6 +89,16 @@ export async function prepareSnapshot(snapshot: Snapshot, ctx: Context): Promise processedOptions.testId = sessionCapabilities.id; } } + if (options.testName) { + processedOptions.testName = options.testName; + } else if (processedOptions.testId && ctx.testIdTestNameMap?.has(processedOptions.testId)) { + processedOptions.testName = ctx.testIdTestNameMap.get(processedOptions.testId); + } else if (ctx.sessionCapabilitiesMap && ctx.sessionCapabilitiesMap.has(sessionId)) { + const sessionCapabilities = ctx.sessionCapabilitiesMap.get(sessionId); + if (sessionCapabilities && sessionCapabilities.name) { + processedOptions.testName = sessionCapabilities.name; + } + } } if (options.web && Object.keys(options.web).length) { @@ -578,6 +588,16 @@ export default async function processSnapshot(snapshot: Snapshot, ctx: Context): processedOptions.testId = sessionCapabilities.id; } } + if (options.testName) { + processedOptions.testName = options.testName; + } else if (processedOptions.testId && ctx.testIdTestNameMap?.has(processedOptions.testId)) { + processedOptions.testName = ctx.testIdTestNameMap.get(processedOptions.testId); + } else if (ctx.sessionCapabilitiesMap && ctx.sessionCapabilitiesMap.has(sessionId)) { + const sessionCapabilities = ctx.sessionCapabilitiesMap.get(sessionId); + if (sessionCapabilities && sessionCapabilities.name) { + processedOptions.testName = sessionCapabilities.name; + } + } } if (options.web && Object.keys(options.web).length) { diff --git a/src/lib/server.ts b/src/lib/server.ts index 441fb8f..6aff699 100644 --- a/src/lib/server.ts +++ b/src/lib/server.ts @@ -96,18 +96,36 @@ export default async (ctx: Context): Promise; sessionTestIdMap?: Map; + testIdTestNameMap?: Map; buildToSnapshotCountMap?: Map; fetchResultsForBuild?: Array; sessionIdToSnapshotNameMap?: Map; @@ -189,6 +190,7 @@ export interface Snapshot { ignoreType?: string[], sessionId?: string testId?: string + testName?: string sync?: boolean; contextId?: string; useExtendedViewport?: boolean;