diff options
| author | 2023-04-28 01:47:57 +0800 | |
|---|---|---|
| committer | 2023-04-28 01:47:57 +0800 | |
| commit | 8b2c4a38a461ff5ecc95972291bc711e2c5dec9a (patch) | |
| tree | 29f552e3df949073e21bf5c76d7abc3044830ec6 /examples/kitchen-sink/apps/api/src | |
| parent | fc8c5fdce62fb229202659408798a7b6c98f6e8b (diff) | |
| download | HydroRoll-8b2c4a38a461ff5ecc95972291bc711e2c5dec9a.tar.gz HydroRoll-8b2c4a38a461ff5ecc95972291bc711e2c5dec9a.zip | |
Diffstat (limited to 'examples/kitchen-sink/apps/api/src')
4 files changed, 57 insertions, 0 deletions
diff --git a/examples/kitchen-sink/apps/api/src/__tests__/server.test.ts b/examples/kitchen-sink/apps/api/src/__tests__/server.test.ts new file mode 100644 index 0000000..c0c9806 --- /dev/null +++ b/examples/kitchen-sink/apps/api/src/__tests__/server.test.ts @@ -0,0 +1,22 @@ +import supertest from "supertest"; +import { createServer } from "../server"; + +describe("server", () => { + it("health check returns 200", async () => { + await supertest(createServer()) + .get("/healthz") + .expect(200) + .then((res) => { + expect(res.body.ok).toBe(true); + }); + }); + + it("message endpoint says hello", async () => { + await supertest(createServer()) + .get("/message/jared") + .expect(200) + .then((res) => { + expect(res.body).toEqual({ message: "hello jared" }); + }); + }); +}); diff --git a/examples/kitchen-sink/apps/api/src/__tests__/tsconfig.json b/examples/kitchen-sink/apps/api/src/__tests__/tsconfig.json new file mode 100644 index 0000000..bf65be6 --- /dev/null +++ b/examples/kitchen-sink/apps/api/src/__tests__/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.json", + "include": [".", "../."] +} diff --git a/examples/kitchen-sink/apps/api/src/index.ts b/examples/kitchen-sink/apps/api/src/index.ts new file mode 100644 index 0000000..5f48625 --- /dev/null +++ b/examples/kitchen-sink/apps/api/src/index.ts @@ -0,0 +1,9 @@ +import { createServer } from "./server"; +import { log } from "logger"; + +const port = process.env.PORT || 5001; +const server = createServer(); + +server.listen(port, () => { + log(`api running on ${port}`); +}); diff --git a/examples/kitchen-sink/apps/api/src/server.ts b/examples/kitchen-sink/apps/api/src/server.ts new file mode 100644 index 0000000..70ccf0b --- /dev/null +++ b/examples/kitchen-sink/apps/api/src/server.ts @@ -0,0 +1,22 @@ +import { json, urlencoded } from "body-parser"; +import express from "express"; +import morgan from "morgan"; +import cors from "cors"; + +export const createServer = () => { + const app = express(); + app + .disable("x-powered-by") + .use(morgan("dev")) + .use(urlencoded({ extended: true })) + .use(json()) + .use(cors()) + .get("/message/:name", (req, res) => { + return res.json({ message: `hello ${req.params.name}` }); + }) + .get("/healthz", (req, res) => { + return res.json({ ok: true }); + }); + + return app; +}; |
