Skip to content

Commit 31674b2

Browse files
committed
Keep static middleware when options contain no middleware field
1 parent 7881152 commit 31674b2

2 files changed

Lines changed: 20 additions & 2 deletions

File tree

modules/openapi-generator/src/main/resources/typescript/configuration.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ export function mergeConfiguration(conf: Configuration, options?: Configuration)
113113
{{/useInversify}}
114114
{{^useInversify}}
115115
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
116-
let allMiddleware: Middleware[] = [];
116+
let allMiddleware: Middleware[] = conf.middleware;
117117
if (options && options.middleware) {
118118
const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior
119119
// call-time middleware provided
@@ -138,7 +138,7 @@ export function mergeConfiguration(conf: Configuration, options?: ConfigurationO
138138
baseServer: options.baseServer || conf.baseServer,
139139
httpApi: options.httpApi || conf.httpApi,
140140
authMethods: options.authMethods || conf.authMethods,
141-
middleware: allMiddleware || conf.middleware
141+
middleware: allMiddleware,
142142
};
143143
}
144144
return conf;

samples/openapi3/client/petstore/typescript/tests/default/test/api/PetApi.test.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,24 @@ describe("PetApi", () => {
103103
expect(CallOrder).deep.equal(['base-pre', 'base-post'])
104104
})
105105

106+
it("should keep middleware when options are given without middleware", async () => {
107+
let { CallOrder, BaseMiddleware, CalltimeMiddleware } = MiddlewareCallTracker()
108+
const configuration = petstore.createConfiguration({ promiseMiddleware: [BaseMiddleware] });
109+
const petApi = new petstore.PetApi(configuration);
110+
const callTimeAppendedRightPet = await petApi.getPetById(pet.id, {});
111+
expect(callTimeAppendedRightPet).to.deep.equal(pet);
112+
expect(CallOrder).deep.equal(['base-pre', 'base-post'])
113+
})
114+
115+
it("should replace middleware when options contain an empty array of middlewares", async () => {
116+
let { CallOrder, BaseMiddleware, CalltimeMiddleware } = MiddlewareCallTracker()
117+
const configuration = petstore.createConfiguration({ promiseMiddleware: [BaseMiddleware] });
118+
const petApi = new petstore.PetApi(configuration);
119+
const callTimeAppendedRightPet = await petApi.getPetById(pet.id, { middleware: [] });
120+
expect(callTimeAppendedRightPet).to.deep.equal(pet);
121+
expect(CallOrder).deep.equal([])
122+
})
123+
106124
it("replace Middleware call order", async () => {
107125
let { CallOrder, BaseMiddleware, CalltimeMiddleware } = MiddlewareCallTracker()
108126
const configuration = petstore.createConfiguration({ promiseMiddleware: [BaseMiddleware] })

0 commit comments

Comments
 (0)