diff --git a/src/config/index.ts b/src/config/index.ts index 82606ec..cc3c74e 100644 --- a/src/config/index.ts +++ b/src/config/index.ts @@ -11,7 +11,8 @@ export const PATH_SSL_CERTIFICATE = process.env['PATH_SSL_CERTIFICATE'] || ''; export const SERVICE_NAME = 'GitHub Requests Application '; // Template -export const LANDING = 'landing-page'; +export const START = 'start'; +export const HOME = 'home'; export const ADD_MEMBER = 'add-member'; export const REMOVE_MEMBER = 'remove-member'; export const MEMBER_REQUST = 'member-request'; @@ -27,7 +28,8 @@ export const REPO_REQUEST = 'repo-request'; // Routing paths -export const LANDING_URL = '/landing-page'; +export const START_URL = '/start'; +export const HOME_URL = '/home'; export const ADD_MEMBER_URL = '/add-member'; export const REMOVE_MEMBER_URL = '/remove-member'; export const MEMBER_REQUST_URL = '/member-request'; diff --git a/src/controller/add-member.controller.ts b/src/controller/add-member.controller.ts index ef0569c..9feeb85 100644 --- a/src/controller/add-member.controller.ts +++ b/src/controller/add-member.controller.ts @@ -18,5 +18,5 @@ export const post = (req: Request, res: Response) => { log.info(`first_name: ${firstName}, last_name: ${lastName}, github_handle: ${gitHubHandle}, email_address: ${emailAddress}, contract_type: ${contractType}`); - return res.redirect(config.LANDING); + return res.redirect(config.HOME); }; diff --git a/src/controller/add-repo.controller.ts b/src/controller/add-repo.controller.ts index df5add5..db872aa 100644 --- a/src/controller/add-repo.controller.ts +++ b/src/controller/add-repo.controller.ts @@ -15,5 +15,5 @@ export const post = (req: Request, res: Response) => { log.info(`Repository Name: ${repoName}, Visibility: ${visibility}`); - return res.redirect(config.LANDING); + return res.redirect(config.HOME); }; diff --git a/src/controller/add-team-member.controller.ts b/src/controller/add-team-member.controller.ts index c24253c..a6c99b2 100644 --- a/src/controller/add-team-member.controller.ts +++ b/src/controller/add-team-member.controller.ts @@ -15,5 +15,5 @@ export const post = (req: Request, res: Response) => { log.info(`Team Name: ${teamName}, Team Member GitHub Handle: ${teamMemberGithubHandle}`); - return res.redirect(config.LANDING); + return res.redirect(config.HOME); }; diff --git a/src/controller/add-team.controller.ts b/src/controller/add-team.controller.ts index d118836..4a5d57d 100644 --- a/src/controller/add-team.controller.ts +++ b/src/controller/add-team.controller.ts @@ -15,5 +15,5 @@ export const post = (req: Request, res: Response) => { log.info(`Team Name: ${teamName}, Team Maintainer GitHub Handle: ${teamMaintainerGithubHandle}`); - return res.redirect(config.LANDING); + return res.redirect(config.HOME); }; diff --git a/src/controller/landing-page.controller.ts b/src/controller/home.controller.ts similarity index 78% rename from src/controller/landing-page.controller.ts rename to src/controller/home.controller.ts index addb742..c827383 100644 --- a/src/controller/landing-page.controller.ts +++ b/src/controller/home.controller.ts @@ -2,5 +2,5 @@ import { Request, Response } from 'express'; import * as config from '../config'; export const get = (_req: Request, res: Response) => { - return res.render(config.LANDING); + return res.render(config.HOME); }; diff --git a/src/controller/member-request.controller.ts b/src/controller/member-request.controller.ts index 540a420..4eacf0b 100644 --- a/src/controller/member-request.controller.ts +++ b/src/controller/member-request.controller.ts @@ -14,5 +14,5 @@ export const post = (req: Request, res: Response) => { log.info(`GitHub Handle: ${githubHandle}`); - return res.redirect(config.LANDING); + return res.redirect(config.HOME); }; diff --git a/src/controller/remove-member.controller.ts b/src/controller/remove-member.controller.ts index 3ebb95a..40e7d92 100644 --- a/src/controller/remove-member.controller.ts +++ b/src/controller/remove-member.controller.ts @@ -14,5 +14,5 @@ export const post = (req: Request, res: Response) => { log.info(`Github Handle: ${githubHandle}`); - return res.redirect(config.LANDING); + return res.redirect(config.HOME); }; diff --git a/src/controller/repo-request.controller.ts b/src/controller/repo-request.controller.ts index 9703880..874f9a2 100644 --- a/src/controller/repo-request.controller.ts +++ b/src/controller/repo-request.controller.ts @@ -14,5 +14,5 @@ export const post = (req: Request, res: Response) => { log.info(`Repository Name: ${repoName}`); - return res.redirect(config.LANDING); + return res.redirect(config.HOME); }; diff --git a/src/controller/start.controller.ts b/src/controller/start.controller.ts new file mode 100644 index 0000000..5e68441 --- /dev/null +++ b/src/controller/start.controller.ts @@ -0,0 +1,6 @@ +import { Request, Response } from 'express'; +import * as config from '../config'; + +export const get = (_req: Request, res: Response) => { + return res.render(config.START); +}; diff --git a/src/controller/team-request.controller.ts b/src/controller/team-request.controller.ts index 99630c2..3753999 100644 --- a/src/controller/team-request.controller.ts +++ b/src/controller/team-request.controller.ts @@ -14,5 +14,5 @@ export const post = (req: Request, res: Response) => { log.info(`Team Name: ${teamName}`); - return res.redirect(config.LANDING); + return res.redirect(config.HOME); }; diff --git a/src/routes/home.ts b/src/routes/home.ts new file mode 100644 index 0000000..ed2dc33 --- /dev/null +++ b/src/routes/home.ts @@ -0,0 +1,12 @@ +import { Router } from 'express'; + +import { authentication } from '../middleware/authentication.middleware'; + +import { get } from '../controller/home.controller'; +import * as config from '../config'; + +const homePageRouter = Router(); + +homePageRouter.get(config.HOME_URL, authentication, get); + +export default homePageRouter; diff --git a/src/routes/index.ts b/src/routes/index.ts index 6117779..663693b 100644 --- a/src/routes/index.ts +++ b/src/routes/index.ts @@ -2,7 +2,8 @@ import { Router } from 'express'; import { logger } from '../middleware/logger.middleware'; -import landingPageRouter from './landing-page'; +import startPageRouter from './start'; +import homePageRouter from './home'; import healthcheckRouter from './healthcheck'; import confirmationRouter from './confirmation'; import addRepoRouter from './add-repo'; @@ -20,7 +21,8 @@ const router = Router(); router.use(logger); // Routes -router.use(landingPageRouter); +router.use(startPageRouter); +router.use(homePageRouter); router.use(addMemberRouter); router.use(confirmationRouter); router.use(healthcheckRouter); diff --git a/src/routes/landing-page.ts b/src/routes/landing-page.ts deleted file mode 100644 index 6724cc3..0000000 --- a/src/routes/landing-page.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Router } from 'express'; - -import { authentication } from '../middleware/authentication.middleware'; - -import { get } from '../controller/landing-page.controller'; -import * as config from '../config'; - -const landingPageRouter = Router(); - -landingPageRouter.get(config.LANDING_URL, authentication, get); - -export default landingPageRouter; diff --git a/src/routes/start.ts b/src/routes/start.ts new file mode 100644 index 0000000..8d2a588 --- /dev/null +++ b/src/routes/start.ts @@ -0,0 +1,10 @@ +import { Router } from 'express'; + +import { get } from '../controller/start.controller'; +import * as config from '../config'; + +const startPageRouter = Router(); + +startPageRouter.get(config.START_URL, get); + +export default startPageRouter; diff --git a/src/views/add-team-member.html b/src/views/add-team-member.html index 38f279f..8b0145e 100644 --- a/src/views/add-team-member.html +++ b/src/views/add-team-member.html @@ -3,7 +3,7 @@ {% block beforeContent %} {{ govukBackLink({ text: "Back", - href: "/landing-page" + href: "/home" }) }} {% endblock %} diff --git a/src/views/landing-page.html b/src/views/home.html similarity index 100% rename from src/views/landing-page.html rename to src/views/home.html diff --git a/src/views/include/back-link.html b/src/views/include/back-link.html index b191344..33482db 100644 --- a/src/views/include/back-link.html +++ b/src/views/include/back-link.html @@ -1,4 +1,4 @@ {{ govukBackLink({ text: "Back", - href: "/landing-page" + href: "/home" }) }} \ No newline at end of file diff --git a/src/views/start.html b/src/views/start.html new file mode 100644 index 0000000..06d90cb --- /dev/null +++ b/src/views/start.html @@ -0,0 +1,19 @@ +{% extends "layout.html" %} + +{% block content %} +
+
+

GitHub Requests

+ +

Use this service to make member, team, and repository related requests to the cabinetoffice GitHub organisation.

+ + + Start now + + +
+
+{% endblock %} \ No newline at end of file diff --git a/test/integration/routes/add-member.spec.ts b/test/integration/routes/add-member.spec.ts index 7f361ac..d961b98 100644 --- a/test/integration/routes/add-member.spec.ts +++ b/test/integration/routes/add-member.spec.ts @@ -37,7 +37,7 @@ describe('Add-member endpoint integration tests', () => { }); }); describe('Add member POST tests', () => { - test('Should redirect to landing page after POST request', async () => { + test('Should redirect to home page after POST request', async () => { const res = await request(app).post(config.ADD_MEMBER_URL).send(MOCK_POST_ADD_MEMBER); expect(res.status).toEqual(302); diff --git a/test/integration/routes/add-repo.spec.ts b/test/integration/routes/add-repo.spec.ts index a217eab..98a886b 100644 --- a/test/integration/routes/add-repo.spec.ts +++ b/test/integration/routes/add-repo.spec.ts @@ -37,7 +37,7 @@ describe('add-repo endpoint integration tests', () => { }); }); describe('POST tests', () => { - test('Should redirect to landing page after POST request', async () => { + test('Should redirect to home page after POST request', async () => { const res = await request(app).post(config.ADD_REPO_URL).send(MOCK_POST_ADD_REPO); expect(res.status).toEqual(302); diff --git a/test/integration/routes/add-team-member.spec.ts b/test/integration/routes/add-team-member.spec.ts index 2c00d5d..515afdc 100644 --- a/test/integration/routes/add-team-member.spec.ts +++ b/test/integration/routes/add-team-member.spec.ts @@ -36,7 +36,7 @@ describe('add-team-member endpoint integration tests', () => { }); }); describe('POST tests', () => { - test('Should redirect to landing page after POST request', async () => { + test('Should redirect to home page after POST request', async () => { const res = await request(app).post(config.ADD_TEAM_MEMBER_URL).send(MOCK_POST_ADD_TEAM_MEMBER); expect(res.status).toEqual(302); diff --git a/test/integration/routes/add-team.spec.ts b/test/integration/routes/add-team.spec.ts index e02097a..87d6d1a 100644 --- a/test/integration/routes/add-team.spec.ts +++ b/test/integration/routes/add-team.spec.ts @@ -37,7 +37,7 @@ describe('add-team endpoint integration tests', () => { }); }); describe('POST tests', () => { - test('Should redirect to landing page after POST request', async () => { + test('Should redirect to home page after POST request', async () => { const res = await request(app).post(config.ADD_TEAM_URL).send(MOCK_POST_ADD_TEAM); expect(res.status).toEqual(302); diff --git a/test/integration/routes/landing-page.spec.ts b/test/integration/routes/home.spec.ts similarity index 71% rename from test/integration/routes/landing-page.spec.ts rename to test/integration/routes/home.spec.ts index a954ee2..f362c33 100644 --- a/test/integration/routes/landing-page.spec.ts +++ b/test/integration/routes/home.spec.ts @@ -12,24 +12,24 @@ import * as config from '../../../src/config'; import { logger } from '../../../src/middleware/logger.middleware'; import { authentication } from '../../../src/middleware/authentication.middleware'; -import { MOCK_GET_LANDING_RESPONSE } from '../../mock/text.mock'; +import { MOCK_GET_HOME_RESPONSE } from '../../mock/text.mock'; const mockedLogger = logger as jest.Mock; -mockedLogger.mockImplementation((req: Request, res: Response, next: NextFunction) => next()); +mockedLogger.mockImplementation((_req: Request, _res: Response, next: NextFunction) => next()); const mockedAuth = authentication as jest.Mock; mockedAuth.mockImplementation((_req: Request, _res: Response, next: NextFunction) => next()); -describe('Confirmation endpoint integration tests', () => { +describe('Home endpoint integration tests', () => { beforeEach(() => { jest.clearAllMocks(); }); describe('GET tests', () => { - test('should render confirmation template', async () => { - const res = await request(app).get(config.LANDING_URL); + test('should render home template', async () => { + const res = await request(app).get(config.HOME_URL); expect(res.status).toEqual(200); - expect(res.text).toContain(MOCK_GET_LANDING_RESPONSE); + expect(res.text).toContain(MOCK_GET_HOME_RESPONSE); expect(mockedLogger).toHaveBeenCalledTimes(1); expect(mockedAuth).toHaveBeenCalledTimes(1); }); diff --git a/test/integration/routes/member-request.spec.ts b/test/integration/routes/member-request.spec.ts index c6543bc..c580a99 100644 --- a/test/integration/routes/member-request.spec.ts +++ b/test/integration/routes/member-request.spec.ts @@ -36,7 +36,7 @@ describe('Member-request endpoint integration tests', () => { }); }); describe('POST tests', () => { - test('Should redirect to landing page after POST request', async () => { + test('Should redirect to home page after POST request', async () => { const res = await request(app).post(config.MEMBER_REQUST_URL).send(MOCK_POST_MEMBER_REQUEST); expect(res.status).toEqual(302); diff --git a/test/integration/routes/remove-member.spec.ts b/test/integration/routes/remove-member.spec.ts index 3b42bf3..ef6da88 100644 --- a/test/integration/routes/remove-member.spec.ts +++ b/test/integration/routes/remove-member.spec.ts @@ -38,7 +38,7 @@ describe('Remove-member endpoint integration tests', () => { }); describe('POST tests', () => { - test('Should redirect to landing page after POST request', async () => { + test('Should redirect to home page after POST request', async () => { const res = await request(app).post(config.REMOVE_MEMBER_URL).send(MOCK_POST_REMOVE_MEMBER); expect(res.status).toEqual(302); diff --git a/test/integration/routes/repo-request.spec.ts b/test/integration/routes/repo-request.spec.ts index a5fe8a9..840d0e8 100644 --- a/test/integration/routes/repo-request.spec.ts +++ b/test/integration/routes/repo-request.spec.ts @@ -37,7 +37,7 @@ describe('repo-request endpoint integration tests', () => { }); }); describe('POST tests', () => { - test('Should redirect to landing page after POST request', async () => { + test('Should redirect to home page after POST request', async () => { const res = await request(app).post(config.REPO_REQUEST_URL).send(MOCK_POST_REPO_REQUEST); expect(res.status).toEqual(302); diff --git a/test/integration/routes/start.spec.ts b/test/integration/routes/start.spec.ts new file mode 100644 index 0000000..be1f042 --- /dev/null +++ b/test/integration/routes/start.spec.ts @@ -0,0 +1,32 @@ +jest.mock('../../../src/middleware/logger.middleware'); +jest.mock('../../../src/utils/logger'); + +import { jest, beforeEach, describe, expect, test } from '@jest/globals'; +import { Request, Response, NextFunction } from 'express'; +import request from 'supertest'; + +import app from '../../../src/app'; +import * as config from '../../../src/config'; + +import { logger } from '../../../src/middleware/logger.middleware'; + +import { MOCK_GET_START_RESPONSE } from '../../mock/text.mock'; + +const mockedLogger = logger as jest.Mock; +mockedLogger.mockImplementation((_req: Request, _res: Response, next: NextFunction) => next()); + +describe('Start endpoint integration tests', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + describe('GET tests', () => { + test('should render start template', async () => { + const res = await request(app).get(config.START_URL); + + expect(res.status).toEqual(200); + expect(res.text).toContain(MOCK_GET_START_RESPONSE); + expect(mockedLogger).toHaveBeenCalledTimes(1); + }); + }); +}); diff --git a/test/integration/routes/team-request.spec.ts b/test/integration/routes/team-request.spec.ts index 6f3efbd..8fd0c8e 100644 --- a/test/integration/routes/team-request.spec.ts +++ b/test/integration/routes/team-request.spec.ts @@ -37,7 +37,7 @@ describe('Team-request endpoint integration tests', () => { }); }); describe('POST tests', () => { - test('Should redirect to landing page after POST request', async () => { + test('Should redirect to home page after POST request', async () => { const res = await request(app).post(config.TEAM_REQUEST_URL).send(MOCK_POST_TEAM_REQUEST); expect(res.status).toEqual(302); diff --git a/test/mock/text.mock.ts b/test/mock/text.mock.ts index 1312f81..bff55b1 100644 --- a/test/mock/text.mock.ts +++ b/test/mock/text.mock.ts @@ -1,6 +1,7 @@ export const MOCK_OK_RESPONSE = 'OK'; export const MOCK_GET_CONFIRMATION_RESPONSE = 'GitHub request complete'; -export const MOCK_GET_LANDING_RESPONSE = 'GitHub request application'; +export const MOCK_GET_START_RESPONSE = 'GitHub Requests'; +export const MOCK_GET_HOME_RESPONSE = 'GitHub request application'; export const MOCK_GET_ADD_REPO_RESPONSE = 'Add a GitHub Repository'; export const MOCK_POST_ADD_REPO_RESPONSE = 'Repository Name: repo1, Visibility: public'; @@ -31,4 +32,4 @@ export const MOCK_SERVICE_UNAVAILABLE = 'Sorry, there is a problem with the serv export const MOCK_SERVER_ERROR = 'Pipe 3000 requires elevated privileges'; export const MOCK_ERROR_MESSAGE = 'Something has went wrong'; export const MOCK_WRONG_URL = '/infooo'; -export const MOCK_REDIRECT_MESSAGE = 'Found. Redirecting to landing-page'; +export const MOCK_REDIRECT_MESSAGE = 'Found. Redirecting to home'; diff --git a/test/unit/controller/add-member.controller.spec.ts b/test/unit/controller/add-member.controller.spec.ts index 2013029..a8bd42a 100644 --- a/test/unit/controller/add-member.controller.spec.ts +++ b/test/unit/controller/add-member.controller.spec.ts @@ -37,12 +37,12 @@ describe('add member controller test suites', () => { describe('add-member POST tests', () => { - test('should redirect to landing-page on POST request', () => { + test('should redirect to home page on POST request', () => { const res = mockResponse(); post(req, res); - expect(res.redirect).toBeCalledWith(config.LANDING); + expect(res.redirect).toBeCalledWith(config.HOME); }); test('should log add-member details on POST request', () => { const res = mockResponse(); diff --git a/test/unit/controller/add-repo.controller.spec.ts b/test/unit/controller/add-repo.controller.spec.ts index 5a73343..7240c0c 100644 --- a/test/unit/controller/add-repo.controller.spec.ts +++ b/test/unit/controller/add-repo.controller.spec.ts @@ -39,12 +39,12 @@ describe('Add-repo controller test suites', () => { describe('add-repo POST tests', () => { - test('should redirect to landing-page on POST request', () => { + test('should redirect to home page on POST request', () => { const res = mockResponse(); post(req, res); - expect(res.redirect).toBeCalledWith(config.LANDING); + expect(res.redirect).toBeCalledWith(config.HOME); }); test('should log Repository Name, Visibility and Description on POST request', () => { const res = mockResponse(); diff --git a/test/unit/controller/add-team-member.controller.spec.ts b/test/unit/controller/add-team-member.controller.spec.ts index caa7af9..bd9acd2 100644 --- a/test/unit/controller/add-team-member.controller.spec.ts +++ b/test/unit/controller/add-team-member.controller.spec.ts @@ -39,12 +39,12 @@ describe('add-team-member controller test suites', () => { describe('add-team-member POST tests', () => { - test('should redirect to landing-page on POST request', () => { + test('should redirect to home page on POST request', () => { const res = mockResponse(); post(req, res); - expect(res.redirect).toBeCalledWith(config.LANDING); + expect(res.redirect).toBeCalledWith(config.HOME); }); test('should log Team Name, Team Member GitHub handle on POST request', () => { const res = mockResponse(); diff --git a/test/unit/controller/add-team.controller.spec.ts b/test/unit/controller/add-team.controller.spec.ts index 33316c4..0059791 100644 --- a/test/unit/controller/add-team.controller.spec.ts +++ b/test/unit/controller/add-team.controller.spec.ts @@ -43,12 +43,12 @@ describe('add-team controller test suites', () => { describe('add-team POST tests', () => { - test('should redirect to landing-page on POST request', () => { + test('should redirect to home page on POST request', () => { const res = mockResponse(); post(req, res); - expect(res.redirect).toBeCalledWith(config.LANDING); + expect(res.redirect).toBeCalledWith(config.HOME); }); test('should log Team Name and Team Maintainer GitHub handle on POST request', () => { const res = mockResponse(); diff --git a/test/unit/controller/landing-page.controller.spec.ts b/test/unit/controller/home.controller.spec.ts similarity index 66% rename from test/unit/controller/landing-page.controller.spec.ts rename to test/unit/controller/home.controller.spec.ts index 14c2777..6e47440 100644 --- a/test/unit/controller/landing-page.controller.spec.ts +++ b/test/unit/controller/home.controller.spec.ts @@ -1,7 +1,7 @@ import { describe, expect, afterEach, test, jest } from '@jest/globals'; import { Request, Response } from 'express'; -import { get } from '../../../src/controller/landing-page.controller'; +import { get } from '../../../src/controller/home.controller'; import * as config from '../../../src/config'; const req = {} as Request; @@ -12,16 +12,16 @@ const mockResponse = () => { return res; }; -describe('Landing controller test suites', () => { +describe('Home controller test suites', () => { afterEach(() => { jest.resetAllMocks(); }); - test('should render landing template', () => { + test('should render home template', () => { const res = mockResponse(); get(req, res); - expect(res.render).toHaveBeenCalledWith(config.LANDING); + expect(res.render).toHaveBeenCalledWith(config.HOME); }); }); diff --git a/test/unit/controller/member-request.controller.spec.ts b/test/unit/controller/member-request.controller.spec.ts index 6ecfd73..4087176 100644 --- a/test/unit/controller/member-request.controller.spec.ts +++ b/test/unit/controller/member-request.controller.spec.ts @@ -39,12 +39,12 @@ describe('Member-request controller test suites', () => { describe('member-request POST tests', () => { - test('should redirect to landing-page on POST request', () => { + test('should redirect to home page on POST request', () => { const res = mockResponse(); post(req, res); - expect(res.redirect).toBeCalledWith(config.LANDING); + expect(res.redirect).toBeCalledWith(config.HOME); }); test('Should log the github handle on POST request.', () => { const res = mockResponse(); diff --git a/test/unit/controller/remove-member.controller.spec.ts b/test/unit/controller/remove-member.controller.spec.ts index b2e9535..7f57e56 100644 --- a/test/unit/controller/remove-member.controller.spec.ts +++ b/test/unit/controller/remove-member.controller.spec.ts @@ -39,12 +39,12 @@ describe('Remove-member controller test suites', () => { describe('remove-member POST tests', () => { - test('should redirect to landing-page on POST request', () => { + test('should redirect to home page on POST request', () => { const res = mockResponse(); post(req, res); - expect(res.redirect).toBeCalledWith(config.LANDING); + expect(res.redirect).toBeCalledWith(config.HOME); }); test('should log GitHub handle and More Details on POST request', () => { const res = mockResponse(); diff --git a/test/unit/controller/repo-request.controller.spec.ts b/test/unit/controller/repo-request.controller.spec.ts index b39320d..6d768b3 100644 --- a/test/unit/controller/repo-request.controller.spec.ts +++ b/test/unit/controller/repo-request.controller.spec.ts @@ -38,12 +38,12 @@ describe('repo-request controller test suites', () => { describe('repo-request POST tests', () => { - test('should redirect to landing-page on POST request', () => { + test('should redirect to home page on POST request', () => { const res = mockResponse(); post(req, res); - expect(res.redirect).toBeCalledWith(config.LANDING); + expect(res.redirect).toBeCalledWith(config.HOME); }); test('should log Repository Name on POST request', () => { const res = mockResponse(); diff --git a/test/unit/controller/start.controller.spec.ts b/test/unit/controller/start.controller.spec.ts new file mode 100644 index 0000000..278cc1b --- /dev/null +++ b/test/unit/controller/start.controller.spec.ts @@ -0,0 +1,27 @@ +import { describe, expect, afterEach, test, jest } from '@jest/globals'; +import { Request, Response } from 'express'; + +import { get } from '../../../src/controller/start.controller'; +import * as config from '../../../src/config'; + +const req = {} as Request; + +const mockResponse = () => { + const res = {} as Response; + res.render = jest.fn().mockReturnValue(res) as any; + return res; +}; + +describe('Start controller test suites', () => { + afterEach(() => { + jest.resetAllMocks(); + }); + + test('should render start template', () => { + const res = mockResponse(); + + get(req, res); + + expect(res.render).toHaveBeenCalledWith(config.START); + }); +}); diff --git a/test/unit/controller/team-request.controller.spec.ts b/test/unit/controller/team-request.controller.spec.ts index 44abf66..d89d951 100644 --- a/test/unit/controller/team-request.controller.spec.ts +++ b/test/unit/controller/team-request.controller.spec.ts @@ -39,12 +39,12 @@ describe('Team-request controller test suites', () => { describe('team-request POST tests', () => { - test('should redirect to landing-page on POST request', () => { + test('should redirect to home page on POST request', () => { const res = mockResponse(); post(req, res); - expect(res.redirect).toBeCalledWith(config.LANDING); + expect(res.redirect).toBeCalledWith(config.HOME); }); test('Should log the team name and description on POST request.', () => { const res = mockResponse();