()
| 16 | const require = createRequire(import.meta.url); |
| 17 | |
| 18 | export async function createTestApp() { |
| 19 | const app = express(); |
| 20 | |
| 21 | // Mimic production behavior: server/index.js sets app.settings = settings |
| 22 | // In tests, NODE_ENV is not "production", so settings-dev is used. |
| 23 | // settings-dev reads process.env at require-time (set defaults in tests/setup.js). |
| 24 | // eslint-disable-next-line global-require |
| 25 | const settings = require("../../settings-dev.js"); |
| 26 | app.settings = settings; |
| 27 | |
| 28 | // Basic middleware setup (mimicking your main app) |
| 29 | app.set("trust proxy", 1); |
| 30 | app.use(cookieParser()); |
| 31 | app.use(urlencoded({ extended: true })); |
| 32 | app.set("query parser", "simple"); |
| 33 | app.use(json()); |
| 34 | app.use(methodOverride("X-HTTP-Method-Override")); |
| 35 | app.use(helmet({ |
| 36 | crossOriginEmbedderPolicy: false, |
| 37 | crossOriginResourcePolicy: false, |
| 38 | })); |
| 39 | app.use(cors()); |
| 40 | |
| 41 | // Basic health check route |
| 42 | app.get("/", (req, res) => { |
| 43 | return res.json({ message: "Chartbrew Test API", status: "ok" }); |
| 44 | }); |
| 45 | |
| 46 | // Load middlewares |
| 47 | app.use(parseQueryParams); |
| 48 | |
| 49 | return app; |
| 50 | } |
| 51 | |
| 52 | export async function createTestAppWithUserRoutes() { |
| 53 | const app = await createTestApp(); |
no test coverage detected