mirror of
https://github.com/TecharoHQ/anubis.git
synced 2026-02-15 17:19:25 -06:00
1
.github/workflows/smoke-tests.yml
vendored
1
.github/workflows/smoke-tests.yml
vendored
@@ -14,6 +14,7 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
test:
|
||||
- forced-language
|
||||
- git-clone
|
||||
- git-push
|
||||
- healthcheck
|
||||
|
||||
8
test/forced-language/anubis.yaml
Normal file
8
test/forced-language/anubis.yaml
Normal file
@@ -0,0 +1,8 @@
|
||||
bots:
|
||||
- name: challenge
|
||||
user_agent_regex: CHALLENGE
|
||||
action: CHALLENGE
|
||||
|
||||
status_codes:
|
||||
CHALLENGE: 200
|
||||
DENY: 403
|
||||
27
test/forced-language/test.mjs
Normal file
27
test/forced-language/test.mjs
Normal file
@@ -0,0 +1,27 @@
|
||||
async function getChallengePage() {
|
||||
return fetch("http://localhost:8923/reqmeta", {
|
||||
headers: {
|
||||
"Accept-Language": "en",
|
||||
"User-Agent": "CHALLENGE",
|
||||
}
|
||||
})
|
||||
.then(resp => {
|
||||
if (resp.status !== 200) {
|
||||
throw new Error(`wanted status 200, got status: ${resp.status}`);
|
||||
}
|
||||
return resp;
|
||||
})
|
||||
.then(resp => resp.text());
|
||||
}
|
||||
|
||||
(async () => {
|
||||
const page = await getChallengePage();
|
||||
|
||||
if (!page.includes(`<html lang="de">`)) {
|
||||
console.log(page)
|
||||
throw new Error("force language smoke test failed");
|
||||
}
|
||||
|
||||
console.log("FORCED_LANGUAGE=de caused a page to be rendered in german");
|
||||
process.exit(0);
|
||||
})();
|
||||
23
test/forced-language/test.sh
Executable file
23
test/forced-language/test.sh
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
function cleanup() {
|
||||
pkill -P $$
|
||||
}
|
||||
|
||||
trap cleanup EXIT SIGINT
|
||||
|
||||
# Build static assets
|
||||
(cd ../.. && npm ci && npm run assets)
|
||||
|
||||
go tool anubis --help 2>/dev/null ||:
|
||||
|
||||
go run ../cmd/unixhttpd &
|
||||
|
||||
FORCED_LANGUAGE=de go tool anubis \
|
||||
--policy-fname ./anubis.yaml \
|
||||
--use-remote-address \
|
||||
--target=unix://$(pwd)/unixhttpd.sock &
|
||||
|
||||
backoff-retry node ./test.mjs
|
||||
2
test/forced-language/var/.gitignore
vendored
Normal file
2
test/forced-language/var/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
*
|
||||
!.gitignore
|
||||
Reference in New Issue
Block a user