mirror of
https://github.com/DIYgod/RSSHub.git
synced 2025-12-06 05:03:44 +08:00
test: whitelist in middleware/access-control
This commit is contained in:
@@ -10,7 +10,8 @@
|
|||||||
"docs:build": "vuepress build docs",
|
"docs:build": "vuepress build docs",
|
||||||
"format": "eslint \"**/*.js\" --fix && prettier \"**/*.{js,json,md}\" --write",
|
"format": "eslint \"**/*.js\" --fix && prettier \"**/*.{js,json,md}\" --write",
|
||||||
"lint": "eslint \"**/*.js\" && prettier-check \"**/*.{js,json,md}\"",
|
"lint": "eslint \"**/*.js\" && prettier-check \"**/*.{js,json,md}\"",
|
||||||
"test": "npm run lint && NODE_ENV=test jest --coverage --runInBand --forceExit"
|
"test": "npm run lint && NODE_ENV=test jest --coverage --runInBand --forceExit",
|
||||||
|
"jest": "NODE_ENV=test jest --runInBand --forceExit"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|||||||
@@ -12,26 +12,46 @@ async function checkBlock(response) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
process.env.BLACKLIST = undefined;
|
delete process.env.BLACKLIST;
|
||||||
|
delete process.env.WHITELIST;
|
||||||
|
jest.resetModules();
|
||||||
server.close();
|
server.close();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('access-control', () => {
|
describe('access-control', () => {
|
||||||
it(`blacklist`, async () => {
|
it(`blacklist`, async () => {
|
||||||
process.env.BLACKLIST = '/test/1,/test/2,233.233.233.233';
|
process.env.BLACKLIST = '/test/1,233.233.233.233';
|
||||||
server = require('../../lib/index').server;
|
server = require('../../lib/index').server;
|
||||||
const request = supertest(server);
|
const request = supertest(server);
|
||||||
|
|
||||||
const response1 = await request.get('/test/1');
|
const response11 = await request.get('/test/1');
|
||||||
checkBlock(response1);
|
checkBlock(response11);
|
||||||
|
|
||||||
const response2 = await request.get('/test/2');
|
const response12 = await request.get('/test/1').set('X-Forwarded-For', '233.233.233.233');
|
||||||
checkBlock(response2);
|
checkBlock(response12);
|
||||||
|
|
||||||
const response31 = await request.get('/test/3');
|
const response21 = await request.get('/test/2');
|
||||||
expect(response31.status).toBe(200);
|
expect(response21.status).toBe(200);
|
||||||
|
|
||||||
const response32 = await request.get('/test/3').set('X-Forwarded-For', '233.233.233.233');
|
const response22 = await request.get('/test/2').set('X-Forwarded-For', '233.233.233.233');
|
||||||
checkBlock(response32);
|
checkBlock(response22);
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`whitelist`, async () => {
|
||||||
|
process.env.WHITELIST = '/test/1,233.233.233.233';
|
||||||
|
server = require('../../lib/index').server;
|
||||||
|
const request = supertest(server);
|
||||||
|
|
||||||
|
const response11 = await request.get('/test/1');
|
||||||
|
expect(response11.status).toBe(200);
|
||||||
|
|
||||||
|
const response12 = await request.get('/test/1').set('X-Forwarded-For', '233.233.233.233');
|
||||||
|
expect(response12.status).toBe(200);
|
||||||
|
|
||||||
|
const response21 = await request.get('/test/2');
|
||||||
|
checkBlock(response21);
|
||||||
|
|
||||||
|
const response22 = await request.get('/test/2').set('X-Forwarded-For', '233.233.233.233');
|
||||||
|
expect(response22.status).toBe(200);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user