Skip to content

Commit 37e1287

Browse files
authored
nginx: add tests for config (#715)
1 parent 4f69fcc commit 37e1287

17 files changed

+1918
-0
lines changed

.github/workflows/test-nginx.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Test nginx config
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
jobs:
8+
build:
9+
timeout-minutes: 10
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
- uses: actions/setup-node@v4
14+
with:
15+
node-version: 20
16+
- run: cd test && npm i
17+
- run: cd test && ./run-tests.sh
18+
19+
- if: always()
20+
run: docker logs test-nginx-1
21+
- if: always()
22+
run: docker logs test-service-1
23+
- if: always()
24+
run: docker logs test-enketo-1

test/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/node_modules/

test/files/nginx-test/acme-challenge

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
hi-from-letsencrypt
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
hi:/index.html
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
hi:/should-be-cached.txt
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
hi:/version.txt

test/mock-http-server/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/node_modules/

test/mock-http-server/index.js

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
const express = require('express');
2+
3+
const port = process.env.PORT || 80;
4+
const log = (...args) => console.log('[mock-http-server]', ...args);
5+
6+
const requests = [];
7+
8+
const app = express();
9+
10+
app.get('/health', withStdLogging((req, res) => res.send('OK')));
11+
app.get('/request-log', withStdLogging((req, res) => res.json(requests)));
12+
app.get('/reset', withStdLogging((req, res) => {
13+
requests.length = 0;
14+
res.json('OK');
15+
}));
16+
17+
app.get('/*', ok('GET'));
18+
app.post('/*', ok('POST'));
19+
// TODO add more methods as required
20+
21+
app.listen(port, () => {
22+
log(`Listening on port: ${port}`);
23+
});
24+
25+
function withStdLogging(fn) {
26+
return (req, res) => {
27+
console.log(new Date(), req.method, req.path);
28+
return fn(req, res);
29+
};
30+
}
31+
32+
function ok(method) {
33+
return withStdLogging((req, res) => {
34+
requests.push({ method, path:req.path });
35+
res.send('OK');
36+
});
37+
}

0 commit comments

Comments
 (0)