Skip to content

Commit 2e73c8f

Browse files
authored
Updated jetbrains test: https.request() now catches errors. This fixes leaking tests as well (#1070)
* Updated jetbrains https.request command to catch errors. This fixes leaking tests as well * Removed deprecated lines from pre-commit and pre-push * added suggestion from PR feedback
1 parent b150355 commit 2e73c8f

3 files changed

Lines changed: 20 additions & 10 deletions

File tree

.husky/pre-commit

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1 @@
1-
#!/usr/bin/env sh
2-
. "$(dirname -- "$0")/_/husky.sh"
3-
41
npx lint-staged

.husky/pre-push

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1 @@
1-
#!/usr/bin/env sh
2-
. "$(dirname -- "$0")/_/husky.sh"
3-
41
npm run build && npm test

__tests__/distributors/jetbrains-installer.test.ts

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,26 @@ describe('findPackageForDownload', () => {
8787
const url = resolvedVersion.url;
8888
const options = {method: 'HEAD'};
8989

90-
https.request(url, options, res => {
91-
// JetBrains uses 403 for inexistent packages
92-
expect(res.statusCode).not.toBe(403);
93-
res.resume();
90+
await new Promise<void>((resolve, reject) => {
91+
const request = https.request(url, options, res => {
92+
let assertionError: unknown;
93+
94+
try {
95+
// JetBrains uses 403 for non-existent packages
96+
expect(res.statusCode).not.toBe(403);
97+
} catch (error) {
98+
assertionError = error;
99+
}
100+
101+
res.resume();
102+
res.once('error', reject);
103+
res.once('end', () =>
104+
assertionError ? reject(assertionError as Error) : resolve()
105+
);
106+
});
107+
108+
request.on('error', reject);
109+
request.end();
94110
});
95111
}
96112
);

0 commit comments

Comments
 (0)