Skip to content
This repository was archived by the owner on Jan 17, 2025. It is now read-only.

Commit 8d633a0

Browse files
Drop test-double and its dep quibble, use simple DateTime stubbing instead (#32)
* try PR #25 from scratch * Bump testdouble from 3.16.1 to 3.20.2 Bumps [testdouble](https://github.com/testdouble/testdouble.js) from 3.16.1 to 3.20.2. - [Changelog](https://github.com/testdouble/testdouble.js/blob/main/CHANGELOG.md) - [Commits](testdouble/testdouble.js@v3.16.1...v3.20.2) --- updated-dependencies: - dependency-name: testdouble dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * Replace testdouble with simpler stubbing * remove volta pin --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1 parent f2343c2 commit 8d633a0

File tree

8 files changed

+24
-69
lines changed

8 files changed

+24
-69
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ jobs:
1818
path: '**/node_modules'
1919
key: ${{ runner.os }}-build-yarn-${{ hashFiles('**/yarn.lock') }}
2020

21+
- run: node -v
2122
- name: Install Dependencies
2223
run: yarn install --frozen-lockfile
2324

jest.setup.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
global.td = require('testdouble');
2-
require('testdouble-jest')(td, jest);
3-
41
process.env.GITHUB_OWNER = 'bantic';
52
process.env.GITHUB_REPO = 'github-metrics-tests';
63

package.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,6 @@
3939
"fetch-mock": "^9.11.0",
4040
"jest": "^26.6.3",
4141
"setup-polly-jest": "^0.9.1",
42-
"testdouble": "^3.16.1",
43-
"testdouble-jest": "^2.0.0",
4442
"ts-node": "^9.1.1",
4543
"typescript": "^4.2.3"
4644
},

tests/reports/pull-request.test.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,18 @@ import PullRequestReport from '../../src/reports/pull-request';
33
import MERGED_PULL_REQUEST from '../fixtures/merged-pr';
44
import OPEN_NO_REVIEWS from '../fixtures/open-no-reviews';
55
import OPEN_WITH_REVIEWS from '../fixtures/open-with-reviews';
6-
import * as td from 'testdouble';
76
import { DateTime } from 'luxon';
87

98
describe('Pull Request Report', () => {
9+
let origNow: any;
1010
beforeAll(() => {
11-
td.replace(DateTime, 'now', () => {
12-
return DateTime.fromISO('2021-03-11T17:35:54Z');
13-
});
11+
origNow = DateTime.now;
12+
DateTime.now = () => DateTime.fromISO('2021-03-11T17:35:54Z');
1413
});
1514

16-
afterAll(() => td.reset());
15+
afterAll(() => {
16+
DateTime.now = origNow;
17+
});
1718

1819
test('it generates correct report for a merged PR', () => {
1920
const pullRequest = new PullRequest(

tests/reports/repository.test.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
import { PullRequest } from '../../src/github-client';
22
import RepositoryReport from '../../src/reports/repository';
3-
import * as td from 'testdouble';
43
import { DateTime } from 'luxon';
54
import PRS_THIS_WEEK from '../fixtures/prs-this-week';
65

76
describe('Repository Report', () => {
7+
let origNow: any;
88
beforeAll(() => {
9-
td.replace(DateTime, 'now', () => {
10-
return DateTime.fromISO('2021-03-11T17:35:54Z');
11-
});
9+
origNow = DateTime.now;
10+
DateTime.now = () => DateTime.fromISO('2021-03-11T17:35:54Z');
1211
});
1312

14-
afterAll(() => td.reset());
13+
afterAll(() => {
14+
DateTime.now = origNow;
15+
});
1516

1617
test('it generates correct report given an empty list of pull requests', () => {
1718
const owner = 'Marvel';

tests/utils/date.test.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11
import { Period, getInterval } from '../../src/utils/date';
2-
import * as td from 'testdouble';
32
import { DateTime } from 'luxon';
43

54
const NOW_TO_ISO = '2021-03-11T17:35:54.000Z';
65
const STUBBED_NOW = DateTime.fromISO(NOW_TO_ISO).toUTC();
76

87
describe('Date Utils', () => {
8+
let origUtc: any;
99
beforeAll(() => {
10-
td.replace(DateTime, 'utc', () => STUBBED_NOW);
10+
origUtc = DateTime.utc;
11+
DateTime.utc = () => STUBBED_NOW;
1112
});
1213

13-
afterAll(() => td.reset());
14+
afterAll(() => {
15+
DateTime.utc = origUtc;
16+
});
1417

1518
test('generates correct date for day', () => {
1619
const interval = getInterval();

tests/utils/generate-metrics-from-config.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import {
66
} from '../../src/utils/generate-metrics-from-config';
77
import { METRIC_NAME_TO_CONSTRUCTOR } from '../../src/metric';
88
import { DateTime } from 'luxon';
9-
import * as td from 'testdouble';
109

1110
const NOW_TO_ISO = '2021-03-11T17:35:54.000Z';
1211
const STUBBED_NOW = DateTime.fromISO(NOW_TO_ISO).toUTC();
@@ -114,7 +113,8 @@ describe('generateMetrics', () => {
114113
});
115114

116115
test(`period can be specified in config`, () => {
117-
td.replace(DateTime, 'utc', () => STUBBED_NOW);
116+
let origUtc = DateTime.utc;
117+
DateTime.utc = () => STUBBED_NOW;
118118
try {
119119
for (let period of ['day', 'week', 'month']) {
120120
let config = { period, metrics: [{ name: 'workflow/success' }] };
@@ -129,7 +129,7 @@ describe('generateMetrics', () => {
129129
expect(interval.end).toEqual(STUBBED_NOW);
130130
}
131131
} finally {
132-
td.reset();
132+
DateTime.utc = origUtc;
133133
}
134134
});
135135

yarn.lock

Lines changed: 2 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -3947,11 +3947,6 @@ is-number@^7.0.0:
39473947
resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
39483948
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
39493949

3950-
is-plain-obj@^1.0.0:
3951-
version "1.1.0"
3952-
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
3953-
integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4=
3954-
39553950
is-plain-object@^2.0.3, is-plain-object@^2.0.4, is-plain-object@^5.0.0:
39563951
version "5.0.0"
39573952
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
@@ -3962,11 +3957,6 @@ is-potential-custom-element-name@^1.0.0:
39623957
resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397"
39633958
integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c=
39643959

3965-
is-regexp@^1.0.0:
3966-
version "1.0.0"
3967-
resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
3968-
integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk=
3969-
39703960
is-stream@^1.1.0:
39713961
version "1.1.0"
39723962
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
@@ -4659,7 +4649,7 @@ lodash.sortby@^4.7.0:
46594649
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
46604650
integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
46614651

4662-
lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@~4.17.15:
4652+
lodash@^4.17.13, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@~4.17.15:
46634653
version "4.17.21"
46644654
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz"
46654655
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
@@ -5323,14 +5313,6 @@ queue-microtask@^1.2.2:
53235313
resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz"
53245314
integrity sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==
53255315

5326-
quibble@^0.6.4:
5327-
version "0.6.5"
5328-
resolved "https://registry.yarnpkg.com/quibble/-/quibble-0.6.5.tgz#455f606ab3396d04f2384a2ba7f6ce564c4158ed"
5329-
integrity sha512-L3/bDHWjHm9zdG0Aqj7lhmp6Q5RFjXeitO9CGzWKP83d6BlGS0lLo9oswxgq62gwuIF7apT9tO0dw9kNuvb9eg==
5330-
dependencies:
5331-
lodash "^4.17.14"
5332-
resolve "^1.11.1"
5333-
53345316
range-parser@~1.2.1:
53355317
version "1.2.1"
53365318
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
@@ -5530,7 +5512,7 @@ resolve-url@^0.2.1:
55305512
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
55315513
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
55325514

5533-
resolve@^1.10.0, resolve@^1.11.1, resolve@^1.14.2, resolve@^1.18.1, resolve@~1.22.1, resolve@~1.22.2:
5515+
resolve@^1.10.0, resolve@^1.14.2, resolve@^1.18.1, resolve@~1.22.1, resolve@~1.22.2:
55345516
version "1.22.10"
55355517
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39"
55365518
integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==
@@ -5958,14 +5940,6 @@ string-width@^4.1.0, string-width@^4.2.0:
59585940
is-fullwidth-code-point "^3.0.0"
59595941
strip-ansi "^6.0.0"
59605942

5961-
stringify-object-es5@^2.5.0:
5962-
version "2.5.0"
5963-
resolved "https://registry.yarnpkg.com/stringify-object-es5/-/stringify-object-es5-2.5.0.tgz#057c3c9a90a127339bb9d1704a290bb7bd0a1ec5"
5964-
integrity sha1-BXw8mpChJzObudFwSikLt70KHsU=
5965-
dependencies:
5966-
is-plain-obj "^1.0.0"
5967-
is-regexp "^1.0.0"
5968-
59695943
strip-ansi@^6.0.0:
59705944
version "6.0.0"
59715945
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz"
@@ -6059,31 +6033,11 @@ test-exclude@^6.0.0:
60596033
glob "^7.1.4"
60606034
minimatch "^3.0.4"
60616035

6062-
testdouble-jest@^2.0.0:
6063-
version "2.0.0"
6064-
resolved "https://registry.yarnpkg.com/testdouble-jest/-/testdouble-jest-2.0.0.tgz#e5f48ae2978e386638e1eeeb6335e52093ac6071"
6065-
integrity sha512-+Ny3/ZtLcPBXZaVdLXYDDmZtCe5Erx/Rr8scLisFSHR763eHIEh4dGrISfENc+ezvhMLH1GvgSpZjagdv6l3yQ==
6066-
6067-
testdouble@^3.16.1:
6068-
version "3.16.1"
6069-
resolved "https://registry.yarnpkg.com/testdouble/-/testdouble-3.16.1.tgz#05e3405b79e81d5e37aec7157cccd52217c97e8b"
6070-
integrity sha512-diaNYjFfR8bdMhtwJ9c2KxHa7M8Al7YciU+kteutWIIendmCC61ZyqQBtprsFkb6Cd/rjBr2sEoUJ8bWIVHm6w==
6071-
dependencies:
6072-
lodash "^4.17.15"
6073-
quibble "^0.6.4"
6074-
stringify-object-es5 "^2.5.0"
6075-
theredoc "^1.0.0"
6076-
60776036
text-table@^0.2.0:
60786037
version "0.2.0"
60796038
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz"
60806039
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
60816040

6082-
theredoc@^1.0.0:
6083-
version "1.0.0"
6084-
resolved "https://registry.yarnpkg.com/theredoc/-/theredoc-1.0.0.tgz#bcace376af6feb1873efbdd0f91ed026570ff062"
6085-
integrity sha512-KU3SA3TjRRM932jpNfD3u4Ec3bSvedyo5ITPI7zgWYnKep7BwQQaxlhI9qbO+lKJoRnoAbEVfMcAHRuKVYikDA==
6086-
60876041
throat@^5.0.0:
60886042
version "5.0.0"
60896043
resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b"

0 commit comments

Comments
 (0)