From cc6dfda5595f39ee6626d1f6c0136521b48d4899 Mon Sep 17 00:00:00 2001 From: Ayo Ayco Date: Sat, 7 Dec 2024 20:34:52 +0100 Subject: [PATCH] test(cli): add tests to serve.printInfo() --- packages/cli/test/serve.test.js | 49 +++++++++++++++++++++++++++------ 1 file changed, 41 insertions(+), 8 deletions(-) diff --git a/packages/cli/test/serve.test.js b/packages/cli/test/serve.test.js index 7b87f70..50e5366 100644 --- a/packages/cli/test/serve.test.js +++ b/packages/cli/test/serve.test.js @@ -40,14 +40,47 @@ describe("FUNCTION: serve()", () => { /** * TODO: test printInfo */ -// describe("FUNCTION: printInfo()", () => { -// const testFn = exportedForTest.printInfo; +describe("FUNCTION: printInfo()", () => { + const testFn = exportedForTest.printInfo; -// test("log mcfly and nitro versions", () => { -// const spy = vi.spyOn(consola, "log"); + const createRequireMocks = vi.hoisted(() => { + return { + createRequire: vi.fn(), + }; + }); -// testFn(); + vi.mock("node:module", () => { + return { + createRequire: createRequireMocks.createRequire, + }; + }); -// expect(spy).toHaveBeenCalled(); -// }); -// }); + test("log mcfly and nitro versions", async () => { + const spy = vi.spyOn(consola, "log"); + const fakeMessage = "McFly -1.0.0 Nitro -1.0.0"; + createRequireMocks.createRequire.mockImplementationOnce(() => { + return () => { + return { + version: "-1.0.0", + }; + }; + }); + + await testFn(); + + expect(spy.mock.calls[0][0]).toContain("McFly"); + expect(spy.mock.calls[0][0]).toContain("Nitro"); + expect(spy).toHaveBeenCalledWith(fakeMessage); + }); + + test("catch error", async () => { + createRequireMocks.createRequire.mockImplementationOnce(() => { + throw new Error("error"); + }); + const spy = vi.spyOn(consola, "error"); + + await testFn(); + + expect(spy).toHaveBeenCalledWith(new Error("error")); + }); +});