detox-allure2-adapter
Version:
Detox adapter for jest-allure2-reporter
74 lines • 2.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const internals_1 = require("detox/internals");
const historyId = ({ value }) => {
const { type } = internals_1.config.device;
const platform = type.split('.')[0];
return `${platform}:${value}`;
};
const device = () => {
const { type, device } = internals_1.config.device;
switch (type) {
case 'ios.simulator': {
return [device.type, device.os].filter(Boolean).join(', ') || 'iOS Simulator';
}
case 'android.emulator': {
return device.avdName || 'Android Emulator';
}
case 'android.genycloud': {
return device.recipeName || 'Genymotion SaaS';
}
default: {
return;
}
}
};
const statusDetails = ({ value }) => {
const maybeValue = value;
const message = maybeValue?.message;
const trace = maybeValue?.trace;
if (typeof message === 'string' && (!trace || typeof trace === 'string')) {
const lines = message.split('\n');
if (lines.length > 1) {
const [first, ...rest] = message.split('\n');
if (trace) {
rest.push(trace);
}
return {
message: first,
trace: rest.join('\n').trimStart(),
};
}
}
return value;
};
const status = ({ testCase: { failureMessages }, value, }) => {
if (value !== 'broken') {
return value;
}
return failureMessages.every((x) => x.includes('Test Failed:')) ? 'failed' : 'broken';
};
const options = {
overwrite: internals_1.session.testSessionIndex === 0,
resultsDir: 'artifacts',
attachments: {
fileHandler: 'copy',
},
testCase: {
historyId,
status,
statusDetails,
parameters: {
device,
},
},
testFile: {
historyId,
statusDetails,
parameters: {
device,
},
},
};
exports.default = options;
//# sourceMappingURL=allure.js.map