diff options
author | Quentin Dufour <quentin@deuxfleurs.fr> | 2019-12-04 18:04:30 +0100 |
---|---|---|
committer | Quentin Dufour <quentin@deuxfleurs.fr> | 2019-12-04 18:04:30 +0100 |
commit | fcc2328a3bf49eb5310413058cc9ebaf8e7819f8 (patch) | |
tree | c6faabae8badd96455453b72472ac08a2fe0b1c2 /docker/netiquette/test/iptables.mjs | |
parent | 0b3eb8ec1b3ba3691410744f6397437c9832e74d (diff) | |
download | infrastructure-fcc2328a3bf49eb5310413058cc9ebaf8e7819f8.tar.gz infrastructure-fcc2328a3bf49eb5310413058cc9ebaf8e7819f8.zip |
WIP netiquette
Diffstat (limited to 'docker/netiquette/test/iptables.mjs')
-rw-r--r-- | docker/netiquette/test/iptables.mjs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/docker/netiquette/test/iptables.mjs b/docker/netiquette/test/iptables.mjs new file mode 100644 index 0000000..1ae1cb0 --- /dev/null +++ b/docker/netiquette/test/iptables.mjs @@ -0,0 +1,28 @@ +'use strict' + +import chai from 'chai' +import iptables from '../src/injector/iptables.mjs' +const expect = chai.expect + +export default [ + (async () => { + const effective_actions = [] + const expected_actions = [ + 'iptables -A INPUT -p tcp --dport 56 -j ACCEPT', + 'iptables -A INPUT -p tcp --dport 53 -j ACCEPT', + 'iptables -A INPUT -p udp --match multiport --dports 25630:25999 -j ACCEPT', + 'iptables -D INPUT -p tcp --dport 54 -j ACCEPT' + ] + + const mockLog = () => {} + const mockReadFile = (file, opt) => '-A INPUT -p tcp --dport 53 -j ACCEPT' + const mockExecCommand = (cmd, opts) => { + if (cmd.match(/^iptables -S/g)) return { stdout: '-A INPUT -p tcp --dport 54 -j ACCEPT' } + else effective_actions.push(cmd) + return { stdout: '' } } + + const fw = await iptables('static', mockReadFile, mockExecCommand, mockLog) + await fw(['public_port=56/tcp', 'public_port=25630-25999/udp', 'public_port=13', 'traefik.entrypoints=Host:im.deuxfleurs.fr;PathPrefix:/_matrix']) + expect(effective_actions).to.have.members(expected_actions) + }) +] |