diff --git a/src/config/index.ts b/src/config/index.ts index 3435655..9824d22 100644 --- a/src/config/index.ts +++ b/src/config/index.ts @@ -36,6 +36,7 @@ export const ADD_COLLABORATOR = 'add-collaborator'; export const CHECK_YOUR_ANSWERS = 'check-your-answers'; export const ADDITIONAL_REQUESTS = 'additional-requests'; export const COOKIES = 'cookies'; +export const CONTACT_US = 'contact-us'; // Routing paths export const START_URL = '/start'; @@ -50,6 +51,7 @@ export const ADD_COLLABORATOR_URL = '/add-collaborator'; export const CHECK_YOUR_ANSWERS_URL = '/check-your-answers'; export const ADDITIONAL_REQUESTS_URL = '/additional-requests'; export const COOKIES_URL = '/cookies'; +export const CONTACT_US_URL = '/contact-us'; export const SERVICE_URL = `${BASE_URL}${HOME_URL}`; diff --git a/src/controller/contact-us.controller.ts b/src/controller/contact-us.controller.ts new file mode 100644 index 0000000..e42d654 --- /dev/null +++ b/src/controller/contact-us.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.CONTACT_US); +}; diff --git a/src/routes/additional-requests.controller.ts b/src/routes/additional-requests.ts similarity index 100% rename from src/routes/additional-requests.controller.ts rename to src/routes/additional-requests.ts diff --git a/src/routes/contact-us.ts b/src/routes/contact-us.ts new file mode 100644 index 0000000..76ef45d --- /dev/null +++ b/src/routes/contact-us.ts @@ -0,0 +1,12 @@ +import { Router } from 'express'; + +import { get } from '../controller/contact-us.controller'; +import * as config from '../config'; + +import { authentication } from '../middleware/authentication.middleware'; + +const contactUsRouter = Router(); + +contactUsRouter.get(config.CONTACT_US_URL, authentication, get); + +export default contactUsRouter; diff --git a/src/routes/index.ts b/src/routes/index.ts index afceb91..95987a8 100644 --- a/src/routes/index.ts +++ b/src/routes/index.ts @@ -12,8 +12,9 @@ import addTeamRouter from './add-team'; import addTeamMemberRouter from './add-team-member'; import addCollaboratorRouter from './add-collaborator'; import checkYourAnswersRouter from './check-your-answers'; -import additionalRequestsRouter from './additional-requests.controller'; +import additionalRequestsRouter from './additional-requests'; import cookiesRouter from './cookies'; +import contactUsRouter from './contact-us'; const router = Router(); @@ -33,5 +34,6 @@ router.use(addCollaboratorRouter); router.use(checkYourAnswersRouter); router.use(additionalRequestsRouter); router.use(cookiesRouter); +router.use(contactUsRouter); export default router; diff --git a/src/views/contact-us.html b/src/views/contact-us.html new file mode 100644 index 0000000..2f683e8 --- /dev/null +++ b/src/views/contact-us.html @@ -0,0 +1,15 @@ +{% extends "layout.html" %} + +{% block pageContent %} + +
If you need any further assistance - contact us at: github-requests.idp@digital.cabinet-office.gov.uk
+ +We can only respond to your support queries during office hours. Our office hours are 9:00am to 5:00pm, Monday to Friday.
+ +When you get in touch during office hours, we’ll try to reply within 5 working days.
+ +{% endblock %} \ No newline at end of file diff --git a/src/views/layout.html b/src/views/layout.html index 86c4853..ba0b42e 100644 --- a/src/views/layout.html +++ b/src/views/layout.html @@ -68,7 +68,7 @@ text: "Cookies" }, { - href: "#", + href: "/contact-us", text: "Contact us" }, { diff --git a/test/integration/routes/contact-us.spec.ts b/test/integration/routes/contact-us.spec.ts new file mode 100644 index 0000000..5141c8c --- /dev/null +++ b/test/integration/routes/contact-us.spec.ts @@ -0,0 +1,35 @@ +jest.mock('../../../src/middleware/logger.middleware'); +jest.mock('../../../src/middleware/authentication.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 { authentication } from '../../../src/middleware/authentication.middleware'; + +import { MOCK_CONTACT_US_RESPONSE } from '../../mock/text.mock'; + +const mockedLogger = logger as jest.Mock