Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'allure-js-commons' in functional components in JavaScript. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.
wrapped(function(done) {
reporter.runningExecutable = fun();
let ret;
if (action.length > 0) { // function takes done callback
ret = reporter.runningExecutable.wrap(() => new Promise((resolve, reject) => {
const t: any = resolve;
t.fail = reject;
action(t);
}))();
} else {
ret = reporter.runningExecutable.wrap(action)();
}
if (isPromise(ret)) {
(ret as Promise).then(() => {
reporter.runningExecutable = null;
done();
}).catch(e => {
reporter.runningExecutable = null;
done.fail(e);
});
} else {
reporter.runningExecutable = null;
done();
}
}, timeout);
};
public failTestCase(test: Mocha.Test, error: Error) {
if (this.currentTest === null) {
this.startCase(test);
} else {
const latestStatus = this.currentTest.status;
// if test already has a failed state, we should not overwrite it
if (latestStatus === Status.FAILED || latestStatus === Status.BROKEN) {
return;
}
}
const status = error.name === "AssertionError" ? Status.FAILED : Status.BROKEN;
this.endTest(status, { message: error.message, trace: error.stack });
}
public failTestCase(test: Mocha.Test, error: Error) {
if (this.currentTest === null) {
this.startCase(test);
} else {
const latestStatus = this.currentTest.status;
// if test already has a failed state, we should not overwrite it
if (latestStatus === Status.FAILED || latestStatus === Status.BROKEN) {
return;
}
}
const status = error.name === "AssertionError" ? Status.FAILED : Status.BROKEN;
this.endTest(status, { message: error.message, trace: error.stack });
}
if (spec.status === SpecStatus.PENDING || spec.status === SpecStatus.DISABLED
|| spec.status === SpecStatus.EXCLUDED) {
currentTest.status = Status.SKIPPED;
currentTest.stage = Stage.PENDING;
currentTest.detailsMessage = spec.pendingReason || "Suite disabled";
}
currentTest.stage = Stage.FINISHED;
if (spec.status === SpecStatus.PASSED) {
currentTest.status = Status.PASSED;
}
if (spec.status === SpecStatus.BROKEN) {
currentTest.status = Status.BROKEN;
}
if (spec.status === SpecStatus.FAILED) {
currentTest.status = Status.FAILED;
}
const exceptionInfo = this.findMessageAboutThrow(spec.failedExpectations)
|| this.findAnyError(spec.failedExpectations);
if (exceptionInfo !== null) {
currentTest.detailsMessage = exceptionInfo.message;
currentTest.detailsTrace = exceptionInfo.stack;
}
currentTest.endTest();
this.runningTest = null;
this.currentGroup.endGroup(); // popping the test wrapper
this.groupStack.pop();
}
currentGroup = currentGroup.startGroup("Test wrapper"); // needed to hold beforeEach/AfterEach
this.groupStack.push(currentGroup);
const name = spec.description;
const allureTest = currentGroup.startTest(name);
if (this.runningTest != null) throw new Error("Test is starting before other ended!");
this.runningTest = allureTest;
allureTest.fullName = spec.fullName;
allureTest.historyId = spec.fullName;
allureTest.stage = Stage.RUNNING;
// ignore wrapper, index + 1
if (this.groupStack.length > 1) {
allureTest.addLabel(LabelName.PARENT_SUITE, this.groupStack[0].name);
}
if (this.groupStack.length > 2) {
allureTest.addLabel(LabelName.SUITE, this.groupStack[1].name);
}
if (this.groupStack.length > 3) {
allureTest.addLabel(LabelName.SUB_SUITE, this.groupStack[2].name);
}
// TODO: if more depth add something to test name
for (const labels of this.labelStack) {
for (const label of labels) {
allureTest.addLabel(label.name, label.value);
}
}
}
if (this.runningTest != null) throw new Error("Test is starting before other ended!");
this.runningTest = allureTest;
allureTest.fullName = spec.fullName;
allureTest.historyId = spec.fullName;
allureTest.stage = Stage.RUNNING;
// ignore wrapper, index + 1
if (this.groupStack.length > 1) {
allureTest.addLabel(LabelName.PARENT_SUITE, this.groupStack[0].name);
}
if (this.groupStack.length > 2) {
allureTest.addLabel(LabelName.SUITE, this.groupStack[1].name);
}
if (this.groupStack.length > 3) {
allureTest.addLabel(LabelName.SUB_SUITE, this.groupStack[2].name);
}
// TODO: if more depth add something to test name
for (const labels of this.labelStack) {
for (const label of labels) {
allureTest.addLabel(label.name, label.value);
}
}
}
const name = spec.description;
const allureTest = currentGroup.startTest(name);
if (this.runningTest != null) throw new Error("Test is starting before other ended!");
this.runningTest = allureTest;
allureTest.fullName = spec.fullName;
allureTest.historyId = spec.fullName;
allureTest.stage = Stage.RUNNING;
// ignore wrapper, index + 1
if (this.groupStack.length > 1) {
allureTest.addLabel(LabelName.PARENT_SUITE, this.groupStack[0].name);
}
if (this.groupStack.length > 2) {
allureTest.addLabel(LabelName.SUITE, this.groupStack[1].name);
}
if (this.groupStack.length > 3) {
allureTest.addLabel(LabelName.SUB_SUITE, this.groupStack[2].name);
}
// TODO: if more depth add something to test name
for (const labels of this.labelStack) {
for (const label of labels) {
allureTest.addLabel(label.name, label.value);
}
}
}
specStarted(spec: jasmine.CustomReporterResult): void {
let currentGroup = this.getCurrentGroup();
if (currentGroup === null) throw new Error("No active suite");
currentGroup = currentGroup.startGroup("Test wrapper"); // needed to hold beforeEach/AfterEach
this.groupStack.push(currentGroup);
const name = spec.description;
const allureTest = currentGroup.startTest(name);
if (this.runningTest != null) throw new Error("Test is starting before other ended!");
this.runningTest = allureTest;
allureTest.fullName = spec.fullName;
allureTest.historyId = spec.fullName;
allureTest.stage = Stage.RUNNING;
// ignore wrapper, index + 1
if (this.groupStack.length > 1) {
allureTest.addLabel(LabelName.PARENT_SUITE, this.groupStack[0].name);
}
if (this.groupStack.length > 2) {
allureTest.addLabel(LabelName.SUITE, this.groupStack[1].name);
}
if (this.groupStack.length > 3) {
allureTest.addLabel(LabelName.SUB_SUITE, this.groupStack[2].name);
}
// TODO: if more depth add something to test name
for (const labels of this.labelStack) {
for (const label of labels) {
allureTest.addLabel(label.name, label.value);
specDone(spec: jasmine.CustomReporterResult): void {
const currentTest = this.runningTest;
if (currentTest === null) throw new Error("specDone while no test is running");
if (this.stepStack.length > 0) {
console.error("Allure reporter issue: step stack is not empty on specDone");
for (const step of this.stepStack.reverse()) {
step.status = Status.BROKEN;
step.stage = Stage.INTERRUPTED;
step.detailsMessage = "Timeout";
step.endStep();
}
this.stepStack = [];
}
if (spec.status === SpecStatus.PENDING || spec.status === SpecStatus.DISABLED
|| spec.status === SpecStatus.EXCLUDED) {
currentTest.status = Status.SKIPPED;
currentTest.stage = Stage.PENDING;
currentTest.detailsMessage = spec.pendingReason || "Suite disabled";
}
currentTest.stage = Stage.FINISHED;
if (spec.status === SpecStatus.PASSED) {
currentTest.status = Status.PASSED;
if (currentTest === null) throw new Error("specDone while no test is running");
if (this.stepStack.length > 0) {
console.error("Allure reporter issue: step stack is not empty on specDone");
for (const step of this.stepStack.reverse()) {
step.status = Status.BROKEN;
step.stage = Stage.INTERRUPTED;
step.detailsMessage = "Timeout";
step.endStep();
}
this.stepStack = [];
}
if (spec.status === SpecStatus.PENDING || spec.status === SpecStatus.DISABLED
|| spec.status === SpecStatus.EXCLUDED) {
currentTest.status = Status.SKIPPED;
currentTest.stage = Stage.PENDING;
currentTest.detailsMessage = spec.pendingReason || "Suite disabled";
}
currentTest.stage = Stage.FINISHED;
if (spec.status === SpecStatus.PASSED) {
currentTest.status = Status.PASSED;
}
if (spec.status === SpecStatus.BROKEN) {
currentTest.status = Status.BROKEN;
}
if (spec.status === SpecStatus.FAILED) {
currentTest.status = Status.FAILED;
}
const exceptionInfo = this.findMessageAboutThrow(spec.failedExpectations)
|| this.findAnyError(spec.failedExpectations);