Skip to content

Commit

Permalink
fix: make setting of duration of 0 explicit for some reporters (#212
Browse files Browse the repository at this point in the history
)
  • Loading branch information
devpow112 committed May 2, 2024
1 parent c451ace commit 3bca960
Show file tree
Hide file tree
Showing 13 changed files with 67 additions and 49 deletions.
14 changes: 12 additions & 2 deletions src/helpers/report-builder.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -187,8 +187,6 @@ class ReportDetailBuilder extends ReportBuilderBase {

this._reportConfiguration = reportConfiguration;

this._setNestedProperty('duration', 'total', 0);
this._setNestedProperty('duration', 'final', 0);
this._setProperty('retries', 0);
}

Expand Down Expand Up @@ -276,6 +274,18 @@ class ReportDetailBuilder extends ReportBuilderBase {

return this;
}

setDurationTotal(duration, options) {
this._setNestedProperty('duration', 'total', duration, options);

return this;
}

setDurationFinal(duration, options) {
this._setNestedProperty('duration', 'final', duration, options);

return this;
}
}

class ReportBuilder extends ReportBuilderBase {
Expand Down
5 changes: 4 additions & 1 deletion src/reporters/mocha.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,10 @@ class TestReportingMochaReporter extends Spec {
const detail = this._report.getDetail(id);

if (state === 'pending') {
detail.setSkipped();
detail
.setSkipped()
.setDurationFinal(0)
.setDurationTotal(0);
} else {
detail.addDuration(duration);

Expand Down
4 changes: 4 additions & 0 deletions src/reporters/web-test-runner.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,10 @@ export function reporter(options = {}) {

if (duration !== undefined) {
detail.addDuration(duration);
} else {
detail
.setDurationFinal(0)
.setDurationTotal(0);
}
}
};
Expand Down
10 changes: 5 additions & 5 deletions test/integration/data/mocha-1.test.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
const delay = (ms = 100) => {
const delay = (ms = 50) => {
return new Promise(resolve => setTimeout(resolve, ms));
};

describe('reporter tests 1', () => {
let count = 0;

before(async() => { await delay(1000); });
before(async() => { await delay(250); });

beforeEach(async() => { await delay(1000); });
beforeEach(async() => { await delay(250); });

it('test', async() => { await delay(); });

Expand All @@ -27,7 +27,7 @@ describe('reporter tests 1', () => {

it('failed test', () => { throw new Error('fail'); });

afterEach(async() => { await delay(1000); });
afterEach(async() => { await delay(250); });

after(async() => { await delay(1000); });
after(async() => { await delay(250); });
});
10 changes: 5 additions & 5 deletions test/integration/data/mocha-2.test.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
const delay = (ms = 100) => {
const delay = (ms = 50) => {
return new Promise(resolve => setTimeout(resolve, ms));
};

describe('reporter tests 2', () => {
let count = 0;

before(async() => { await delay(1000); });
before(async() => { await delay(250); });

beforeEach(async() => { await delay(1000); });
beforeEach(async() => { await delay(250); });

it('test', async() => { await delay(); });

Expand All @@ -27,7 +27,7 @@ describe('reporter tests 2', () => {

it('failed test', () => { throw new Error('fail'); });

afterEach(async() => { await delay(1000); });
afterEach(async() => { await delay(250); });

after(async() => { await delay(1000); });
after(async() => { await delay(250); });
});
10 changes: 5 additions & 5 deletions test/integration/data/mocha-3.test.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
const delay = (ms = 100) => {
const delay = (ms = 50) => {
return new Promise(resolve => setTimeout(resolve, ms));
};

describe('reporter tests 3', () => {
let count = 0;

before(async() => { await delay(1000); });
before(async() => { await delay(250); });

beforeEach(async() => { await delay(1000); });
beforeEach(async() => { await delay(250); });

it('test', async() => { await delay(); });

Expand All @@ -27,7 +27,7 @@ describe('reporter tests 3', () => {

it('failed test', () => { throw new Error('fail'); });

afterEach(async() => { await delay(1000); });
afterEach(async() => { await delay(250); });

after(async() => { await delay(1000); });
after(async() => { await delay(250); });
});
10 changes: 5 additions & 5 deletions test/integration/data/playwright-1.test.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { test } from '@playwright/test';

const delay = (ms = 100) => {
const delay = (ms = 50) => {
return new Promise(resolve => setTimeout(resolve, ms));
};

test.describe('reporter tests 1', () => {
test.beforeAll(async() => { await delay(1000); });
test.beforeAll(async() => { await delay(250); });

test.beforeEach(async() => { await delay(1000); });
test.beforeEach(async() => { await delay(250); });

test('test', async() => { await delay(); });

Expand All @@ -26,7 +26,7 @@ test.describe('reporter tests 1', () => {

test('failed test', () => { throw new Error('fail'); });

test.afterEach(async() => { await delay(1000); });
test.afterEach(async() => { await delay(250); });

test.afterAll(async() => { await delay(1000); });
test.afterAll(async() => { await delay(250); });
});
10 changes: 5 additions & 5 deletions test/integration/data/playwright-2.test.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { test } from '@playwright/test';

const delay = (ms = 100) => {
const delay = (ms = 50) => {
return new Promise(resolve => setTimeout(resolve, ms));
};

test.describe('reporter tests 2', () => {
test.beforeAll(async() => { await delay(1000); });
test.beforeAll(async() => { await delay(250); });

test.beforeEach(async() => { await delay(1000); });
test.beforeEach(async() => { await delay(250); });

test('test', async() => { await delay(); });

Expand All @@ -26,7 +26,7 @@ test.describe('reporter tests 2', () => {

test('failed test', () => { throw new Error('fail'); });

test.afterEach(async() => { await delay(1000); });
test.afterEach(async() => { await delay(250); });

test.afterAll(async() => { await delay(1000); });
test.afterAll(async() => { await delay(250); });
});
10 changes: 5 additions & 5 deletions test/integration/data/playwright-3.test.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { test } from '@playwright/test';

const delay = (ms = 100) => {
const delay = (ms = 50) => {
return new Promise(resolve => setTimeout(resolve, ms));
};

test.describe('reporter tests 3', () => {
test.beforeAll(async() => { await delay(1000); });
test.beforeAll(async() => { await delay(250); });

test.beforeEach(async() => { await delay(1000); });
test.beforeEach(async() => { await delay(250); });

test('test', async() => { await delay(); });

Expand All @@ -26,7 +26,7 @@ test.describe('reporter tests 3', () => {

test('failed test', () => { throw new Error('fail'); });

test.afterEach(async() => { await delay(1000); });
test.afterEach(async() => { await delay(250); });

test.afterAll(async() => { await delay(1000); });
test.afterAll(async() => { await delay(250); });
});
10 changes: 5 additions & 5 deletions test/integration/data/web-test-runner-1.test.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
const delay = (ms = 100) => {
const delay = (ms = 50) => {
return new Promise(resolve => setTimeout(resolve, ms));
};

describe('reporter tests 1', () => {
before(async() => { await delay(1000); });
before(async() => { await delay(250); });

beforeEach(async() => { await delay(1000); });
beforeEach(async() => { await delay(250); });

it('test', async() => { await delay(); });

it.skip('skipped test', () => {});

it('failed test', () => { throw new Error('fail'); });

afterEach(async() => { await delay(1000); });
afterEach(async() => { await delay(250); });

after(async() => { await delay(1000); });
after(async() => { await delay(250); });
});
10 changes: 5 additions & 5 deletions test/integration/data/web-test-runner-2.test.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
const delay = (ms = 100) => {
const delay = (ms = 50) => {
return new Promise(resolve => setTimeout(resolve, ms));
};

describe('reporter tests 2', () => {
before(async() => { await delay(1000); });
before(async() => { await delay(250); });

beforeEach(async() => { await delay(1000); });
beforeEach(async() => { await delay(250); });

it('test', async() => { await delay(); });

it.skip('skipped test', () => {});

it('failed test', () => { throw new Error('fail'); });

afterEach(async() => { await delay(1000); });
afterEach(async() => { await delay(250); });

after(async() => { await delay(1000); });
after(async() => { await delay(250); });
});
10 changes: 5 additions & 5 deletions test/integration/data/web-test-runner-3.test.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
const delay = (ms = 100) => {
const delay = (ms = 50) => {
return new Promise(resolve => setTimeout(resolve, ms));
};

describe('reporter tests 3', () => {
before(async() => { await delay(1000); });
before(async() => { await delay(250); });

beforeEach(async() => { await delay(1000); });
beforeEach(async() => { await delay(250); });

it('test', async() => { await delay(); });

it.skip('skipped test', () => {});

it('failed test', () => { throw new Error('fail'); });

afterEach(async() => { await delay(1000); });
afterEach(async() => { await delay(250); });

after(async() => { await delay(1000); });
after(async() => { await delay(250); });
});
3 changes: 2 additions & 1 deletion test/integration/report-validation.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -86,11 +86,12 @@ describe('report validation', () => {
for (const detail of details) {
const detailStarted = new Date(detail.started);

expect(detail.duration.final).to.be.at.least(0);
expect(detail.duration.total).to.be.at.least(0);

if (['passed', 'flaky'].includes(detail.status)) {
expect(detail.duration.final).to.be.gt(0);
} else {
expect(detail.duration.final).to.be.at.least(0);
}

expect(detail.duration.total).to.be.at.least(detail.duration.final);
Expand Down

0 comments on commit 3bca960

Please sign in to comment.