Ntrnl 358 update description validation to handle case where it is required for repo request and team request #90
Test suite run failed
Failed tests: 11/100. Failed suites: 6/41.
Details
Created failed tests' annotations. To disable them, see documentation.
● add-team-member endpoint integration tests › POST tests › Should redirect to home page after POST request
expect(received).toEqual(expected) // deep equality
Expected: 302
Received: 200
42 | const res = await request(app).post(config.ADD_TEAM_MEMBER_URL).send(MOCK_POST_ADD_TEAM_MEMBER);
43 |
> 44 | expect(res.status).toEqual(302);
| ^
45 | expect(res.text).toContain(MOCK_REDIRECT_MESSAGE);
46 | expect(mockedLogger).toHaveBeenCalledTimes(1);
47 | expect(mockedAuth).toHaveBeenCalledTimes(1);
at test/integration/routes/add-team-member.spec.ts:44:32
at fulfilled (test/integration/routes/add-team-member.spec.ts:28:58)
● add-team-member endpoint integration tests › POST tests › Should log the Team Name and Team Member GitHub handle on POST request.
expect(received).toContain(expected) // indexOf
Expected substring: "Found. Redirecting to home"
Received string: "<!DOCTYPE html>
<html lang=\"en\" class=\"govuk-template \">
<head>
<meta charset=\"utf-8\">
<title>GOV.UK - The best place to find government services and information</title>
<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, viewport-fit=cover\">
<meta name=\"theme-color\" content=\"#0b0c0c\">······
<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">······
<link rel=\"shortcut icon\" sizes=\"16x16 32x32 48x48\" href=\"/assets/images/favicon.ico\" type=\"image/x-icon\">
<link rel=\"mask-icon\" href=\"/assets/images/govuk-mask-icon.svg\" color=\"#0b0c0c\">·
<link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"/assets/images/govuk-apple-touch-icon-180x180.png\">
<link rel=\"apple-touch-icon\" sizes=\"167x167\" href=\"/assets/images/govuk-apple-touch-icon-167x167.png\">
<link rel=\"apple-touch-icon\" sizes=\"152x152\" href=\"/assets/images/govuk-apple-touch-icon-152x152.png\">
<link rel=\"apple-touch-icon\" href=\"/assets/images/govuk-apple-touch-icon.png\">············
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"//d6nh3dxv55e16.cloudfront.net/stylesheets/govuk-frontend/v3.11.0/govuk-frontend-3.11.0.min.css\">·
<link rel=\"SHORTCUT ICON\" href=\"//d6nh3dxv55e16.cloudfront.net/images/favicon.ico\"/>
<link rel=\"icon\" href=\"//d6nh3dxv55e16.cloudfront.net/images/favicon.ico\" type=\"image/x-icon\"/>·············
</head>
<body class=\"govuk-template__body \">
<script>document.body.className = ((document.body.className) ? document.body.className + ' js-enabled' : 'js-enabled');</script>···········
<a href=\"#main-content\" class=\"govuk-skip-link\" data-module=\"govuk-skip-link\">Skip to main content</a>················
<header class=\"govuk-header \" role=\"banner\" data-module=\"govuk-header\">
<div class=\"govuk-header__container govuk-width-container\">
<div class=\"govuk-header__logo\">
<a href=\"https://www.gov.uk\" class=\"govuk-header__link govuk-header__link--homepage\">
<span class=\"govuk-header__logotype\">
<!--[if gt IE 8]><!-->
<svg
aria-hidden=\"true\"
focusable=\"false\"
class=\"govuk-header__logotype-crown\"
xmlns=\"http://www.w3.org/2000/svg\"
viewBox=\"0 0 132 97\"
height=\"30\"
width=\"36\"
>
<path
fill=\"currentColor\" fill-rule=\"evenodd\"
d=\"M25 30.2c3.5 1.5 7.7-.2 9.1-3.7 1.5-3.6-.2-7.8-3.9-9.2-3.6-1.4-7.6.3-9.1 3.9-1.4 3.5.3 7.5 3.9 9zM9 39.5c3.6 1.5 7.8-.2 9.2-3.7 1.5-3.6-.2-7.8-3.9-9.1-3.6-1.5-7.6.2-9.1 3.8-1.4 3.5.3 7.5 3.8 9zM4.4 57.2c3.5 1.5 7.7-.2 9.1-3.8 1.5-3.6-.2-7.7-3.9-9.1-3.5-1.5-7.6.3-9.1 3.8-1.4 3.5.3 7.6 3.9 9.1zm38.3-21.4c3.5 1.5 7.7-.2 9.1-3.8 1.5-3.6-.2-7.7-3.9-9.1-3.6-1.5-7.6.3-9.1 3.8-1.3 3.6.4 7.7 3.9 9.1zm64.4-5.6c-3.6 1.5-7.8-.2-9.1-3.7-1.5-3.6.2-7.8 3.8-9.2 3.6-1.4 7.7.3 9.2 3.9 1.3 3.5-.4 7.5-3.9 9zm15.9 9.3c-3.6 1.5-7.7-.2-9.1-3.7-1.5-3.6.2-7.8 3.7-9.1 3.6-1.5 7.7.2 9.2 3.8 1.5 3.5-.3 7.5-3.8 9zm4.7 17.7c-3.6 1.5-7.8-.2-9.2-3.8-1.5-3.6.2-7.7 3.9-9.1 3.6-1.5 7.7.3 9.2 3.8 1.3 3.5-.4 7.6-3.9 9.1zM89.3 35.8c-3.6 1.5-7.8-.2-9.2-3.8-1.4-3.6.2-7.7 3.9-9.1 3.6-1.5 7.7.3 9.2 3.8 1.4 3.6-.3 7.7-3.9 9.1zM69.7 17.7l8.9 4.7V9.3l-8.9 2.8c-.2-.3-.5-.6-.9-.9L72.4 0H59.6l3.5 11.2c-.3.3-.6.5-.9.9l-8.8-2.8v13.1l8.8-4.7c.3.3.6.7.9.9l-5 15.4v.1c-.2.8-.4 1.6-.4 2.4 0 4.1 3.1 7.5 7 8.1h.2c.3 0 .7.1 1 .1.4 0 .7 0 1-.1h.2c4-.6 7.1-4.1 7.1-8.1 0-.8-.1-1.7-.4-2.4V34l-5.1-15.4c.4-.2.7-.6 1-.9zM66 92.8c16.9 0 32.8 1.1 47.1 3.2 4-16.9 8.9-26.7 14-33.5l-9.6-3.4c1 4.9 1.1 7.2 0 10.2-1.5-1.4-3-4.3-4.2-8.7L108.6 76c2.8-2 5-3.2 7.5-3.3-4.4 9.4-10 11.9-13.6 11.2-4.3-.8-6.3-4.6-5.6-7.9 1-4.7 5.7-5.9 8-.5 4.3-8.7-3-11.4-7.6-8.8 7.1-7.2 7.9-13.5 2.1-21.1-8 6.1-8.1 12.3-4.5 20.8-4.7-5.4-12.1-2.5-9.5 6.2 3.4-5.2 7.9-2 7.2 3.1-.6 4.3-6.4 7.8-13.5 7.2-10.3-.9-10.9-8-11.2-13.8 2.5-.5 7.1 1.8 11 7.3L80.2 60c-4.1 4.4-8 5.3-12.3 5.4 1.4-4.4 8-11.6 8-11.6H55.5s6.4 7.2 7.9 11.6c-4.2-.1-8-1-12.3-5.4l1.4 16.4c3.9-5.5 8.5-7.7 10.9-7.3-.3 5.8-.9 12.8-11.1 13.8-7.2.6-12.9-2.9-13.5-7.2-.7-5 3.8-8.3 7.1-3.1 2.7-8.7-4.6-11.6-9.4-6.2 3.7-8.5 3.6-14.7-4.6-20.8-5.8 7.6-5 13.9 2.2 21.1-4.7-2.6-11.9.1-7.7 8.8 2.3-5.5 7.1-4.2 8.1.5.7 3.3-1.3 7.1-5.7 7.9-3.5.7-9-1.8-13.5-11.2 2.5.1 4.7 1.3 7.5 3.3l-4.7-15.4c-1.2 4.4-2.7 7.2-4.3 8.7-1.1-3-.9-5.3 0-10.2l-9.5 3.4c5 6.9 9.9 16.7 14 33.5 14.8-2.1 30.8-3.2 47.7-3.2z\"
></path>
</svg>
<!--<![endif]-->
<!--[if IE 8]>
<img src=\"/assets/images/govuk-logotype-crown.png\" class=\"govuk-header__logotype-crown-fallback-image\" width=\"36\" height=\"32\" alt=\"\">
<![endif]-->
<span class=\"govuk-header__logotype-text\">
GOV.UK
</span>
</span>·········
</a>
</div>·····
<div class=\"govuk-header__content\">··········
<a href=\"http://localhost:3000/confirmation\" class=\"govuk-header__link govuk-header__service-name\">
GitHub Requests Application·
</a>···············
</div>·····
</div>
</header>········
<div class=\"govuk-width-container \">·········
<a href=\"/home\" class=\"govuk-back-link\">Back</a>··
<main class=\"govuk-main-wrapper \" id=\"main-content\" role=\"main\">···········
<div class=\"govuk-grid-row\">
<div class=\"govuk-grid-column-two-thirds\">
<h1 class=\"govuk-heading-l\">Add a GitHub member to a team</h1>·
<p class=\"govuk-body\">
When a user has access to our GitHub organisations and they wish to be added to a team within the cabinetoffice GitHub organisation.
</p>········
<div class=\"govuk-error-summary\" tabindex=\"0\" data-module=\"govuk-error-summary\">···
<div role=\"alert\">
<h2 class=\"govuk-error-summary__title\">
There is a problem
</h2>
<div class=\"govuk-error-summary__body\">·······
<ul class=\"govuk-list govuk-error-summary__list\">·········
<li>···········
<a href=\"#github_handle\">Enter the username of the GitHub handle (aka GitHub account)</a>···········
</li>·········
</ul>
</div>
</div>
</div>····
<form method=\"post\" novalidate>···········
<div class=\"govuk-form-group\">
<label class=\"govuk-label govuk-label--m\" for=\"team_name\">
Team name
</label>·
<input class=\"govuk-input govuk-input--width-10\" id=\"team_name\" name=\"team_name\" type=\"text\" value=\"team1\">·
</div>·····················
<div class=\"govuk-form-group govuk-form-group--error\">
<label class=\"govuk-label govuk-label--m\" for=\"github_handle\">
Member GitHub handle
</label>········
<p id=\"github_handle-error\" class=\"govuk-error-message\">
<span class=\"govuk-visually-hidden\">Error:</span> Enter the username of the GitHub handle (aka GitHub account)
</p>
<input class=\"govuk-input govuk-input--width-10 govuk-input--error\" id=\"github_handle\" name=\"github_handle\" type=\"text\" aria-describedby=\"github_handle-error\">·
</div>························
<button class=\"govuk-button\" data-module=\"govuk-button\">
Save
</button>··········
</form>
</div>
</div>·
</main>
</div>···········
<footer class=\"govuk-footer \" role=\"contentinfo\">
<div class=\"govuk-width-container \">·····
<div class=\"govuk-footer__meta\">
<div class=\"govuk-footer__meta-item govuk-footer__meta-item--grow\">·········
<h2 class=\"govuk-visually-hidden\">Support links</h2>···········
<ul class=\"govuk-footer__inline-list\">···············
<li class=\"govuk-footer__inline-list-item\">
<a class=\"govuk-footer__link\" href=\"#\">
Policies
</a>
</li>···············
<li class=\"govuk-footer__inline-list-item\">
<a class=\"govuk-footer__link\" href=\"#\">
Cookies
</a>
</li>···············
<li class=\"govuk-footer__inline-list-item\">
<a class=\"govuk-footer__link\" href=\"#\">
Contact us
</a>
</li>···············
<li class=\"govuk-footer__inline-list-item\">
<a class=\"govuk-footer__link\" href=\"#\">
Accessibility
</a>
</li>···············
</ul>·······························
<svg
aria-hidden=\"true\"
focusable=\"false\"
class=\"govuk-footer__licence-logo\"
xmlns=\"http://www.w3.org/2000/svg\"
viewBox=\"0 0 483.2 195.7\"
height=\"17\"
width=\"41\"
>
<path
fill=\"currentColor\"
d=\"M421.5 142.8V.1l-50.7 32.3v161.1h112.4v-50.7zm-122.3-9.6A47.12 47.12 0 0 1 221 97.8c0-26 21.1-47.1 47.1-47.1 16.7 0 31.4 8.7 39.7 21.8l42.7-27.2A97.63 97.63 0 0 0 268.1 0c-36.5 0-68.3 20.1-85.1 49.7A98 98 0 0 0 97.8 0C43.9 0 0 43.9 0 97.8s43.9 97.8 97.8 97.8c36.5 0 68.3-20.1 85.1-49.7a97.76 97.76 0 0 0 149.6 25.4l19.4 22.2h3v-87.8h-80l24.3 27.5zM97.8 145c-26 0-47.1-21.1-47.1-47.1s21.1-47.1 47.1-47.1 47.2 21 47.2 47S123.8 145 97.8 145\"
/>
</svg>
<span class=\"govuk-footer__licence-description\">···········
All content is available under the
<a
class=\"govuk-footer__link\"
href=\"https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/\"
rel=\"license\"
>Open Government Licence v3.0</a>, except where otherwise stated···········
</span>
</div>
<div class=\"govuk-footer__meta-item\">
<a
class=\"govuk-footer__link govuk-footer__copyright-logo\"
href=\"https://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/uk-government-licensing-framework/crown-copyright/\"
>© Crown copyright</a>
</div>
</div>
</div>
</footer>·········
<script src=\"//d6nh3dxv55e16.cloudfront.net/javascripts/govuk-frontend/v3.11.0/govuk-frontend-3.11.0.min.js\"></script>
<script>window.GOVUKFrontend.initAll()</script>·
</body>
</html>
"
67 | const mockLog = log.info as jest.Mock;
68 |
> 69 | expect(res.text).toContain(MOCK_REDIRECT_MESSAGE);
| ^
70 | expect(mockLog).toBeCalledWith(MOCK_POST_ADD_TEAM_MEMBER_RESPONSE);
71 | expect(mockedLogger).toHaveBeenCalledTimes(1);
72 | expect(mockedAuth).toHaveBeenCalledTimes(1);
at test/integration/routes/add-team-member.spec.ts:69:30
at fulfilled (test/integration/routes/add-team-member.spec.ts:28:58)
● Remove-member endpoint integration tests › POST tests › Should redirect to home page after POST request
expect(received).toEqual(expected) // deep equality
Expected: 302
Received: 200
42 | const res = await request(app).post(config.REMOVE_MEMBER_URL).send(MOCK_POST_REMOVE_MEMBER);
43 |
> 44 | expect(res.status).toEqual(302);
| ^
45 | expect(res.text).toContain(MOCK_REDIRECT_MESSAGE);
46 | expect(mockedLogger).toHaveBeenCalledTimes(1);
47 | expect(mockedAuth).toHaveBeenCalledTimes(1);
at test/integration/routes/remove-member.spec.ts:44:32
at fulfilled (test/integration/routes/remove-member.spec.ts:28:58)
● Remove-member endpoint integration tests › POST tests › Should log the GitHub Handle and More Details on POST request.
expect(jest.fn()).toBeCalledWith(...expected)
Expected: "Github Handle: example"
Received: "Validation error on remove-member page"
Number of calls: 1
67 | const mockLog = log.info as jest.Mock;
68 |
> 69 | expect(mockLog).toBeCalledWith(MOCK_POST_REMOVE_MEMBER_RESPONSE);
| ^
70 | expect(res.text).toContain(MOCK_REDIRECT_MESSAGE);
71 | expect(mockedLogger).toHaveBeenCalledTimes(1);
72 | expect(mockedAuth).toHaveBeenCalledTimes(1);
at test/integration/routes/remove-member.spec.ts:69:29
at fulfilled (test/integration/routes/remove-member.spec.ts:28:58)
● Member-request endpoint integration tests › POST tests › Should redirect to home page after POST request
expect(received).toEqual(expected) // deep equality
Expected: 302
Received: 200
41 | const res = await request(app).post(config.MEMBER_REQUST_URL).send(MOCK_POST_MEMBER_REQUEST);
42 |
> 43 | expect(res.status).toEqual(302);
| ^
44 | expect(res.text).toContain(MOCK_REDIRECT_MESSAGE);
45 | expect(mockedLogger).toHaveBeenCalledTimes(1);
46 | expect(mockedAuth).toHaveBeenCalledTimes(1);
at test/integration/routes/member-request.spec.ts:43:32
at fulfilled (test/integration/routes/member-request.spec.ts:28:58)
● Member-request endpoint integration tests › POST tests › Should log the github handle and on POST request.
expect(jest.fn()).toBeCalledWith(...expected)
Expected: "GitHub Handle: example"
Received: "Validation error on member-request page"
Number of calls: 1
65 | const mockLog = log.info as jest.Mock;
66 |
> 67 | expect(mockLog).toBeCalledWith(MOCK_POST_MEMBER_REQUEST_RESPONSE);
| ^
68 | expect(res.text).toContain(MOCK_REDIRECT_MESSAGE);
69 | expect(mockedLogger).toHaveBeenCalledTimes(1);
70 | expect(mockedAuth).toHaveBeenCalledTimes(1);
at test/integration/routes/member-request.spec.ts:67:29
at fulfilled (test/integration/routes/member-request.spec.ts:28:58)
● add-repo endpoint integration tests › POST tests › Should redirect to home page after POST request
expect(received).toEqual(expected) // deep equality
Expected: 302
Received: 200
41 | const res = await request(app).post(config.ADD_REPO_URL).send(MOCK_POST_ADD_REPO);
42 |
> 43 | expect(res.status).toEqual(302);
| ^
44 | expect(res.text).toContain(MOCK_REDIRECT_MESSAGE);
45 | expect(mockedLogger).toHaveBeenCalledTimes(1);
46 | expect(mockedAuth).toHaveBeenCalledTimes(1);
at test/integration/routes/add-repo.spec.ts:43:32
at fulfilled (test/integration/routes/add-repo.spec.ts:28:58)
● add-repo endpoint integration tests › POST tests › Should log the Repository Name, Visibility and Description on POST request
expect(jest.fn()).toBeCalledWith(...expected)
Expected: "Repository Name: repo1, Visibility: public"
Received: "Validation error on add-repo page"
Number of calls: 1
66 | const mockLog = log.info as jest.Mock;
67 |
> 68 | expect(mockLog).toBeCalledWith(MOCK_POST_ADD_REPO_RESPONSE);
| ^
69 | expect(res.text).toContain(MOCK_REDIRECT_MESSAGE);
70 | expect(mockedLogger).toHaveBeenCalledTimes(1);
71 | expect(mockedAuth).toHaveBeenCalledTimes(1);
at test/integration/routes/add-repo.spec.ts:68:29
at fulfilled (test/integration/routes/add-repo.spec.ts:28:58)
● add-team endpoint integration tests › POST tests › Should redirect to home page after POST request
expect(received).toEqual(expected) // deep equality
Expected: 302
Received: 200
41 | const res = await request(app).post(config.ADD_TEAM_URL).send(MOCK_POST_ADD_TEAM);
42 |
> 43 | expect(res.status).toEqual(302);
| ^
44 | expect(res.text).toContain(MOCK_REDIRECT_MESSAGE);
45 | expect(mockedLogger).toHaveBeenCalledTimes(1);
46 | expect(mockedAuth).toHaveBeenCalledTimes(1);
at test/integration/routes/add-team.spec.ts:43:32
at fulfilled (test/integration/routes/add-team.spec.ts:28:58)
● add-team endpoint integration tests › POST tests › Should log the add team details POST request
expect(jest.fn()).toBeCalledWith(...expected)
Expected: "Team Name: team1, Team Maintainer GitHub Handle: bob"
Received: "Validation error on add-team page"
Number of calls: 1
66 | const mockLog = log.info as jest.Mock;
67 |
> 68 | expect(mockLog).toBeCalledWith(MOCK_POST_ADD_TEAM_RESPONSE);
| ^
69 | expect(res.text).toContain(MOCK_REDIRECT_MESSAGE);
70 | expect(mockedLogger).toHaveBeenCalledTimes(1);
71 | expect(mockedAuth).toHaveBeenCalledTimes(1);
at test/integration/routes/add-team.spec.ts:68:29
at fulfilled (test/integration/routes/add-team.spec.ts:28:58)
● add-team-member controller test suites › add-team-member POST tests › should log Team Name, Team Member GitHub handle on POST request
expect(jest.fn()).toHaveBeenCalledWith(...expected)
Expected: "Team Name: team1, Team Member GitHub Handle: joe"
Received: "Team Name: team1, Team Member GitHub Handle: undefined"
Number of calls: 1
54 | post(req, res);
55 |
> 56 | expect(mockLogInfo).toHaveBeenCalledWith(MOCK_POST_ADD_TEAM_MEMBER_RESPONSE);
| ^
57 |
58 | });
59 | });
at Object.<anonymous> (test/unit/controller/add-team-member.controller.spec.ts:56:33)
Annotations
Check failure on line 41 in test/integration/routes/add-team-member.spec.ts
github-actions / Tests annotations (🧪 jest-coverage-report-action)
add-team-member endpoint integration tests > POST tests > Should redirect to home page after POST request
Error: expect(received).toEqual(expected) // deep equality
Expected: 302
Received: 200
at /home/runner/work/github-requests-app/github-requests-app/test/integration/routes/add-team-member.spec.ts:44:32
at Generator.next (<anonymous>)
at fulfilled (/home/runner/work/github-requests-app/github-requests-app/test/integration/routes/add-team-member.spec.ts:28:58)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
Check failure on line 64 in test/integration/routes/add-team-member.spec.ts
github-actions / Tests annotations (🧪 jest-coverage-report-action)
add-team-member endpoint integration tests > POST tests > Should log the Team Name and Team Member GitHub handle on POST request.
Error: expect(received).toContain(expected) // indexOf
Expected substring: "Found. Redirecting to home"
Received string: "<!DOCTYPE html>
<html lang=\"en\" class=\"govuk-template \">
<head>
<meta charset=\"utf-8\">
<title>GOV.UK - The best place to find government services and information</title>
<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, viewport-fit=cover\">
<meta name=\"theme-color\" content=\"#0b0c0c\">······
<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">······
<link rel=\"shortcut icon\" sizes=\"16x16 32x32 48x48\" href=\"/assets/images/favicon.ico\" type=\"image/x-icon\">
<link rel=\"mask-icon\" href=\"/assets/images/govuk-mask-icon.svg\" color=\"#0b0c0c\">·
<link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"/assets/images/govuk-apple-touch-icon-180x180.png\">
<link rel=\"apple-touch-icon\" sizes=\"167x167\" href=\"/assets/images/govuk-apple-touch-icon-167x167.png\">
<link rel=\"apple-touch-icon\" sizes=\"152x152\" href=\"/assets/images/govuk-apple-touch-icon-152x152.png\">
<link rel=\"apple-touch-icon\" href=\"/assets/images/govuk-apple-touch-icon.png\">············
<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"//d6nh3dxv55e16.cloudfront.net/stylesheets/govuk-frontend/v3.11.0/govuk-frontend-3.11.0.min.css\">·
<link rel=\"SHORTCUT ICON\" href=\"//d6nh3dxv55e16.cloudfront.net/images/favicon.ico\"/>
<link rel=\"icon\" href=\"//d6nh3dxv55e16.cloudfront.net/images/favicon.ico\" type=\"image/x-icon\"/>·············
</head>
<body class=\"govuk-template__body \">
<script>document.body.className = ((document.body.className) ? document.body.className + ' js-enabled' : 'js-enabled');</script>···········
<a href=\"#main-content\" class=\"govuk-skip-link\" data-module=\"govuk-skip-link\">Skip to main content</a>················
<header class=\"govuk-header \" role=\"banner\" data-module=\"govuk-header\">
<div class=\"govuk-header__container govuk-width-container\">
<div class=\"govuk-header__logo\">
<a href=\"https://www.gov.uk\" class=\"govuk-header__link govuk-header__link--homepage\">
<span class=\"govuk-header__logotype\">
<!--[if gt IE 8]><!-->
<svg
aria-hidden=\"true\"
focusable=\"false\"
class=\"govuk-header__logotype-crown\"
xmlns=\"http://www.w3.org/2000/svg\"
viewBox=\"0 0 132 97\"
height=\"30\"
width=\"36\"
>
<path
fill=\"currentColor\" fill-rule=\"evenodd\"
d=\"M25 30.2c3.5 1.5 7.7-.2 9.1-3.7 1.5-3.6-.2-7.8-3.9-9.2-3.6-1.4-7.6.3-9.1 3.9-1.4 3.5.3 7.5 3.9 9zM9 39.5c3.6 1.5 7.8-.2 9.2-3.7 1.5-3.6-.2-7.8-3.9-9.1-3.6-1.5-7.6.2-9.1 3.8-1.4 3.5.3 7.5 3.8 9zM4.4 57.2c3.5 1.5 7.7-.2 9.1-3.8 1.5-3.6-.2-7.7-3.9-9.1-3.5-1.5-7.6.3-9.1 3.8-1.4 3.5.3 7.6 3.9 9.1zm38.3-21.4c3.5 1.5 7.7-.2 9.1-3.8 1.5-3.6-.2-7.7-3.9-9.1-3.6-1.5-7.6.3-9.1 3.8-1.3 3.6.4 7.7 3.9 9.1zm64.4-5.6c-3.6 1.5-7.8-.2-9.1-3.7-1.5-3.6.2-7.8 3.8-9.2 3.6-1.4 7.7.3 9.2 3.9 1.3 3.5-.4 7.5-3.9 9zm15.9 9.3c-3.6 1.5-7.7-.2-9.1-3.7-1.5-3.6.2-7.8 3.7-9.1 3.6-1.5 7.7.2 9.2 3.8 1.5 3.5-.3 7.5-3.8 9zm4.7 17.7c-3.6 1.5-7.8-.2-9.2-3.8-1.5-3.6.2-7.7 3.9-9.1 3.6-1.5 7.7.3 9.2 3.8 1.3 3.5-.4 7.6-3.9 9.1zM89.3 35.8c-3.6 1.5-7.8-.2-9.2-3.8-1.4-3.6.2-7.7 3.9-9.1 3.6-1.5 7.7.3 9.2 3.8 1.4 3.6-.3 7.7-3.9 9.1zM69.7 17.7l8.9 4.7V9.3l-8.9 2.8c-.2-.3-.5-.6-.9-.9L72.4 0H59.6l3.5 11.2c-.3.3-.6.5-.9.9l-8.8-2.8v13.1l8.8-4.7c.3.3.6.7.9.9l-5 15.4v.1c-.2.8-.4 1.6-.4 2.4 0 4.1 3.1 7.5 7 8.1h.2c.3 0 .7.1 1 .1.4 0 .7 0 1-.1h.2c4-.6 7.1-4.1 7.1-8.1 0-.8-.1-1.7-.4-2.4V34l-5.1-15.4c.4-.2.7-.6 1-.9zM66 92.8c16.9 0 32.8 1.1 47.1 3.2 4-16.9 8.9-26.7 14-33.5l-9.6-3.4c1 4.9 1.1 7.2 0 10.2-1.5-1.4-3-4.3-4.2-8.7L108.6 76c2.8-2 5-3.2 7.5-3.3-4.4 9.4-10 11.9-13.6 11.2-4.3-.8-6.3-4.6-5.6-7.9 1-4.7 5.7-5.9 8-.5 4.3-8.7-3-11.4-7.6-8.8 7.1-7.2 7.9-13.5 2.1-21.1-8 6.1-8.1 12.3-4.5 20.8-4.7-5.4-12.1-2.5-9.5 6.2 3.4-5.2 7.9-2 7.2 3.1-.6 4.3-6.4 7.8-13.5 7.2-10.3-.9-10.9-8-11.2-13.8 2.5-.5 7.1 1.8 11 7.3L80.2 60c-4.1 4.4-8 5.3-12.3 5.4 1.4-4.4 8-11.6 8-11.6H55.5s6.4 7.2 7.9 11.6c-4.2-.1-8-1-12.3-5.4l1.4 16.4c3.9-5.5 8.5-7.7 10.9-7.3-.3 5.8-.9 12.8-11.1 13.8-7.2.6-12.9-2.9-13.5-7.2-.7-5 3.8-8.3 7.1-3.1 2.7-8.7-4.6-11.6-9.4-6.2 3.7-8.5 3.6-14.7-4.6-20.8-5.8 7.6-5 13.9 2.2 21.1-4.7-2.6-11.9.1-7.7 8.8 2.3-5.5 7.1-4.2 8.1.5.7 3.3-1.3 7.1-5.7 7.9-3.5.7-9-1.8-13.5-11.2 2.5.1 4.7 1.3 7.5 3.3l-4.7-15.4c-1.2 4.4-2.7 7.2-4.3 8.7-1.1-3-.9-5.3 0-10.2l-9.5 3.4c5 6.9 9.9 16.7 14 33.5 14.8-2.1 30.8-3.2 47.7-3.2z\"
></path>
</svg>
<!--<![endif]-->
<!--[if IE 8]>
<img src=\"/assets/images/govuk-logotype-crown.png\" class=\"govuk-header__logotype-crown-fallback-image\" width=\"36\" height=\"32\" alt=\"\">
<![endif]-->
<span class=\"govuk-header__logotype-text\">
GOV.UK
</span>
</span>·········
</a>
</div>·····
<div class=\"govuk-header__content\">··········
<a href=\"http://localhost:3000/confirmation\" class=\"govuk-header__link govuk-header__service-name\">
GitHub Requests Application·
</a>···············
</div>·····
</div>
</header>········
<div class=\"govuk-width-container \">·········
<a href=\"/home\" class=\"govuk-back-link\">Back</a>··
<main class=\"govuk-main-wrapper \" id=\"main-content\" role=\"main\">···········
<div class=\"govuk-grid-row\">
<div class=\"govuk-grid-column-two-thirds\">
<h1 class=\"govuk-heading-l\">Add a GitHub member to a team</h1>·
<p class=\"govuk-body\">
When a user has access to our GitHub organisations and they wish to be added to a team within the cabinetoffice GitHub organisation.
</p>········
<div class=\"govuk-error-summary\" tabindex=\"0\" data-module=\"govuk-error-summary\">···
<div role=\"alert\">
<h2 class=\"govuk-error-summary__title\">
There is a problem
</h2>
<div class=\"govuk-error-summary__body\">·······
<ul class=\"govuk-list govuk-error-summary__list\">·········
<li>···········
<a href=\"#github_handle\">Enter the username of the GitHub handle (aka GitHub account)</a>···········
</li>·········
</ul>
</div>
</div>
</div>····
<form method=\"post\" novalidate>···········
<div class=\"govuk-form-group\">
<label class=\"govuk-label govuk-label--m\" for=\"team_name\">
Team name
</label>·
<input class=\"govuk-input govuk-input--width-10\" id=\"team_name\" name=\"team_name\" type=\"text\" value=\"team1\">·
</div>·····················
<div class=\"govuk-form-group govuk-form-group--error\">
<label class=\"govuk-label govuk-label--m\" for=\"github_handle\">
Member GitHub handle
</label>········
<p id=\"github_handle-error\" class=\"govuk-error-message\">
<span class=\"govuk-visually-hidden\">Error:</span> Enter the username of the GitHub handle (aka GitHub account)
</p>
<input class=\"govuk-input govuk-input--width-10 govuk-input--error\" id=\"github_handle\" name=\"github_handle\" type=\"text\" aria-describedby=\"github_handle-error\">·
</div>························
<button class=\"govuk-button\" data-module=\"govuk-button\">
Save
</button>··········
</form>
</div>
</div>·
</main>
</div>···········
<footer class=\"govuk-footer \" role=\"contentinfo\">
<div class=\"govuk-width-container \">·····
<div class=\"govuk-footer__meta\">
<div class=\"govuk-footer__meta-item govuk-footer__meta-item--grow\">·········
<h2 class=\"govuk-visually-hidden\">Support links</h2>···········
<ul class=\"govuk-footer__inline-list\">···············
<li class=\"govuk-footer__inline-list-item\">
<a class=\"govuk-footer__link\" href=\"#\">
Policies
</a>
</li>···············
<li class=\"govuk-footer__inline-list-item\">
<a class=\"govuk-footer__link\" href=\"#\">
Cookies
</a>
</li>···············
<li class=\"govuk-footer__inline-list-item\">
<a class=\"govuk-footer__link\" href=\"#\">
Contact us
</a>
</li>···············
<li class=\"govuk-footer__inline-list-item\">
<a class=\"govuk-footer__link\" href=\"#\">
Accessibility
</a>
</li>···············
</ul>·······························
<svg
aria-hidden=\"true\"
focusable=\"false\"
class=\"govuk-footer__licence-logo\"
xmlns=\"http://www.w3.org/2000/svg\"
viewBox=\"0 0 483.2 195.7\"
height=\"17\"
width=\"41\"
>
<path
fill=\"currentColor\"
d=\"M421.5 142.8V.1l-50.7 32.3v161.1h112.4v-50.7zm-122.3-9.6A47.12 47.12 0 0 1 221 97.8c0-26 21.1-47.1 47.1-47.1 16.7 0 31.4 8.7 39.7 21.8l42.7-27.2A97.63 97.63 0 0 0 268.1 0c-36.5 0-68.3 20.1-85.1 49.7A98 98 0 0 0 97.8 0C43.9 0 0 43.9 0 97.8s43.9 97.8 97.8 97.8c36.5 0 68.3-20.1 85.1-49.7a97.76 97.76 0 0 0 149.6 25.4l19.4 22.2h3v-87.8h-80l24.3 27.5zM97.8 145c-26 0-47.1-21.1-47.1-47.1s21.1-47.1 47.1-47.1 47.2 21 47.2 47S123.8 145 97.8 145\"
/>
</svg>
<span class=\"govuk-footer__licence-description\">···········
All content is available under the
<a
class=\"govuk-footer__link\"
href=\"https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/\"
rel=\"license\"
>Open Government Licence v3.0</a>, except where otherwise stated···········
</span>
</div>
<div class=\"govuk-footer__meta-item\">
<a
class=\"govuk-footer__link govuk-footer__copyright-logo\"
href=\"https://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/uk-government-licensing-framework/crown-copyright/\"
>© Crown copyright</a>
</div>
</div>
</div>
</footer>·········
<script src=\"//d6nh3dxv55e16.cloudfront.net/javascripts/govuk-frontend/v3.11.0/govuk-frontend-3.11.0.min.js\"></script>
<script>window.GOVUKFrontend.initAll()</script>·
</body>
</html>
"
at /home/runner/work/github-requests-app/github-requests-app/test/integration/routes/add-team-member.spec.ts:69:30
at Generator.next (<anonymous>)
at fulfilled (/home/runner/work/github-requests-app/github-requests-app/test/integration/routes/add-team-member.spec.ts:28:58)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
Check failure on line 41 in test/integration/routes/remove-member.spec.ts
github-actions / Tests annotations (🧪 jest-coverage-report-action)
Remove-member endpoint integration tests > POST tests > Should redirect to home page after POST request
Error: expect(received).toEqual(expected) // deep equality
Expected: 302
Received: 200
at /home/runner/work/github-requests-app/github-requests-app/test/integration/routes/remove-member.spec.ts:44:32
at Generator.next (<anonymous>)
at fulfilled (/home/runner/work/github-requests-app/github-requests-app/test/integration/routes/remove-member.spec.ts:28:58)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
Check failure on line 64 in test/integration/routes/remove-member.spec.ts
github-actions / Tests annotations (🧪 jest-coverage-report-action)
Remove-member endpoint integration tests > POST tests > Should log the GitHub Handle and More Details on POST request.
Error: expect(jest.fn()).toBeCalledWith(...expected)
Expected: "Github Handle: example"
Received: "Validation error on remove-member page"
Number of calls: 1
at /home/runner/work/github-requests-app/github-requests-app/test/integration/routes/remove-member.spec.ts:69:29
at Generator.next (<anonymous>)
at fulfilled (/home/runner/work/github-requests-app/github-requests-app/test/integration/routes/remove-member.spec.ts:28:58)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
Check failure on line 40 in test/integration/routes/member-request.spec.ts
github-actions / Tests annotations (🧪 jest-coverage-report-action)
Member-request endpoint integration tests > POST tests > Should redirect to home page after POST request
Error: expect(received).toEqual(expected) // deep equality
Expected: 302
Received: 200
at /home/runner/work/github-requests-app/github-requests-app/test/integration/routes/member-request.spec.ts:43:32
at Generator.next (<anonymous>)
at fulfilled (/home/runner/work/github-requests-app/github-requests-app/test/integration/routes/member-request.spec.ts:28:58)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
Check failure on line 62 in test/integration/routes/member-request.spec.ts
github-actions / Tests annotations (🧪 jest-coverage-report-action)
Member-request endpoint integration tests > POST tests > Should log the github handle and on POST request.
Error: expect(jest.fn()).toBeCalledWith(...expected)
Expected: "GitHub Handle: example"
Received: "Validation error on member-request page"
Number of calls: 1
at /home/runner/work/github-requests-app/github-requests-app/test/integration/routes/member-request.spec.ts:67:29
at Generator.next (<anonymous>)
at fulfilled (/home/runner/work/github-requests-app/github-requests-app/test/integration/routes/member-request.spec.ts:28:58)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
Check failure on line 40 in test/integration/routes/add-repo.spec.ts
github-actions / Tests annotations (🧪 jest-coverage-report-action)
add-repo endpoint integration tests > POST tests > Should redirect to home page after POST request
Error: expect(received).toEqual(expected) // deep equality
Expected: 302
Received: 200
at /home/runner/work/github-requests-app/github-requests-app/test/integration/routes/add-repo.spec.ts:43:32
at Generator.next (<anonymous>)
at fulfilled (/home/runner/work/github-requests-app/github-requests-app/test/integration/routes/add-repo.spec.ts:28:58)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
Check failure on line 63 in test/integration/routes/add-repo.spec.ts
github-actions / Tests annotations (🧪 jest-coverage-report-action)
add-repo endpoint integration tests > POST tests > Should log the Repository Name, Visibility and Description on POST request
Error: expect(jest.fn()).toBeCalledWith(...expected)
Expected: "Repository Name: repo1, Visibility: public"
Received: "Validation error on add-repo page"
Number of calls: 1
at /home/runner/work/github-requests-app/github-requests-app/test/integration/routes/add-repo.spec.ts:68:29
at Generator.next (<anonymous>)
at fulfilled (/home/runner/work/github-requests-app/github-requests-app/test/integration/routes/add-repo.spec.ts:28:58)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
Check failure on line 40 in test/integration/routes/add-team.spec.ts
github-actions / Tests annotations (🧪 jest-coverage-report-action)
add-team endpoint integration tests > POST tests > Should redirect to home page after POST request
Error: expect(received).toEqual(expected) // deep equality
Expected: 302
Received: 200
at /home/runner/work/github-requests-app/github-requests-app/test/integration/routes/add-team.spec.ts:43:32
at Generator.next (<anonymous>)
at fulfilled (/home/runner/work/github-requests-app/github-requests-app/test/integration/routes/add-team.spec.ts:28:58)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
Check failure on line 63 in test/integration/routes/add-team.spec.ts
github-actions / Tests annotations (🧪 jest-coverage-report-action)
add-team endpoint integration tests > POST tests > Should log the add team details POST request
Error: expect(jest.fn()).toBeCalledWith(...expected)
Expected: "Team Name: team1, Team Maintainer GitHub Handle: bob"
Received: "Validation error on add-team page"
Number of calls: 1
at /home/runner/work/github-requests-app/github-requests-app/test/integration/routes/add-team.spec.ts:68:29
at Generator.next (<anonymous>)
at fulfilled (/home/runner/work/github-requests-app/github-requests-app/test/integration/routes/add-team.spec.ts:28:58)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
Check failure on line 49 in test/unit/controller/add-team-member.controller.spec.ts
github-actions / Tests annotations (🧪 jest-coverage-report-action)
add-team-member controller test suites > add-team-member POST tests > should log Team Name, Team Member GitHub handle on POST request
Error: expect(jest.fn()).toHaveBeenCalledWith(...expected)
Expected: "Team Name: team1, Team Member GitHub Handle: joe"
Received: "Team Name: team1, Team Member GitHub Handle: undefined"
Number of calls: 1
at Object.<anonymous> (/home/runner/work/github-requests-app/github-requests-app/test/unit/controller/add-team-member.controller.spec.ts:56:33)
at Promise.then.completed (/home/runner/work/github-requests-app/github-requests-app/node_modules/jest-circus/build/utils.js:298:28)
at new Promise (<anonymous>)
at callAsyncCircusFn (/home/runner/work/github-requests-app/github-requests-app/node_modules/jest-circus/build/utils.js:231:10)
at _callCircusTest (/home/runner/work/github-requests-app/github-requests-app/node_modules/jest-circus/build/run.js:316:40)
at _runTest (/home/runner/work/github-requests-app/github-requests-app/node_modules/jest-circus/build/run.js:252:3)
at _runTestsForDescribeBlock (/home/runner/work/github-requests-app/github-requests-app/node_modules/jest-circus/build/run.js:126:9)
at _runTestsForDescribeBlock (/home/runner/work/github-requests-app/github-requests-app/node_modules/jest-circus/build/run.js:121:9)
at _runTestsForDescribeBlock (/home/runner/work/github-requests-app/github-requests-app/node_modules/jest-circus/build/run.js:121:9)
at run (/home/runner/work/github-requests-app/github-requests-app/node_modules/jest-circus/build/run.js:71:3)
at runAndTransformResultsToJestFormat (/home/runner/work/github-requests-app/github-requests-app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
at jestAdapter (/home/runner/work/github-requests-app/github-requests-app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
at runTestInternal (/home/runner/work/github-requests-app/github-requests-app/node_modules/jest-runner/build/runTest.js:367:16)
at runTest (/home/runner/work/github-requests-app/github-requests-app/node_modules/jest-runner/build/runTest.js:444:34)