Skip to content

Commit

Permalink
Reject test from retry only if it was started #164
Browse files Browse the repository at this point in the history
  • Loading branch information
schipiga committed Jul 31, 2018
1 parent 79b0c69 commit 6a20d58
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 5 deletions.
5 changes: 1 addition & 4 deletions lib/globals/session.js
Expand Up @@ -81,10 +81,7 @@ var session = (name, ctx, fixtures, func) => {
var sessCtx = { retryNumber: sessNum };

global.session(sessName, sessCtx, null, () => {
while(retryTests.length) {
var retry = retryTests.shift();
retry.func(retry.args);
};
for (const retry of retryTests) retry.func(retry.args);
});
});
});
Expand Down
10 changes: 10 additions & 0 deletions lib/globals/test.js
Expand Up @@ -128,7 +128,17 @@ const testFunc = o => {
});
};

const removeTestFromRetryQueue = testCase => {
for (const retry of retryTests) {
if (retry.args.testCase === testCase) {
_.pull(retryTests, retry);
return;
}
}
};

const beforeCb = o => () => {
removeTestFromRetryQueue(o.testCase);
o.testCase.reset();
o.testCase.start();
CONF.test.curCase = o.testCase;
Expand Down
35 changes: 34 additions & 1 deletion tests/unit/testGlobalsTest.js
Expand Up @@ -207,14 +207,45 @@ suite("globals/test", () => {
});
});

test("removeTestFromRetryQueue()", () => {
let removeTestFromRetryQueue, retryTests;

beforeChunk(() => {
removeTestFromRetryQueue = test_.__get__("removeTestFromRetryQueue");

retryTests = [];
test_.__set__("retryTests", retryTests);
});

chunk("does nothing if no tests for retry", () => {
removeTestFromRetryQueue();
expect(retryTests).to.be.empty;
});

chunk("removes test from retry queue", () => {
retryTests[0] = { args: { testCase: { name: "my test" }}};
removeTestFromRetryQueue(retryTests[0].args.testCase);
expect(retryTests).to.be.empty;
});

chunk("throws error if test is not found in retry queue", () => {
retryTests[0] = { args: { testCase: { name: "my test" }}};
removeTestFromRetryQueue({ name: "another test" });
expect(retryTests).to.have.length(1);
});
});

test("beforeCb()", () => {
let beforeCb, o, setLog;
let beforeCb, o, setLog, removeTestFromRetryQueue;

beforeChunk(() => {
beforeCb = test_.__get__("beforeCb");
setLog = sinon.spy();
test_.__set__("setLog", setLog);

removeTestFromRetryQueue = sinon.spy();
test_.__set__("removeTestFromRetryQueue", removeTestFromRetryQueue);

o = {};
o.testCase = {
hasFailedParams: sinon.stub().returns(true),
Expand All @@ -230,6 +261,8 @@ suite("globals/test", () => {
expect(o.testCase.reset).to.be.calledOnce;
expect(o.testCase.start).to.be.calledOnce;
expect(setLog).to.be.calledOnce;
expect(removeTestFromRetryQueue).to.be.calledOnce;
expect(removeTestFromRetryQueue.args[0][0]).to.be.equal(o.testCase);
});
});

Expand Down

0 comments on commit 6a20d58

Please sign in to comment.