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() { 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')) + ) + }) })