Skip to content

Commit 4fa85ee

Browse files
committed
wip: we did it
1 parent a0f13e1 commit 4fa85ee

File tree

3 files changed

+107
-1
lines changed

3 files changed

+107
-1
lines changed

test/unit/node/app.test.ts

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import { logger } from "@coder/logger"
22
import { promises, rmdirSync } from "fs"
33
import * as http from "http"
4+
import * as https from "https"
45
import * as path from "path"
56
import { createApp, ensureAddress, handleArgsSocketCatchError, handleServerError } from "../../../src/node/app"
6-
import { setDefaults } from "../../../src/node/cli"
7+
import { OptionalString, setDefaults } from "../../../src/node/cli"
78
import { getAvailablePort, tmpdir } from "../../utils/helpers"
89

910
describe("createApp", () => {
@@ -137,6 +138,27 @@ describe("createApp", () => {
137138
rmdirSync(socketPath, { recursive: true })
138139
server.close()
139140
})
141+
142+
it("should create an https server if args.cert exists", async () => {
143+
// No idea why we have this weird optional string thing
144+
const port = await getAvailablePort()
145+
const cert = new OptionalString("./test/utils/test.crt")
146+
const defaultArgs = await setDefaults({
147+
port,
148+
cert,
149+
_: [],
150+
["cert-key"]: "./test/utils/test.key",
151+
})
152+
const app = await createApp(defaultArgs)
153+
const server = app[2]
154+
155+
// This doesn't check much, but it's a good sanity check
156+
// to ensure we actually get back values from createApp
157+
expect(server).toBeInstanceOf(https.Server)
158+
159+
// Cleanup
160+
server.close()
161+
})
140162
})
141163

142164
describe("ensureAddress", () => {

test/utils/test.crt

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIFjjCCA3YCCQCVV/TwiFnSozANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC
3+
VVMxDjAMBgNVBAgMBVRleGFzMQ8wDQYDVQQHDAZBdXN0aW4xDjAMBgNVBAoMBUNv
4+
ZGVyMRQwEgYDVQQLDAtFbmdpbmVlcmluZzESMBAGA1UEAwwJY29kZXIuY29tMR4w
5+
HAYJKoZIhvcNAQkBFg9oZWxsb0Bjb2Rlci5jb20wHhcNMjEwOTE1MTgyNDIwWhcN
6+
MzEwOTEzMTgyNDIwWjCBiDELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVRleGFzMQ8w
7+
DQYDVQQHDAZBdXN0aW4xDjAMBgNVBAoMBUNvZGVyMRQwEgYDVQQLDAtFbmdpbmVl
8+
cmluZzESMBAGA1UEAwwJY29kZXIuY29tMR4wHAYJKoZIhvcNAQkBFg9oZWxsb0Bj
9+
b2Rlci5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCoczbPZMn4
10+
ILxg/Vw6512NgORHpMmfxSxqRORw3VM9bnxTiq1xPqP8ol/3Bvk7PGmvlNN3alcE
11+
vEapyV6ceF9FxCJARBXpIqNS/tLNtAjIIiCOrBjVXTrDI8jsYIYgojDue+i/OAxA
12+
0CPGXXZKPH6yvpjbczHZDrG5GYchWWMzA1gzq4iiQJH1MZviQS3tSZSqw0Vn1jYK
13+
V4BAOkSkxS4NrevjK7bIW9Dfrly9bfJfd+YZNr0ARp46G6Ke33xxF2KYpngscEFZ
14+
f5RYJLevFFDs1+UGn4/YTDcGv+6yC4ftz0OuM7CZqcc8UtE9g1yIm5kCllPVptW1
15+
6c8K8GC3l0kCDO3X5C0cWee86Hzlb+uIdoHTsjif6l9+v/FfmiRjeEDKcgh1fEgB
16+
z21GFsCq6XPPU975V38AftSxQ9RBs/Zfv7Ra+fFITISgdfQWH/pETrevsr1KUEf1
17+
xOkEZhEuQWo4XzKSNojFHRr7lvxrCUPGt9gIr5k3frxx5mVTqKJSiyjFTrFRCQ0n
18+
SlNlB5GzQEzPRMqGGxT+CjXz2Sgc0n0xbxm6tORYbKRygPTwSyaiZbRJQrYP/J0K
19+
XsZvKyQDU5HIzI3sUK3pnMbEhM08wptbRXjBGVtZ4etYfPhOUJogZ1VnXakBQHjg
20+
iGWQ2Jcd56FhdrPl9V/5AqRaly895bXM7QIDAQABMA0GCSqGSIb3DQEBCwUAA4IC
21+
AQCoWQyoeJLXXxy74uTYM9wng5O03p0IM7fnViPtYa/5oXjX/h2e6X3ijStJ6JmL
22+
mUL5Z7wY9JfHCbaKlC0ZrftwGrbldAPsKK1ZjOg9lgh1ZzkL++Akept992IEH9GU
23+
VB2l1N87xiQs7y40bwzlMbDmV/X9P2GhgyWpcUY8s6fkbczHU0tYJnOjj9H1HAlX
24+
yUsq587Z9j5TwF3f+UcprqEDaqwRhCmknXMJTbNeoL5T2d5WxXqZEiWJGD364nJw
25+
xt+VoriCwWZclltUcBqnDheyxmWWa6SGxz2aiS2cHC14V7sgaxpe05uSumGtzLeL
26+
H+x8Qx9a+eyNq/miV9czK++miaLyGQRkSDE35iFWUKpa1C1BcKl53uKfYCo6u83a
27+
nAWr/CATnyFgVZzMEJloSvYfnuA2+klJtZ9cRV0lp4CxefR+AKnkcNtmCr71LX12
28+
b7XTXHw68gEQp/iVZc0cP23gaDs26KIduLez2moF+iTjqn4J77epV6vGjuj27WL3
29+
hK8Z7KUFqUU6DSVJ2Z/qGBw/ZP78l//o2Jbu4KFfg5UviUzrLXWfrMJw9uqgfD4c
30+
OiahmBsqB/9JHGFGOhQy1/F8k/7Y3k1o1hdYwNCmB7iwPJ9eklhYHCrQc/yIarZz
31+
Z4rwv90aq+cFtoVvrTPA0rjSu4jwo2tI/nYfdZOfcCXhcw==
32+
-----END CERTIFICATE-----

test/utils/test.key

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
-----BEGIN PRIVATE KEY-----
2+
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
51+
Tg+GmU9QQHC8AIKkHqHsjger8K9paw==
52+
-----END PRIVATE KEY-----

0 commit comments

Comments
 (0)