Skip to content

Commit 596e0c3

Browse files
committed
refactor: move test SSLs to a package
1 parent f4607f5 commit 596e0c3

File tree

12 files changed

+70
-4
lines changed

12 files changed

+70
-4
lines changed

packages/test-ssls/Dockerfile

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
FROM postgres:16
2+
3+
RUN mkdir -p /etc/postgresql/certs && chown postgres:postgres /etc/postgresql/certs
4+
5+
# Copy the SSL certificates into the container
6+
COPY root.crt /etc/postgresql/certs/root.crt
7+
COPY slonik.key /etc/postgresql/certs/server.key
8+
COPY slonik.crt /etc/postgresql/certs/server.crt
9+
10+
11+
RUN chmod 600 /etc/postgresql/certs/server.key && \
12+
chmod 644 /etc/postgresql/certs/server.crt /etc/postgresql/certs/root.crt && \
13+
chown postgres:postgres /etc/postgresql/certs/*
14+
15+
RUN echo "ssl = on" >> /usr/share/postgresql/postgresql.conf.sample && \
16+
echo "ssl_cert_file = '/etc/postgresql/certs/server.crt'" >> /usr/share/postgresql/postgresql.conf.sample && \
17+
echo "ssl_key_file = '/etc/postgresql/certs/server.key'" >> /usr/share/postgresql/postgresql.conf.sample && \
18+
echo "ssl_ca_file = '/etc/postgresql/certs/root.crt'" >> /usr/share/postgresql/postgresql.conf.sample
19+
20+
EXPOSE 5432
21+
22+
USER postgres

packages/utilities/src/utilities/fixtures/ssl/README.md renamed to packages/test-ssls/README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
# Test SSLs
2+
3+
SSLs used for testing Slonik.
4+
5+
## Generating SSL certificates
6+
17
```bash
28
# Generate a Root Certificate (CA)
39
openssl genrsa -out root.key 2048
@@ -14,4 +20,11 @@ openssl x509 -req -in slonik.csr -CA root.crt -CAkey root.key -CAcreateserial -o
1420

1521
# Verify the Certificates
1622
openssl verify -CAfile root.crt slonik.crt
23+
```
24+
25+
## Running PostgreSQL with SSL
26+
27+
```bash
28+
docker build -t slonik-ssl-test .
29+
docker run --name slonik-ssl-test --rm -it -e POSTGRES_PASSWORD=postgres -p 5433:5432 slonik-ssl-test
1730
```

packages/test-ssls/package.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"author": {
3+
"email": "[email protected]",
4+
"name": "Gajus Kuizinas",
5+
"url": "http://gajus.com"
6+
},
7+
"description": "SSLs used for testing Slonik.",
8+
"engines": {
9+
"node": ">=18"
10+
},
11+
"license": "BSD-3-Clause",
12+
"name": "@slonik/test-ssls",
13+
"peerDependencies": {
14+
"zod": "^3"
15+
},
16+
"repository": {
17+
"type": "git",
18+
"url": "https://github.com/gajus/slonik"
19+
},
20+
"version": "46.2.0"
21+
}

packages/utilities/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"description": "A Node.js PostgreSQL client with strict types, detailed logging and assertions.",
2323
"devDependencies": {
2424
"@slonik/eslint-config": "workspace:^",
25+
"@slonik/test-ssls": "workspace:^",
2526
"@types/node": "^22.9.0",
2627
"ava": "^6.1.3",
2728
"cspell": "^8.16.0",

packages/utilities/src/utilities/parseDsn.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,9 @@ test('postgresql:///database-name?host=/var/lib/postgresql', testParse, {
7878
host: '/var/lib/postgresql',
7979
});
8080

81-
const sslCaCertPath = resolve(__dirname, './fixtures/ssl/root.crt');
82-
const sslCertPath = resolve(__dirname, './fixtures/ssl/slonik.crt');
83-
const sslKeyPath = resolve(__dirname, './fixtures/ssl/slonik.key');
81+
const sslCaCertPath = require.resolve('@slonik/test-ssls/root.crt');
82+
const sslCertPath = require.resolve('@slonik/test-ssls/slonik.crt');
83+
const sslKeyPath = require.resolve('@slonik/test-ssls/slonik.key');
8484

8585
test(`postgresql://?sslcert=${sslCertPath}&sslkey=${sslKeyPath}`, testParse, {
8686
ssl: {

pnpm-lock.yaml

Lines changed: 10 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)