|
6 | 6 | * found in the LICENSE file at https://angular.dev/license |
7 | 7 | */ |
8 | 8 |
|
| 9 | +import assert from 'node:assert'; |
| 10 | +import { mkdtemp, writeFile } from 'node:fs/promises'; |
| 11 | +import { join } from 'node:path'; |
9 | 12 | import { executeDevServer } from '../../index'; |
10 | 13 | import { describeServeBuilder } from '../jasmine-helpers'; |
11 | 14 | import { BASE_OPTIONS, DEV_SERVER_BUILDER_INFO } from '../setup'; |
@@ -55,5 +58,27 @@ describeServeBuilder(executeDevServer, DEV_SERVER_BUILDER_INFO, (harness, setupT |
55 | 58 | expect(result?.success).toBeTrue(); |
56 | 59 | expect(result?.baseUrl).toMatch(/^https:\/\/[^/]+:\d+\//); |
57 | 60 | }); |
| 61 | + |
| 62 | + it('supports absolute "sslKey" and "sslCert" paths outside the workspace', async () => { |
| 63 | + const baseTmpDir = process.env['TEST_TMPDIR']; |
| 64 | + assert(baseTmpDir, 'TEST_TMPDIR is not set'); |
| 65 | + const certsDir = await mkdtemp(join(baseTmpDir, 'angular-cli-ssl-')); |
| 66 | + const sslKey = join(certsDir, 'server.key'); |
| 67 | + const sslCert = join(certsDir, 'server.crt'); |
| 68 | + await writeFile(sslKey, SSL_KEY); |
| 69 | + await writeFile(sslCert, SSL_CERT); |
| 70 | + |
| 71 | + harness.useTarget('serve', { |
| 72 | + ...BASE_OPTIONS, |
| 73 | + ssl: true, |
| 74 | + sslKey, |
| 75 | + sslCert, |
| 76 | + }); |
| 77 | + |
| 78 | + const { result } = await harness.executeOnce(); |
| 79 | + |
| 80 | + expect(result?.success).toBeTrue(); |
| 81 | + expect(result?.baseUrl).toMatch(/^https:\/\/[^/]+:\d+\//); |
| 82 | + }); |
58 | 83 | }); |
59 | 84 | }); |
0 commit comments