From b9ab52a0d5812c70bcf0937ca43f5e6b085a693a Mon Sep 17 00:00:00 2001 From: DIYgod Date: Wed, 19 Jun 2019 18:52:13 +0800 Subject: [PATCH] feat: wrong path error --- lib/middleware/parameter.js | 4 ++++ test/middleware/parameter.js | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/lib/middleware/parameter.js b/lib/middleware/parameter.js index 542ef8f391..2b0d69f8c9 100644 --- a/lib/middleware/parameter.js +++ b/lib/middleware/parameter.js @@ -3,6 +3,10 @@ const he = require('he'); module.exports = async (ctx, next) => { await next(); + if (!ctx._matchedRoute) { + throw Error('wrong path'); + } + if (ctx.state.data && (!ctx.state.data.item || ctx.state.data.item.length === 0) && !ctx.state.allowEmpty) { throw Error('this route is empty, please check the origin site or create an issue to feedback on https://github.com/DIYgod/RSSHub/issues/new/choose'); } diff --git a/test/middleware/parameter.js b/test/middleware/parameter.js index 14c082c5f8..d9f086f0a3 100644 --- a/test/middleware/parameter.js +++ b/test/middleware/parameter.js @@ -127,3 +127,11 @@ describe('allow_empty', () => { expect(parsed.items.length).toBe(0); }); }); + +describe('wrong_path', () => { + it(`wrong_path`, async () => { + const response = await request.get('/wrong'); + expect(response.status).toBe(404); + expect(response.text).toMatch(/RSSHub 发生了一些意外:
Error: wrong path/);
+    });
+});