diff --git a/package.json b/package.json
index ebc5dd4f1..933b0f85d 100644
--- a/package.json
+++ b/package.json
@@ -117,7 +117,7 @@
},
"jest": {
"testMatch": [
- "**/test/**/parameter.js"
+ "**/test/**/*.js"
],
"testPathIgnorePatterns": [
"/node_modules/",
diff --git a/test/middleware/debug.js b/test/middleware/debug.js
index dfca5f3e6..337d09172 100644
--- a/test/middleware/debug.js
+++ b/test/middleware/debug.js
@@ -18,8 +18,9 @@ afterAll(() => {
describe('debug', () => {
it('debug', async () => {
- await request.get('/test/1').set('X-Forwarded-For', '233.233.233.233');
- await request.get('/test/1').set('X-Forwarded-For', '233.233.233.233');
+ const response1 = await request.get('/test/1').set('X-Forwarded-For', '233.233.233.233');
+ const etag = response1.headers.etag;
+ await request.get('/test/1').set('If-None-Match', etag).set('X-Forwarded-For', '233.233.233.233');
await request.get('/test/1').set('X-Forwarded-For', '233.233.233.234');
await request.get('/test/2').set('X-Forwarded-For', '233.233.233.233');
await request.get('/test/2').set('X-Forwarded-For', '233.233.233.234');
@@ -42,8 +43,11 @@ describe('debug', () => {
case 'request amount:':
expect(value).toBe('8');
break;
+ case 'ETag Matched:':
+ expect(value).toBe('1');
+ break;
case 'hot routes:':
- expect(value).toBe('3 /test/:id
');
+ expect(value).toBe('7 /test/:id
');
break;
case 'hot paths:':
expect(value).toBe('3 /test/1
2 /test/2
2 /test/empty
1 /
');
@@ -52,7 +56,7 @@ describe('debug', () => {
expect(value).toBe('5 233.233.233.233
3 233.233.233.234
');
break;
case 'hot error routes:':
- expect(value).toBe('1 /test/:id
');
+ expect(value).toBe('2 /test/:id
');
break;
case 'hot error paths:':
expect(value).toBe('2 /test/empty
');
diff --git a/test/middleware/header.js b/test/middleware/header.js
index 3e19a802e..1e206f5f9 100644
--- a/test/middleware/header.js
+++ b/test/middleware/header.js
@@ -5,6 +5,7 @@ jest.mock('request-promise-native');
const server = require('../../lib/index');
const request = supertest(server);
const config = require('../../lib/config').value;
+let etag;
afterAll(() => {
server.close();
@@ -19,5 +20,14 @@ describe('header', () => {
expect(response.headers['cache-control']).toBe(`public, max-age=${config.cache.routeExpire}`);
expect(response.headers['last-modified']).toBe(response.text.match(/(.*)<\/lastBuildDate>/)[1]);
expect(response.headers['rsshub-node']).toBe('mock');
+ expect(response.headers.etag).not.toBe(undefined);
+ etag = response.headers.etag;
+ });
+
+ it(`etag`, async () => {
+ const response = await request.get('/test/1').set('If-None-Match', etag);
+ expect(response.status).toBe(304);
+ expect(response.text).toBe('');
+ expect(response.headers['last-modified']).toBe(undefined);
});
});