| 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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | 4× 17× 17× 4× 237× 236× 236× 236× 236× 236× 237× 4× 38× 38× 236× 4× 35× 224× 224× 224× 35× 4× 47× 47× 47× 17× 17× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 232× 4× | define(['../js/main', 'lodash', 'jquery-3.1.1'], function(rb, _, $) {
'use strict';
function TestsWrapper(name) {
this.name = name;
this.tests = {};
}
TestsWrapper.prototype.addTest = function (name, init, action, checker, doClear) {
if (Array.isArray(name)) {
doClear = name[4];
checker = name[3];
action = name[2];
init = name[1];
name = name[0];
}
this.tests[name] = [init, action, checker, doClear !== false];
};
TestsWrapper.prototype.addTests = function (arr) {
var self = this;
_.forEach(arr, function (val) {
self.addTest(val);
});
};
TestsWrapper.prototype.addTestsSerial = function(name, init, tests) {
tests = _.map(tests, function(test, index) {
var initFn = index === 0 ? init : undefined;
var isClear = index === (tests.length - 1);
return [name + '_' + index, initFn, test[0], test[1], isClear];
});
this.addTests(tests);
};
TestsWrapper.prototype.start = function (initEach) {
function clear() {
rb.Batch.removeAll();
$('.rb-wrapper').remove();
rb.Screen._length = 1;
}
var self = this, prevClear = true;
_.forEach(this.tests, function (testCheck, key) {
var init = testCheck[0],
action = testCheck[1],
check = testCheck[2],
doClear = testCheck[3];
describe(self.name, function () {
beforeEach(function (done) {
$(function () {
try {
window.describeName = self.name;
window.testName = key;
prevClear && initEach && initEach();
} catch (e) {
console.log('initEach failed');
console.error(e);
done(e);
}
rb.start(function () {
try {
window.describeName = self.name;
window.testName = key;
prevClear && init && init();
} catch (e) {
console.log('init failed');
console.error(e);
done(e);
}
try {
window.describeName = self.name;
window.testName = key;
action(done);
} catch (e) {
console.log('action failed');
console.error(e);
done(e);
}
});
});
});
it(key, function (done) {
try {
window.describeName = self.name;
window.testName = key;
var res = check();
} catch (e) {
console.log('check failed');
console.error(e);
expect(false).toBe(true);
done(e);
}
expect(res).toBe(true);
done();
});
afterEach(function (done) {
try {
doClear && clear();
} catch (e) {
console.log('clear failed');
console.error(e);
done(e);
}
prevClear = doClear;
done();
});
});
});
};
return TestsWrapper;
}); |