From 421456d21b447517c39b01d7886adda299c650d1 Mon Sep 17 00:00:00 2001 From: Ujjwal Gupta Date: Wed, 3 Jan 2024 09:45:12 +0400 Subject: [PATCH] fix unused controller throwing error in route handling --- src/models/route_info.ts | 4 +--- .../controllers/user_profile_controller.ts | 16 ++++++++++++++++ tests/general/crons/counter.spec.ts | 5 +---- tests/general/package.json | 4 ++-- tests/general/routes.test.ts | 3 ++- tests/general/test/home.js | 12 ++++++------ 6 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/models/route_info.ts b/src/models/route_info.ts index 5bfe0b7..4d2a968 100644 --- a/src/models/route_info.ts +++ b/src/models/route_info.ts @@ -34,9 +34,7 @@ export class RouteInfo implements IRouteInfo { set path(value) { this.path_ = value; - if (value) { - this.pathSplitted = value.split("/"); - } + this.pathSplitted = value ? value.split("/") : []; } get path() { diff --git a/tests/general/controllers/user_profile_controller.ts b/tests/general/controllers/user_profile_controller.ts index b1ec10a..f48b680 100644 --- a/tests/general/controllers/user_profile_controller.ts +++ b/tests/general/controllers/user_profile_controller.ts @@ -17,6 +17,22 @@ export class UserProfileController extends Controller { @shields(UserProfileNestedShield) export class UserProfileNestedController extends Controller { + @worker() + @route('/me') + async getMe(@singleton(UserService) userService: UserService) { + const userId = await this.session.get('userId'); + const user = userService.getUser(userId); + return jsonResult({ + nestedProfile: user + }); + } +} + +// do not remove this - +// this to make sure that controller which is not used but created are not creating problem +@shields(UserProfileNestedShield) +export class NotUsedController extends Controller { + @worker() @route('/me') async getMe(@singleton(UserService) userService: UserService) { diff --git a/tests/general/crons/counter.spec.ts b/tests/general/crons/counter.spec.ts index 948c253..33a6865 100644 --- a/tests/general/crons/counter.spec.ts +++ b/tests/general/crons/counter.spec.ts @@ -1,10 +1,7 @@ import { initServer } from ".."; -import { viewResult, Fort, textResult } from "fortjs"; +import { Fort } from "fortjs"; import { CounterScheduler } from "./counter"; -// import { } from "jest; -// jest. -// jest.sp describe("counter scheduler", () => { beforeAll(async () => { await initServer(); diff --git a/tests/general/package.json b/tests/general/package.json index 7c9fa0d..40bc767 100644 --- a/tests/general/package.json +++ b/tests/general/package.json @@ -16,7 +16,7 @@ "build:test:prod": "NODE_ENV=production npm run build:test", "install:build:test": "npm run install:lib && npm run build:test", "webpack:watch": "webpack --config webpack.config.js --watch", - "start": "export NODE_OPTIONS=--openssl-legacy-provider; npm run webpack:watch", + "start": "export NODE_OPTIONS=\"--openssl-legacy-provider --enable-source-maps\" && npm run webpack:watch", "start:dev": "NODE_ENV=development npm run start", "start:prod": "NODE_ENV=production npm run start" }, @@ -51,4 +51,4 @@ "ts-loader": "^8.0.1", "typescript": "^3.9.7" } -} +} \ No newline at end of file diff --git a/tests/general/routes.test.ts b/tests/general/routes.test.ts index 50d1dcd..2edfafc 100644 --- a/tests/general/routes.test.ts +++ b/tests/general/routes.test.ts @@ -11,8 +11,9 @@ describe('DefaultController', () => { const router = new Router(); const routesAsArray = router.routesAsArray; expect(routesAsArray).toHaveLength( - routes.length + 2 + routes.length + 2 + 1 // +2 due to nested child + // +1 unused controller ); const controllerName = "HomeController"; const controller = routesAsArray.find(q => q.controllerName === controllerName); diff --git a/tests/general/test/home.js b/tests/general/test/home.js index 62a82ea..7c9ba8b 100644 --- a/tests/general/test/home.js +++ b/tests/general/test/home.js @@ -201,13 +201,13 @@ describe("/home", () => { request.get('/setSingletonValue?value=' + value).end((err, res) => { expect(err).to.be.null; expect(res).to.have.status(200); - }) - request.get('/getSingletonValue').end((err, res) => { - expect(err).to.be.null; - expect(res).to.have.status(200); - expect(res.text).to.be.equal(value); - done(); + request.get('/getSingletonValue').end((err, res) => { + expect(err).to.be.null; + expect(res).to.have.status(200); + expect(res.text).to.be.equal(value); + done(); + }) }) }) })