1 | ;
|
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
4 | };
|
5 | Object.defineProperty(exports, "__esModule", { value: true });
|
6 | const test_run_1 = __importDefault(require("../test-run"));
|
7 | const test_run_state_1 = __importDefault(require("./test-run-state"));
|
8 | const type_1 = __importDefault(require("../test-run/commands/type"));
|
9 | const service_1 = require("../test-run/commands/service");
|
10 | const TEST_RUN_ABORTED_MESSAGE = 'The test run has been aborted.';
|
11 | exports.TestRunCtorFactory = function (callbacks) {
|
12 | const { created, done, readyToNext } = callbacks;
|
13 | return class LiveModeTestRun extends test_run_1.default {
|
14 | constructor(test, browserConnection, screenshotCapturer, warningLog, opts) {
|
15 | super(test, browserConnection, screenshotCapturer, warningLog, opts);
|
16 | created(this, test);
|
17 | this.state = test_run_state_1.default.created;
|
18 | this.finish = null;
|
19 | this.stopping = false;
|
20 | this.isInRoleInitializing = false;
|
21 | this.stopped = false;
|
22 | }
|
23 | stop() {
|
24 | this.stopped = true;
|
25 | }
|
26 | _useRole(...args) {
|
27 | this.isInRoleInitializing = true;
|
28 | return super._useRole.apply(this, args)
|
29 | .then(res => {
|
30 | this.isInRoleInitializing = false;
|
31 | return res;
|
32 | })
|
33 | .catch(err => {
|
34 | this.isInRoleInitializing = false;
|
35 | throw err;
|
36 | });
|
37 | }
|
38 | executeCommand(commandToExec, callsite, forced) {
|
39 | // NOTE: don't close the page and the session when the last test in the queue is done
|
40 | if (commandToExec.type === type_1.default.testDone && !forced) {
|
41 | done(this, this.stopped)
|
42 | .then(() => this.executeCommand(commandToExec, callsite, true))
|
43 | .then(() => readyToNext(this));
|
44 | this.executeCommand(new service_1.UnlockPageCommand(), null);
|
45 | return Promise.resolve();
|
46 | }
|
47 | if (this.stopped && !this.stopping &&
|
48 | !this.isInRoleInitializing) {
|
49 | this.stopping = true;
|
50 | return Promise.reject(new Error(TEST_RUN_ABORTED_MESSAGE));
|
51 | }
|
52 | return super.executeCommand(commandToExec, callsite);
|
53 | }
|
54 | };
|
55 | };
|
56 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1ydW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGl2ZS90ZXN0LXJ1bi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJEQUFrQztBQUNsQyxzRUFBOEM7QUFDOUMscUVBQXFEO0FBQ3JELDBEQUFpRTtBQUVqRSxNQUFNLHdCQUF3QixHQUFHLGdDQUFnQyxDQUFDO0FBRXJELFFBQUEsa0JBQWtCLEdBQUcsVUFBVSxTQUFTO0lBQ2pELE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxHQUFHLFNBQVMsQ0FBQztJQUVqRCxPQUFPLE1BQU0sZUFBZ0IsU0FBUSxrQkFBTztRQUN4QyxZQUFhLElBQUksRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsSUFBSTtZQUN0RSxLQUFLLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUVyRSxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRXBCLElBQUksQ0FBQyxLQUFLLEdBQWtCLHdCQUFjLENBQUMsT0FBTyxDQUFDO1lBQ25ELElBQUksQ0FBQyxNQUFNLEdBQWlCLElBQUksQ0FBQztZQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFlLEtBQUssQ0FBQztZQUNsQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQWdCLEtBQUssQ0FBQztRQUN0QyxDQUFDO1FBRUQsSUFBSTtZQUNBLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUM7UUFFRCxRQUFRLENBQUUsR0FBRyxJQUFJO1lBQ2IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztZQUVqQyxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7aUJBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDUixJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO2dCQUVsQyxPQUFPLEdBQUcsQ0FBQztZQUNmLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztnQkFFbEMsTUFBTSxHQUFHLENBQUM7WUFDZCxDQUFDLENBQUMsQ0FBQztRQUNYLENBQUM7UUFFRCxjQUFjLENBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNO1lBQzNDLHFGQUFxRjtZQUNyRixJQUFJLGFBQWEsQ0FBQyxJQUFJLEtBQUssY0FBWSxDQUFDLFFBQVEsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDekQsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDO3FCQUNuQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO3FCQUM5RCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBRW5DLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSwyQkFBaUIsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUVuRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUM1QjtZQUVELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO2dCQUM5QixDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBRXJCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7YUFDOUQ7WUFFRCxPQUFPLEtBQUssQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3pELENBQUM7S0FDSixDQUFDO0FBQ04sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRlc3RSdW4gZnJvbSAnLi4vdGVzdC1ydW4nO1xuaW1wb3J0IFRFU1RfUlVOX1NUQVRFIGZyb20gJy4vdGVzdC1ydW4tc3RhdGUnO1xuaW1wb3J0IENPTU1BTkRfVFlQRSBmcm9tICcuLi90ZXN0LXJ1bi9jb21tYW5kcy90eXBlJztcbmltcG9ydCB7IFVubG9ja1BhZ2VDb21tYW5kIH0gZnJvbSAnLi4vdGVzdC1ydW4vY29tbWFuZHMvc2VydmljZSc7XG5cbmNvbnN0IFRFU1RfUlVOX0FCT1JURURfTUVTU0FHRSA9ICdUaGUgdGVzdCBydW4gaGFzIGJlZW4gYWJvcnRlZC4nO1xuXG5leHBvcnQgY29uc3QgVGVzdFJ1bkN0b3JGYWN0b3J5ID0gZnVuY3Rpb24gKGNhbGxiYWNrcykge1xuICAgIGNvbnN0IHsgY3JlYXRlZCwgZG9uZSwgcmVhZHlUb05leHQgfSA9IGNhbGxiYWNrcztcblxuICAgIHJldHVybiBjbGFzcyBMaXZlTW9kZVRlc3RSdW4gZXh0ZW5kcyBUZXN0UnVuIHtcbiAgICAgICAgY29uc3RydWN0b3IgKHRlc3QsIGJyb3dzZXJDb25uZWN0aW9uLCBzY3JlZW5zaG90Q2FwdHVyZXIsIHdhcm5pbmdMb2csIG9wdHMpIHtcbiAgICAgICAgICAgIHN1cGVyKHRlc3QsIGJyb3dzZXJDb25uZWN0aW9uLCBzY3JlZW5zaG90Q2FwdHVyZXIsIHdhcm5pbmdMb2csIG9wdHMpO1xuXG4gICAgICAgICAgICBjcmVhdGVkKHRoaXMsIHRlc3QpO1xuXG4gICAgICAgICAgICB0aGlzLnN0YXRlICAgICAgICAgICAgICAgID0gVEVTVF9SVU5fU1RBVEUuY3JlYXRlZDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoICAgICAgICAgICAgICAgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5zdG9wcGluZyAgICAgICAgICAgICA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5pc0luUm9sZUluaXRpYWxpemluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zdG9wcGVkICAgICAgICAgICAgICA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RvcCAoKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3BwZWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgX3VzZVJvbGUgKC4uLmFyZ3MpIHtcbiAgICAgICAgICAgIHRoaXMuaXNJblJvbGVJbml0aWFsaXppbmcgPSB0cnVlO1xuXG4gICAgICAgICAgICByZXR1cm4gc3VwZXIuX3VzZVJvbGUuYXBwbHkodGhpcywgYXJncylcbiAgICAgICAgICAgICAgICAudGhlbihyZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzSW5Sb2xlSW5pdGlhbGl6aW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzSW5Sb2xlSW5pdGlhbGl6aW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgZXhlY3V0ZUNvbW1hbmQgKGNvbW1hbmRUb0V4ZWMsIGNhbGxzaXRlLCBmb3JjZWQpIHtcbiAgICAgICAgICAgIC8vIE5PVEU6IGRvbid0IGNsb3NlIHRoZSBwYWdlIGFuZCB0aGUgc2Vzc2lvbiB3aGVuIHRoZSBsYXN0IHRlc3QgaW4gdGhlIHF1ZXVlIGlzIGRvbmVcbiAgICAgICAgICAgIGlmIChjb21tYW5kVG9FeGVjLnR5cGUgPT09IENPTU1BTkRfVFlQRS50ZXN0RG9uZSAmJiAhZm9yY2VkKSB7XG4gICAgICAgICAgICAgICAgZG9uZSh0aGlzLCB0aGlzLnN0b3BwZWQpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHRoaXMuZXhlY3V0ZUNvbW1hbmQoY29tbWFuZFRvRXhlYywgY2FsbHNpdGUsIHRydWUpKVxuICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiByZWFkeVRvTmV4dCh0aGlzKSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmV4ZWN1dGVDb21tYW5kKG5ldyBVbmxvY2tQYWdlQ29tbWFuZCgpLCBudWxsKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuc3RvcHBlZCAmJiAhdGhpcy5zdG9wcGluZyAmJlxuICAgICAgICAgICAgICAgICF0aGlzLmlzSW5Sb2xlSW5pdGlhbGl6aW5nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wcGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKFRFU1RfUlVOX0FCT1JURURfTUVTU0FHRSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc3VwZXIuZXhlY3V0ZUNvbW1hbmQoY29tbWFuZFRvRXhlYywgY2FsbHNpdGUpO1xuICAgICAgICB9XG4gICAgfTtcbn07XG4iXX0= |
\ | No newline at end of file |