UNPKG

create-elysiajs

Version:

Scaffolding your Elysia project with the environment with easy!

82 lines (69 loc) 2.47 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getPreloadFile = getPreloadFile; exports.getTestsAPIFile = getTestsAPIFile; exports.getTestsIndex = getTestsIndex; exports.getTestSharedFile = getTestSharedFile; const ts_dedent_1 = __importDefault(require("ts-dedent")); const db_1 = require("./db"); const db_2 = require("./db"); function getPreloadFile({ redis, driver }) { const imports = []; const mocks = []; if (redis) { imports.push('import redis from "ioredis-mock"'); mocks.push("mock.module('ioredis', () => ({ Redis: redis, default: redis }))"); } return (0, ts_dedent_1.default /* ts */) `import { mock } from "bun:test"; import { join } from "node:path"; import { PGlite } from "@electric-sql/pglite"; import { drizzle } from "drizzle-orm/pglite"; import { migrate } from "drizzle-orm/pglite/migrator"; ${imports.join("\n")} console.time("PGLite init"); const pglite = new PGlite(); export const db = drizzle(pglite); mock.module("${db_1.driverNames[driver]}", () => ({ default: () => pglite })); mock.module("drizzle-orm/${db_2.driverNamesToDrizzle[driver]}", () => ({ drizzle })); ${mocks.join("\n")} await migrate(db, { migrationsFolder: join(import.meta.dir, "..", "drizzle"), }); console.timeEnd("PGLite init"); `; } function getTestsAPIFile({ redis, driver }) { return (0, ts_dedent_1.default /* ts */) `import { treaty } from "@elysiajs/eden"; import { app } from "../src/server.ts"; export const api = treaty(app);`; } function getTestsIndex({ redis, driver }) { return (0, ts_dedent_1.default /* ts */) `import { describe, it, expect } from "bun:test"; import { api } from "../api.ts"; describe("API - /", () => { it("/ - should return hello world", async () => { const response = await api.index.get(); expect(response.status).toBe(200); expect(response.data).toBe("Hello World"); }); }); `; } function getTestSharedFile() { return (0, ts_dedent_1.default /* ts */) `import { signInitData } from "@gramio/init-data"; export const BOT_TOKEN = "1234567890:ABCDEFGHIJKLMNOPQRSTUVWXYZ"; export const INIT_DATA = signInitData( { user: { id: 1, first_name: "durov", username: "durov", }, }, BOT_TOKEN, ); `; }