Skip to content
This repository was archived by the owner on Jan 17, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ jobs:
path: '**/node_modules'
key: ${{ runner.os }}-build-yarn-${{ hashFiles('**/yarn.lock') }}

- run: node -v
- name: Install Dependencies
run: yarn install --frozen-lockfile

Expand Down
3 changes: 0 additions & 3 deletions jest.setup.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
global.td = require('testdouble');
require('testdouble-jest')(td, jest);

process.env.GITHUB_OWNER = 'bantic';
process.env.GITHUB_REPO = 'github-metrics-tests';

Expand Down
2 changes: 0 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,6 @@
"fetch-mock": "^9.11.0",
"jest": "^26.6.3",
"setup-polly-jest": "^0.9.1",
"testdouble": "^3.16.1",
"testdouble-jest": "^2.0.0",
"ts-node": "^9.1.1",
"typescript": "^4.2.3"
},
Expand Down
11 changes: 6 additions & 5 deletions tests/reports/pull-request.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,18 @@ import PullRequestReport from '../../src/reports/pull-request';
import MERGED_PULL_REQUEST from '../fixtures/merged-pr';
import OPEN_NO_REVIEWS from '../fixtures/open-no-reviews';
import OPEN_WITH_REVIEWS from '../fixtures/open-with-reviews';
import * as td from 'testdouble';
import { DateTime } from 'luxon';

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

afterAll(() => td.reset());
afterAll(() => {
DateTime.now = origNow;
});

test('it generates correct report for a merged PR', () => {
const pullRequest = new PullRequest(
Expand Down
11 changes: 6 additions & 5 deletions tests/reports/repository.test.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
import { PullRequest } from '../../src/github-client';
import RepositoryReport from '../../src/reports/repository';
import * as td from 'testdouble';
import { DateTime } from 'luxon';
import PRS_THIS_WEEK from '../fixtures/prs-this-week';

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

afterAll(() => td.reset());
afterAll(() => {
DateTime.now = origNow;
});

test('it generates correct report given an empty list of pull requests', () => {
const owner = 'Marvel';
Expand Down
9 changes: 6 additions & 3 deletions tests/utils/date.test.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
import { Period, getInterval } from '../../src/utils/date';
import * as td from 'testdouble';
import { DateTime } from 'luxon';

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

describe('Date Utils', () => {
let origUtc: any;
beforeAll(() => {
td.replace(DateTime, 'utc', () => STUBBED_NOW);
origUtc = DateTime.utc;
DateTime.utc = () => STUBBED_NOW;
});

afterAll(() => td.reset());
afterAll(() => {
DateTime.utc = origUtc;
});

test('generates correct date for day', () => {
const interval = getInterval();
Expand Down
6 changes: 3 additions & 3 deletions tests/utils/generate-metrics-from-config.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import {
} from '../../src/utils/generate-metrics-from-config';
import { METRIC_NAME_TO_CONSTRUCTOR } from '../../src/metric';
import { DateTime } from 'luxon';
import * as td from 'testdouble';

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

test(`period can be specified in config`, () => {
td.replace(DateTime, 'utc', () => STUBBED_NOW);
let origUtc = DateTime.utc;
DateTime.utc = () => STUBBED_NOW;
try {
for (let period of ['day', 'week', 'month']) {
let config = { period, metrics: [{ name: 'workflow/success' }] };
Expand All @@ -129,7 +129,7 @@ describe('generateMetrics', () => {
expect(interval.end).toEqual(STUBBED_NOW);
}
} finally {
td.reset();
DateTime.utc = origUtc;
}
});

Expand Down
50 changes: 2 additions & 48 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3947,11 +3947,6 @@ is-number@^7.0.0:
resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==

is-plain-obj@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4=

is-plain-object@^2.0.3, is-plain-object@^2.0.4, is-plain-object@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
Expand All @@ -3962,11 +3957,6 @@ is-potential-custom-element-name@^1.0.0:
resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397"
integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c=

is-regexp@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk=

is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
Expand Down Expand Up @@ -4659,7 +4649,7 @@ lodash.sortby@^4.7.0:
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=

lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@~4.17.15:
lodash@^4.17.13, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@~4.17.15:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
Expand Down Expand Up @@ -5323,14 +5313,6 @@ queue-microtask@^1.2.2:
resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz"
integrity sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==

quibble@^0.6.4:
version "0.6.5"
resolved "https://registry.yarnpkg.com/quibble/-/quibble-0.6.5.tgz#455f606ab3396d04f2384a2ba7f6ce564c4158ed"
integrity sha512-L3/bDHWjHm9zdG0Aqj7lhmp6Q5RFjXeitO9CGzWKP83d6BlGS0lLo9oswxgq62gwuIF7apT9tO0dw9kNuvb9eg==
dependencies:
lodash "^4.17.14"
resolve "^1.11.1"

range-parser@~1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
Expand Down Expand Up @@ -5530,7 +5512,7 @@ resolve-url@^0.2.1:
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=

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

stringify-object-es5@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/stringify-object-es5/-/stringify-object-es5-2.5.0.tgz#057c3c9a90a127339bb9d1704a290bb7bd0a1ec5"
integrity sha1-BXw8mpChJzObudFwSikLt70KHsU=
dependencies:
is-plain-obj "^1.0.0"
is-regexp "^1.0.0"

strip-ansi@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz"
Expand Down Expand Up @@ -6059,31 +6033,11 @@ test-exclude@^6.0.0:
glob "^7.1.4"
minimatch "^3.0.4"

testdouble-jest@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/testdouble-jest/-/testdouble-jest-2.0.0.tgz#e5f48ae2978e386638e1eeeb6335e52093ac6071"
integrity sha512-+Ny3/ZtLcPBXZaVdLXYDDmZtCe5Erx/Rr8scLisFSHR763eHIEh4dGrISfENc+ezvhMLH1GvgSpZjagdv6l3yQ==

testdouble@^3.16.1:
version "3.16.1"
resolved "https://registry.yarnpkg.com/testdouble/-/testdouble-3.16.1.tgz#05e3405b79e81d5e37aec7157cccd52217c97e8b"
integrity sha512-diaNYjFfR8bdMhtwJ9c2KxHa7M8Al7YciU+kteutWIIendmCC61ZyqQBtprsFkb6Cd/rjBr2sEoUJ8bWIVHm6w==
dependencies:
lodash "^4.17.15"
quibble "^0.6.4"
stringify-object-es5 "^2.5.0"
theredoc "^1.0.0"

text-table@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz"
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=

theredoc@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/theredoc/-/theredoc-1.0.0.tgz#bcace376af6feb1873efbdd0f91ed026570ff062"
integrity sha512-KU3SA3TjRRM932jpNfD3u4Ec3bSvedyo5ITPI7zgWYnKep7BwQQaxlhI9qbO+lKJoRnoAbEVfMcAHRuKVYikDA==

throat@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b"
Expand Down
Loading