insomnia/packages/insomnia-smoke-test/server/index.ts
2021-07-23 11:04:56 +12:00

49 lines
1.1 KiB
TypeScript

import express from 'express';
import basicAuth from 'express-basic-auth';
import { basicAuthCreds } from '../fixtures/constants';
const app = express();
const basicAuthRouter = express.Router();
const port = 4010;
// Artificially slow each request down
app.use((_req, _res, next) => {
setTimeout(next, 500);
});
app.get('/pets/:id', (req, res) => {
res.status(200).send({ id: req.params.id });
});
app.use('/file', express.static('fixtures'));
const { utf8, latin1 } = basicAuthCreds;
const users = {
[utf8.encoded.user]: utf8.encoded.pass,
[latin1.encoded.user]: latin1.encoded.pass,
};
basicAuthRouter.use(basicAuth({ users }));
basicAuthRouter.get('/', (_, res) => {
res
.status(200)
.header('content-type', 'text/plain')
.send('basic auth received');
});
app.use('/auth/basic', basicAuthRouter);
app.listen(port, () => {
console.log(`Listening at http://localhost:${port}`);
});
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);
});