app.configure(function(){ app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.set('view options', {layout: false}); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); app.enable('trust proxy'); });
it("should use strict, case-sensitive routing, and a custom URL", (done) => { swagger(spec.files.petStore, (err, middleware) => { let express = helper.express(); express.use(middleware.files(express, { useBasePath: true, apiPath: "/custom/path.json" })); express.enable("strict routing"); express.enable("case sensitive routing"); helper.supertest(express)[method]("/API/Custom/Path.json/") .expect(404) .end((err) => { if (err) { return done(err); } express.disable("strict routing"); express.disable("case sensitive routing"); helper.supertest(express)[method]("/API/Custom/Path.json/") .expect("Content-Type", "application/json; charset=utf-8") .expect(isHead ? undefined : spec.samples.petStore) .end(helper.checkResults(done)); }); }); });
it('should use strict matching if "strict routing" is enabled on the Middleware class', (done) => { let express = helper.express(); express.enable("strict routing");
server.enable('trust proxy') server.use((req, res, next) => { if (!req.secure) {
it("should use case-sensitive routing if enabled", (done) => { swagger(spec.files.externalRefs, (err, middleware) => { let express = helper.express(); express.use(middleware.files(express)); express.enable("case sensitive routing"); helper.supertest(express)[method]("/API-Docs/External-REFs.yaml") .expect(404) .end((err) => { if (err) { return done(err); } express.disable("case sensitive routing"); helper.supertest(express)[method]("/API-Docs/External-REFs.yaml") .expect("Content-Type", "text/yaml; charset=UTF-8") .expect(200) .expect(equalsFile(spec.files.externalRefs)) .end(helper.checkResults(done)); }); }); });
it("should use routing options instead of the Express app's settings", (done) => { swagger(spec.files.externalRefs, (err, middleware) => { let express = helper.express(); express.use(middleware.files( // These settings will be used instead of the Express App's settings { caseSensitive: false, strict: false }, { useBasePath: true, rawFilesPath: "/custom/path.json" } )); // The Express App is case-sensitive and strict express.enable("strict routing"); express.enable("case sensitive routing"); helper.supertest(express)[method]("/Api/V2/Custom/Path.json/Dir/SubDir/Text.TXT/") .expect("Content-Type", "text/plain; charset=UTF-8") .expect(200) .expect(equalsFile(spec.files.text)) .end(helper.checkResults(done)); }); });
it("should use strict routing if enabled", (done) => { swagger(spec.files.petStore, (err, middleware) => { let express = helper.express(); express.use(middleware.files(express)); express.enable("strict routing"); helper.supertest(express)[method]("/api-docs") .expect(404) .end((err) => { if (err) { return done(err); } express.disable("strict routing"); helper.supertest(express)[method]("/api-docs") .expect("Content-Type", "application/json; charset=utf-8") .expect(isHead ? undefined : spec.samples.petStore) .end(helper.checkResults(done)); }); }); });
it("should use routing options instead of the Express app's settings", (done) => { swagger(spec.files.petStore, (err, middleware) => { let express = helper.express(); express.use(middleware.files( // These settings will be used instead of the Express App's settings { caseSensitive: false, strict: false }, { useBasePath: true, apiPath: "/custom/path.json" } )); // The Express App is case-sensitive and strict express.enable("strict routing"); express.enable("case sensitive routing"); helper.supertest(express)[method]("/API/Custom/Path.json/") .expect("Content-Type", "application/json; charset=utf-8") .expect(isHead ? undefined : spec.samples.petStore) .end(helper.checkResults(done)); }); });
it('should use case-sensitive matching if "case sensitive routing" is enabled', (done) => { swagger(spec.samples.petStore, (err, middleware) => { let express = helper.express(); express.enable("case sensitive routing"); express.use(middleware.metadata(express));
it("should use strict, case-sensitive routing, and a custom URL", (done) => { swagger(spec.files.externalRefs, (err, middleware) => { let express = helper.express(); express.use(middleware.files(express, { useBasePath: true, rawFilesPath: "/custom/path.json" })); express.enable("strict routing"); express.enable("case sensitive routing"); helper.supertest(express)[method]("/Api/V2/Custom/Path.json/Dir/SubDir/Text.TXT/") .expect(404) .end((err) => { if (err) { return done(err); } express.disable("strict routing"); express.disable("case sensitive routing"); helper.supertest(express)[method]("/Api/V2/Custom/Path.json/Dir/SubDir/Text.TXT/") .expect("Content-Type", "text/plain; charset=UTF-8") .expect(200) .expect(equalsFile(spec.files.text)) .end(helper.checkResults(done)); }); }); });
it("should use case-sensitive routing if enabled", (done) => { swagger(spec.files.petStore, (err, middleware) => { let express = helper.express(); express.use(middleware.files(express)); express.enable("case sensitive routing"); helper.supertest(express)[method]("/API-docs") .expect(404) .end((err) => { if (err) { return done(err); } express.disable("case sensitive routing"); helper.supertest(express)[method]("/API-docs") .expect("Content-Type", "application/json; charset=utf-8") .expect(isHead ? undefined : spec.samples.petStore) .end(helper.checkResults(done)); }); }); });
it("should use strict routing if enabled", (done) => { swagger(spec.files.externalRefs, (err, middleware) => { let express = helper.express(); express.use(middleware.files(express)); express.enable("strict routing"); helper.supertest(express)[method]("/api-docs/external-refs.yaml/") .expect(404) .end((err) => { if (err) { return done(err); } express.disable("strict routing"); helper.supertest(express)[method]("/api-docs/external-refs.yaml/") .expect("Content-Type", "text/yaml; charset=UTF-8") .expect(200) .expect(equalsFile(spec.files.externalRefs)) .end(helper.checkResults(done)); }); }); });
it('should use case-sensitive matching if "case sensitive routing" is enabled on the Middleware class', (done) => { let express = helper.express(); express.enable("case sensitive routing");
it('should use strict matching if "strict routing" is enabled', (done) => { swagger(spec.samples.petStore, (err, middleware) => { let express = helper.express(); express.enable("strict routing"); express.use(middleware.metadata(express));
server.enable('trust proxy') server.use((req, res, next) => { if (!req.secure) {