mirror of
https://github.com/Kong/insomnia
synced 2024-11-08 23:00:30 +00:00
792bf7034d
* Add prerelease grpc smoke tests * Wrap up smoke tests * small improvements * Remove duplication
80 lines
2.2 KiB
TypeScript
80 lines
2.2 KiB
TypeScript
import express from 'express';
|
|
import { graphqlHTTP } from 'express-graphql';
|
|
import { readFileSync } from 'fs';
|
|
import { createServer } from 'https';
|
|
import { join } from 'path';
|
|
|
|
import { basicAuthRouter } from './basic-auth';
|
|
import githubApi from './github-api';
|
|
import gitlabApi from './gitlab-api';
|
|
import { root, schema } from './graphql';
|
|
import { startGRPCServer } from './grpc';
|
|
import { oauthRoutes } from './oauth';
|
|
import { startWebSocketServer } from './websocket';
|
|
|
|
const app = express();
|
|
const port = 4010;
|
|
const httpsPort = 4011;
|
|
const grpcPort = 50051;
|
|
|
|
app.get('/pets/:id', (req, res) => {
|
|
res.status(200).send({ id: req.params.id });
|
|
});
|
|
|
|
app.get('/sleep', (_req, res) => {
|
|
res.status(200).send({ sleep: true });
|
|
});
|
|
|
|
app.get('/cookies', (_req, res) => {
|
|
res
|
|
.status(200)
|
|
.header('content-type', 'text/plain')
|
|
.cookie('insomnia-test-cookie', 'value123')
|
|
.send(`${_req.headers['cookie']}`);
|
|
});
|
|
|
|
app.use('/file', express.static('fixtures/files'));
|
|
|
|
app.use('/auth/basic', basicAuthRouter);
|
|
|
|
githubApi(app);
|
|
gitlabApi(app);
|
|
|
|
app.get('/delay/seconds/:duration', (req, res) => {
|
|
const delaySec = Number.parseInt(req.params.duration || '2');
|
|
setTimeout(function() {
|
|
res.send(`Delayed by ${delaySec} seconds`);
|
|
}, delaySec * 1000);
|
|
});
|
|
|
|
app.use('/oidc', oauthRoutes(port));
|
|
|
|
app.get('/', (_req, res) => {
|
|
res.status(200).send();
|
|
});
|
|
|
|
app.use('/graphql', graphqlHTTP({
|
|
schema: schema,
|
|
rootValue: root,
|
|
graphiql: true,
|
|
}));
|
|
|
|
startWebSocketServer(app.listen(port, () => {
|
|
console.log(`Listening at http://localhost:${port}`);
|
|
console.log(`Listening at ws://localhost:${port}`);
|
|
}));
|
|
|
|
startWebSocketServer(createServer({
|
|
cert: readFileSync(join(__dirname, '../fixtures/certificates/localhost.pem')),
|
|
ca: readFileSync(join(__dirname, '../fixtures/certificates/rootCA.pem')),
|
|
key: readFileSync(join(__dirname, '../fixtures/certificates/localhost-key.pem')),
|
|
// Only allow connections using valid client certificates
|
|
requestCert: true,
|
|
rejectUnauthorized: true,
|
|
}, app).listen(httpsPort, () => {
|
|
console.log(`Listening at https://localhost:${httpsPort}`);
|
|
console.log(`Listening at wss://localhost:${httpsPort}`);
|
|
}));
|
|
|
|
startGRPCServer(grpcPort);
|