Skip to content

Commit 46793c7

Browse files
committed
test(utils): cover extractHostnamesFromCerts with single and multiple certs
1 parent e686219 commit 46793c7

File tree

1 file changed

+56
-1
lines changed

1 file changed

+56
-1
lines changed

packages/vite/src/node/__tests__/utils.spec.ts

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
asyncFlatten,
88
bareImportRE,
99
combineSourcemaps,
10+
extractHostnamesFromCerts,
1011
extractHostnamesFromSubjectAltName,
1112
flattenId,
1213
generateCodeFrame,
@@ -910,6 +911,60 @@ describe('getServerUrlByHost', () => {
910911
}
911912
})
912913

914+
describe('extractHostnamesFromCerts', () => {
915+
// Test certificate containing domains: 'localhost', 'foo.localhost', 'vite.vite.localhost',
916+
const createWorkingCert = `-----BEGIN CERTIFICATE-----
917+
MIID7zCCAtegAwIBAgIJS9D2rIN7tA8mMA0GCSqGSIb3DQEBCwUAMGkxFDASBgNV
918+
BAMTC2V4YW1wbGUub3JnMQswCQYDVQQGEwJVUzERMA8GA1UECBMIVmlyZ2luaWEx
919+
EzARBgNVBAcTCkJsYWNrc2J1cmcxDTALBgNVBAoTBFRlc3QxDTALBgNVBAsTBFRl
920+
c3QwHhcNMjUwMTMwMDQxNTI1WhcNMjUwMzAxMDQxNTI1WjBpMRQwEgYDVQQDEwtl
921+
eGFtcGxlLm9yZzELMAkGA1UEBhMCVVMxETAPBgNVBAgTCFZpcmdpbmlhMRMwEQYD
922+
VQQHEwpCbGFja3NidXJnMQ0wCwYDVQQKEwRUZXN0MQ0wCwYDVQQLEwRUZXN0MIIB
923+
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxNPlCqTmUZ7/F7GyFWDopqZ6
924+
w19Y7/98B10JEeFGTAQIj/RP2UgZNcTABQDUvtkF7y+bOeoVJW7Zz8ozQYhRaDp8
925+
CN2gXMcYeTUku/pKLXyCzHHVrOPAXTeU7sMRgLvPCrrJtx5OjvndW+O/PhohPRi3
926+
iEpPvpM8gi7MVRGhnWVSx0/Ynx5c0+/vqyBTzrM2OX7Ufg8Nv7LaTXpCAnmIQp+f
927+
Sqq7HZ7t6Y7laS4RApityvlnFHZ4f2cEibAKv/vXLED7bgAlGb8R1viPRdMtAPuI
928+
MYvHBgGFjyX1fmq6Mz3aqlAscJILtbQlwty1oYyaENE0lq8+nZXQ+t6I+CIVLQID
929+
AQABo4GZMIGWMAsGA1UdDwQEAwIC9DAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYB
930+
BQUHAwIGCCsGAQUFBwMDBggrBgEFBQcDCDBUBgNVHREETTBLgglsb2NhbGhvc3SC
931+
DWZvby5sb2NhbGhvc3SCECoudml0ZS5sb2NhbGhvc3SCBVs6OjFdhwR/AAABhxD+
932+
gAAAAAAAAAAAAAAAAAABMA0GCSqGSIb3DQEBCwUAA4IBAQBi302qLCgxWsUalgc2
933+
olFxVKob1xCciS8yUVX6HX0vza0WJ7oGW6qZsBbQtfgDwB/dHv7rwsfpjRWvFhmq
934+
gEUrewa1h0TIC+PPTYYz4M0LOwcLIWZLZr4am1eI7YP9NDgRdhfAfM4hw20vjf2a
935+
kYLKyRTC5+3/ly5opMq+CGLQ8/gnFxhP3ho8JYrRnqLeh3KCTGen3kmbAhD4IOJ9
936+
lxMwFPTTWLFFjxbXjXmt5cEiL2mpcq13VCF2HmheCen37CyYIkrwK9IfLhBd5QQh
937+
WEIBLwjKCAscrtyayXWp6zUTmgvb8PQf//3Mh2DiEngAi3WI/nL+8Y0RkwbvxBar
938+
X2JN
939+
-----END CERTIFICATE-----
940+
`.trim() as any
941+
942+
test('should extract hostnames from certificate', () => {
943+
const httpsOptions = { cert: [createWorkingCert] } as any
944+
const result = extractHostnamesFromCerts(httpsOptions.cert)
945+
946+
expect(result).toStrictEqual([
947+
'localhost',
948+
'foo.localhost',
949+
'vite.vite.localhost',
950+
])
951+
})
952+
953+
test('should extract hostnames from multiple certificates', () => {
954+
const httpsOptions = { cert: [createWorkingCert, createWorkingCert] } as any
955+
const result = extractHostnamesFromCerts(httpsOptions.cert)
956+
957+
expect(result).toStrictEqual([
958+
'localhost',
959+
'foo.localhost',
960+
'vite.vite.localhost',
961+
'localhost',
962+
'foo.localhost',
963+
'vite.vite.localhost',
964+
])
965+
})
966+
})
967+
913968
describe('resolveServerUrls', () => {
914969
const createMockServer = (
915970
family: 'IPv4' | 'IPv6' = 'IPv4',
@@ -925,7 +980,7 @@ describe('resolveServerUrls', () => {
925980
config: { rawBase: '/' } as any,
926981
})
927982

928-
// Test certificate containing domains: localhost, foo.localhost, *.vite.localhost
983+
// Test certificate containing domains: 'localhost', 'foo.localhost', 'vite.vite.localhost',
929984
const createWorkingCert = `-----BEGIN CERTIFICATE-----
930985
MIID7zCCAtegAwIBAgIJS9D2rIN7tA8mMA0GCSqGSIb3DQEBCwUAMGkxFDASBgNV
931986
BAMTC2V4YW1wbGUub3JnMQswCQYDVQQGEwJVUzERMA8GA1UECBMIVmlyZ2luaWEx

0 commit comments

Comments
 (0)