From 9db6c0d9be200097cabe07b52d8c95db75afad65 Mon Sep 17 00:00:00 2001 From: "Xin Du (Clark)" Date: Thu, 12 Jan 2023 15:10:58 +0000 Subject: [PATCH] add test --- src/runtime/timing.ts | 6 +++--- test/tests.ts | 11 +++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/runtime/timing.ts b/src/runtime/timing.ts index 9adaf74a5b..94467c4515 100644 --- a/src/runtime/timing.ts +++ b/src/runtime/timing.ts @@ -2,14 +2,14 @@ import { eventHandler } from "h3"; import { defineNitroPlugin } from "./plugin"; -export const globalTiming = globalThis.__timing__ || { +const globalTiming = globalThis.__timing__ || { start: () => 0, end: () => 0, metrics: [], }; // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Server-Timing -export const timingMiddleware = eventHandler((event) => { +const timingMiddleware = eventHandler((event) => { const start = globalTiming.start(); const _end = event.node.res.end; @@ -33,7 +33,7 @@ export const timingMiddleware = eventHandler((event) => { }.bind(event.node.res); }); -export const timingPlugin = defineNitroPlugin((nitro) => { +export default defineNitroPlugin((nitro) => { // Always add timing middleware to the beginning of handler stack nitro.h3App.stack.unshift({ route: "/", diff --git a/test/tests.ts b/test/tests.ts index eb0fcc09ed..2c27b83af8 100644 --- a/test/tests.ts +++ b/test/tests.ts @@ -57,6 +57,7 @@ export async function setupTest(preset: string) { "/rules/nested/**": { redirect: "/base", headers: { "x-test": "test" } }, "/rules/nested/override": { redirect: { to: "/other" } }, }, + timing: true, })); if (ctx.isDev) { @@ -240,4 +241,14 @@ export function testNitro( additionalTests(ctx, callHandler); } } + + if (ctx.nitro!.options.timing) { + it("set server timing header", async () => { + const { data, status, headers } = await callHandler({ + url: "/api/hello", + }); + expect(status).toBe(200); + expect(headers["server-timing"]).toMatch(/-;dur=\d+;desc="Generate"/); + }); + } }