Files
pics/lib/input/decodequeryip.test.js

25 lines
999 B
JavaScript

const decodeQueryIp = require('./decodequeryip.js');
const Permission = require('../permission/permission.js');
const ROOT = new Permission();
ROOT.setAll(Permission.allPermissions);
const NO_PERMISSION = new Permission();
describe('decode query ip', () => {
const cases = [
{ in: { query: null, permission: ROOT }, out: null },
{ in: { query: {}, permission: ROOT }, out: null },
{ in: { query: { ip: '10.0.0.1' }, permission: ROOT }, out: '10.0.0.1' },
{ in: { query: { ip: '10.0.0.1' }, permission: NO_PERMISSION }, out: null },
{ in: { query: { ip: '8s7AGX4n.qHsw9mp.uw54Nfl.IP' }, permission: ROOT }, out: '8s7AGX4n.qHsw9mp.uw54Nfl.IP' },
{ in: { query: { ip: '8s7AGX4n.qHsw9mp.uw54Nfl.IP' }, permission: NO_PERMISSION }, out: '8s7AGX4n.qHsw9mp.uw54Nfl.IP' },
];
for (let i in cases) {
test(`should output ${cases[i].out} for an input of ${cases[i].in}`, () => {
expect(decodeQueryIp(cases[i].in.query, cases[i].in.permission)).toStrictEqual(cases[i].out);
});
}
});