Skip to content

Commit

Permalink
fix cypress for node <20
Browse files Browse the repository at this point in the history
  • Loading branch information
epszaw committed Jun 26, 2024
1 parent 08cd22c commit 33e652c
Showing 1 changed file with 22 additions and 5 deletions.
27 changes: 22 additions & 5 deletions packages/allure-cypress/src/reporter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@ import type Cypress from "cypress";
import { ContentType, LabelName, Stage, Status } from "allure-js-commons";
import { extractMetadataFromString } from "allure-js-commons/sdk";
import { FileSystemWriter, ReporterRuntime, getSuiteLabels } from "allure-js-commons/sdk/reporter";
import type { CypressHookStartRuntimeMessage, CypressRuntimeMessage, CypressTestStartRuntimeMessage } from "./model.js";
import type {
CypressHookEndRuntimeMessage,
CypressHookStartRuntimeMessage,
CypressRuntimeMessage,
CypressTestStartRuntimeMessage
} from "./model.js";

export type AllureCypressConfig = {
resultsDir?: string;
Expand Down Expand Up @@ -42,9 +47,21 @@ export class AllureCypress {

messages.forEach((message, i) => {
const previousMessagesSlice = messages.slice(0, i);
const lastHookMessage = previousMessagesSlice
.toReversed()
.find(({ type }) => type === "cypress_hook_start" || type === "cypress_hook_end");
let lastHookMessage!: CypressHookStartRuntimeMessage | CypressHookEndRuntimeMessage

for (let j = previousMessagesSlice.length - 1; j >= 0; j--) {
const previousMessage = previousMessagesSlice[j];

if (previousMessage.type === "cypress_hook_start") {
lastHookMessage = previousMessagesSlice[j] as CypressHookStartRuntimeMessage;
break;
}

if (previousMessage.type === "cypress_hook_end") {
lastHookMessage = previousMessagesSlice[j] as CypressHookEndRuntimeMessage;
break;
}
}

if (message.type === "cypress_suite_start") {
this.allureRuntime.startScope();
Expand All @@ -71,7 +88,7 @@ export class AllureCypress {

if (
message.type === "cypress_hook_end" &&
(lastHookMessage as CypressHookStartRuntimeMessage).data?.global &&
(lastHookMessage as CypressHookStartRuntimeMessage)?.data?.global &&
lastHookMessage?.type === "cypress_hook_start"
) {
this.globalHooksMessages.push(message);
Expand Down

0 comments on commit 33e652c

Please sign in to comment.