* Tests request processing memory usage
()
| 150 | * Tests request processing memory usage |
| 151 | */ |
| 152 | async function testRequestProcessing () { |
| 153 | console.log("🔥 Request Processing Memory Test"); |
| 154 | console.log("-".repeat(50)); |
| 155 | |
| 156 | const monitor = new MemoryMonitor(); |
| 157 | const server = tenso({ |
| 158 | port: 0, |
| 159 | silent: true, |
| 160 | logging: { enabled: false }, |
| 161 | auth: { protect: [] }, |
| 162 | rate: { enabled: false }, |
| 163 | security: { csrf: false } |
| 164 | }); |
| 165 | |
| 166 | // Add test routes |
| 167 | server.get("/test", (req, res) => { |
| 168 | res.send({ message: "Hello World", timestamp: Date.now() }); |
| 169 | }); |
| 170 | |
| 171 | server.post("/echo", (req, res) => { |
| 172 | res.send(req.body); |
| 173 | }); |
| 174 | |
| 175 | monitor.snapshot("Server created"); |
| 176 | |
| 177 | // Simulate request processing |
| 178 | const requests = 1000; |
| 179 | const testData = { |
| 180 | users: Array.from({ length: 100 }, (_, i) => ({ |
| 181 | id: i, |
| 182 | name: `User ${i}`, |
| 183 | email: `user${i}@example.com` |
| 184 | })) |
| 185 | }; |
| 186 | |
| 187 | monitor.snapshot("Before request simulation"); |
| 188 | |
| 189 | for (let i = 0; i < requests; i++) { |
| 190 | // Simulate request object |
| 191 | const req = { |
| 192 | method: "GET", |
| 193 | url: "/test", |
| 194 | headers: { accept: "application/json" }, |
| 195 | parsed: { searchParams: new URLSearchParams() }, |
| 196 | server: server, |
| 197 | body: "" |
| 198 | }; |
| 199 | |
| 200 | // Simulate response object |
| 201 | const res = { |
| 202 | statusCode: 200, |
| 203 | headers: {}, |
| 204 | getHeader: name => res.headers[name], |
| 205 | removeHeader: name => delete res.headers[name], |
| 206 | header: (name, value) => res.headers[name] = value, // eslint-disable-line no-return-assign |
| 207 | getHeaders: () => res.headers |
| 208 | }; |
| 209 |