Explorar o código

update test case

Yuki Takei %!s(int64=2) %!d(string=hai) anos
pai
achega
bd1ceccc69

+ 23 - 3
packages/remark-lsx/src/server/routes/list-pages/index.spec.ts

@@ -6,6 +6,19 @@ import type { PageQueryBuilder } from './generate-base-query';
 
 
 import { listPages } from '.';
 import { listPages } from '.';
 
 
+
+// mocking modules
+const mocks = vi.hoisted(() => {
+  return {
+    generateBaseQueryMock: vi.fn(),
+    getToppageViewersCountMock: vi.fn(),
+  };
+});
+
+vi.mock('./generate-base-query', () => ({ generateBaseQuery: mocks.generateBaseQueryMock }));
+vi.mock('./get-toppage-viewers-count', () => ({ getToppageViewersCount: mocks.getToppageViewersCountMock }));
+
+
 describe('listPages', () => {
 describe('listPages', () => {
 
 
   it("returns 400 HTTP response when the query 'pagePath' is undefined", async() => {
   it("returns 400 HTTP response when the query 'pagePath' is undefined", async() => {
@@ -27,14 +40,21 @@ describe('listPages', () => {
 
 
     it('returns 500 HTTP response when an unexpected error occured', async() => {
     it('returns 500 HTTP response when an unexpected error occured', async() => {
       // setup
       // setup
+      const builderMock = mock<PageQueryBuilder>();
+      mocks.generateBaseQueryMock.mockImplementation(() => builderMock);
+
       const reqMock = mock<Request & { user: IUser }>();
       const reqMock = mock<Request & { user: IUser }>();
-      const resMock = mock<Response & { user: IUser }>();
+      reqMock.query = { pagePath: '/Sandbox' };
+      const resMock = mock<Response>();
+      const resStatusMock = mock<Response>();
+      resMock.status.calledWith(500).mockReturnValue(resStatusMock);
 
 
       // when
       // when
-      const response = await listPages(reqMock, resMock);
+      await listPages(reqMock, resMock);
 
 
       // then
       // then
-      expect(response).not.toBe(null);
+      expect(resMock.status).toBeCalledWith(500);
+      expect(resStatusMock.send).toHaveBeenCalledOnce();
     });
     });
 
 
   });
   });