Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | 1x 1x 1x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 4x 1x 1x 1x | "use strict"; const _ = require("lodash"); const U = require("glace-utils"); const CONF = require("../config"); const beforeCb = opts => ctx => async () => { ctx.isErrorHappened = false; ctx.lastTestErr = getLastTestErr(); ctx.lastSessErr = _.nth(CONF.session.errors, -1); ctx.isStarted = await $.startVideo(opts); }; const afterChunkCb = ctx => () => { Iif (ctx.isErrorHappened) return; Iif (ctx.lastTestErr !== getLastTestErr()) { ctx.isErrorHappened = true; return; } Iif (ctx.lastSessErr !== _.nth(CONF.session.errors, -1)) { ctx.isErrorHappened = true; return; } }; const afterCb = opts => ctx => async () => { Iif (!ctx.isStarted) return; const videoPath = await $.stopVideo(); Iif (ctx.isErrorHappened || CONF.video.save || opts.save) { allure.attachVideo("video", videoPath); } else { await $.removeVideo(); } }; const getLastTestErr = () => CONF.test.curCase ? _.nth(CONF.test.curCase.errors, -1) : undefined; /** * Callable fixture to capture tests video. * * @global * @function * @prop {string} [dir] - Video file folder. * @prop {string} [name] - Video file name. */ const fxVideoFunc = (opts = {}) => U.makeFixture({ before: beforeCb(opts), after: afterCb(opts), afterChunk: afterChunkCb, }); /** * Fixture to capture tests video. * * @global * @function * @arg {function} func - Test funciton. */ const fxVideo = fxVideoFunc(); module.exports = { fxVideo, fxVideoFunc }; |