From 28e06a2399fd507a1d5db2b31141321fbc1b1eb7 Mon Sep 17 00:00:00 2001 From: TiBian Date: Mon, 19 Sep 2022 00:09:12 +0200 Subject: [PATCH 1/2] Make Middleware: Resolve middleware namespace if is set. --- commands/Make/Middleware.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commands/Make/Middleware.ts b/commands/Make/Middleware.ts index f0029862..af656275 100644 --- a/commands/Make/Middleware.ts +++ b/commands/Make/Middleware.ts @@ -51,7 +51,7 @@ export default class MakeMiddleware extends BaseGenerator { * We can look into configuring it later. */ protected getDestinationPath(): string { - return 'app/Middleware' + return this.getPathForNamespace('middleware') || 'app/Middleware' } public async run() { From b5218cf0c2a8899b017b253705a19f27ba08e1e5 Mon Sep 17 00:00:00 2001 From: TiBian Date: Mon, 19 Sep 2022 19:45:45 +0200 Subject: [PATCH 2/2] Test for making a middleware inside a custom directory --- test/make-middleware.spec.ts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/test/make-middleware.spec.ts b/test/make-middleware.spec.ts index 826eca2e..4657e84d 100644 --- a/test/make-middleware.spec.ts +++ b/test/make-middleware.spec.ts @@ -50,4 +50,32 @@ test.group('Make Middleware', (group) => { toNewlineArray(MiddlewareTemplate.replace('{{ filename }}', 'SpoofAccept')) ) }) + + test('make a middleware inside a custom directory', async ({ assert }) => { + await fs.add( + '.adonisrc.json', + JSON.stringify({ + namespaces: { + middleware: 'App/Module/Testing/Middleware', + }, + autoloads: { + App: './app', + }, + }) + ) + + const rcContents = readJSONSync(join(fs.basePath, '.adonisrc.json')) + const app = new Application(fs.basePath, 'test', rcContents) + + const middleware = new MakeMiddleware(app, new Kernel(app).mockConsoleOutput()) + middleware.name = 'spoof_accept' + await middleware.run() + + const SpoofMiddleware = await fs.get('app/Module/Testing/Middleware/SpoofAccept.ts') + const MiddlewareTemplate = await templates.get('middleware.txt') + assert.deepEqual( + toNewlineArray(SpoofMiddleware), + toNewlineArray(MiddlewareTemplate.replace('{{ filename }}', 'SpoofAccept')) + ) + }) })