@@ -69,5 +69,49 @@ t.test('UI serving', t => {
6969 t . ok ( initializerBodyV2 . indexOf ( 'url: "/v2/openapi.json",' ) > 0 )
7070 } )
7171
72+ t . test ( 'should respect ignoreTrailingSlash option' , async t => {
73+ {
74+ const server = fastify ( { ignoreTrailingSlash : false } )
75+
76+ await server . register ( fastifyOpenApiDocs , { } )
77+
78+ const initialRequest = await server . inject ( '/docs' )
79+
80+ t . equal ( initialRequest . statusCode , 301 )
81+ t . equal ( initialRequest . body , '' )
82+ t . equal ( initialRequest . headers . location , '/docs/' )
83+
84+ const redirectedRequest = await server . inject ( '/docs/' )
85+ t . equal ( redirectedRequest . statusCode , 200 )
86+ }
87+
88+ {
89+ const server = fastify ( { ignoreTrailingSlash : true } )
90+
91+ await server . register ( fastifyOpenApiDocs , { } )
92+
93+ const initialRequest = await server . inject ( '/docs' )
94+
95+ t . equal ( initialRequest . statusCode , 301 )
96+ t . equal ( initialRequest . body , '' )
97+ t . equal ( initialRequest . headers . location , '/docs/index.html' )
98+ }
99+
100+ {
101+ const server = fastify ( { ignoreTrailingSlash : true } )
102+
103+ await server . register ( fastifyOpenApiDocs , { } )
104+
105+ const initialRequest = await server . inject ( '/docs/' )
106+
107+ t . equal ( initialRequest . statusCode , 301 )
108+ t . equal ( initialRequest . body , '' )
109+ t . equal ( initialRequest . headers . location , '/docs/index.html' )
110+
111+ const redirectedRequest = await server . inject ( '/docs/index.html' )
112+ t . equal ( redirectedRequest . statusCode , 200 )
113+ }
114+ } )
115+
72116 t . end ( )
73117} )
0 commit comments