Skip to content

Instantly share code, notes, and snippets.

"build": "rm -rf dist && tsc --sourceMap -p ./"
{
"name": "Debug src/index.ts",
"type": "node",
"request": "launch",
"env": {
"TS_NODE_FILES": "true"
},
"runtimeArgs": ["-r", "ts-node/register"],
"args": ["${workspaceFolder}/src/index.ts"]
}
import * as fastify from "fastify";
import { Server, IncomingMessage, ServerResponse } from "http";
import statusRoutes from "../modules/routes/status";
describe("/status", () => {
let server: fastify.FastifyInstance<Server, IncomingMessage, ServerResponse>;
beforeAll(() => {});
"test": "NODE_ENV=test npx jest --verbose --runInBand"
module.exports = {
rootDir: "src",
testMatch: ["**/__tests__/**/*.test.(ts|tsx|js|jsx)"],
verbose: false,
clearMocks: true,
resetModules: true,
coveragePathIgnorePatterns: [
"/node_modules/",
"/__fixtures__/",
"/__tests__/",
npm i jest ts-jest @types/jest
// at the top
import vehiclesRoutes from "./modules/routes/vehicles";
import db from "./modules/db";
// after server was created
server.register(db, { uri: "mongodb://localhost:27017/vehicles" });
server.register(vehiclesRoutes);
import * as fp from "fastify-plugin";
export default fp(async (server, opts, next) => {
server.get("/vehicles/:id", {}, async (request, reply) => {
try {
const _id = request.params.id;
const vehicle = await server.db.models.Vehicle.findOne({
_id
});
import * as fastify from "fastify";
import * as http from "http";
import { Db } from "../modules/db";
declare module "fastify" {
export interface FastifyInstance<
HttpServer = http.Server,
HttpRequest = http.IncomingMessage,
HttpResponse = http.ServerResponse
> {
import { Model } from "mongoose";
import * as Mongoose from "mongoose";
import { VehicleModel, Vehicle } from "./models/vehicle";
import * as fp from "fastify-plugin";
export interface Models {
Vehicle: Model<VehicleModel>;
}