From 49afec8e467a8ef86d9ea838c55dc7f436e0e0fc Mon Sep 17 00:00:00 2001 From: David Boyne Date: Tue, 13 Aug 2019 10:55:12 +0100 Subject: [PATCH] 1.2.1 (#66) * Update changelog for 1.2.0 * Fix/#2 status codes (#65) * 1.2.0 (#62) * Update changelog for 1.2.0 * feat(security): prevent secrets from leaking to source control (#59) * feat(security): prevent secrets from leaking to source control * chore: update lint-staged pacakgeto use v9 * fix: update versions * fix(security): add secrets baseline * :construction: Added two extra status codes * :white_check_mark: Unit checks now validates options groups * :construction: Label is only visible as a label attribute * Update changelog for 1.2.1 * fix(security): clean up markdown (#64) * Update changelog for 1.2.1 --- CHANGELOG.md | 6 ++++ SECURITY.md | 1 - client/src/components/RouteModal/index.js | 39 ++++++++++++++++----- client/src/components/RouteModal/spec.js | 42 +++++++++++++++-------- client/src/utils/consts/index.js | 4 ++- 5 files changed, 67 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bcdd90a..71d2be5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.2.1 + +- Added more status codes ([zecarrera](https://github.com/zecarrera) in [#65](https://github.com/boyney123/mockit/pull/65)) + +- Clean up markdown #64 ([lirantal](https://github.com/lirantal) in [#64](https://github.com/boyney123/mockit/pull/64)) + ## 1.2.0 - Prevent secrets from leaking to source control ([lirantal](https://github.com/lirantal) in [#59](https://github.com/boyney123/mockit/pull/59)) diff --git a/SECURITY.md b/SECURITY.md index 1af53bd..8191b66 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -40,4 +40,3 @@ sending the report over a secure medium. Your efforts to responsibly disclose your findings are sincerely appreciated and will be taken into account to acknowledge your contributions. -``` diff --git a/client/src/components/RouteModal/index.js b/client/src/components/RouteModal/index.js index 9ddc62e..b77a19e 100644 --- a/client/src/components/RouteModal/index.js +++ b/client/src/components/RouteModal/index.js @@ -18,7 +18,9 @@ const STATUS_CODES = [ StatusCodes.NOT_FOUND, StatusCodes.CONFLICT, StatusCodes.UNPROCESSABLE_ENTITY, - StatusCodes.INTERNAL_SERVER_ERROR + StatusCodes.INTERNAL_SERVER_ERROR, + StatusCodes.SERVICE_UNAVAILABLE, + StatusCodes.GATEWAY_TIMEOUT ]; /** @@ -83,6 +85,10 @@ const Modal = function(props) { } }; + const statusCodeStartingWith = startingNumber => { + return STATUS_CODES.filter(routeStatusCode => routeStatusCode.startsWith(startingNumber)); + }; + return ( <>
@@ -123,13 +129,29 @@ const Modal = function(props) {
- +
@@ -197,3 +219,4 @@ const Modal = function(props) { }; export default Modal; + diff --git a/client/src/components/RouteModal/spec.js b/client/src/components/RouteModal/spec.js index b5377c5..f5f7b46 100644 --- a/client/src/components/RouteModal/spec.js +++ b/client/src/components/RouteModal/spec.js @@ -60,25 +60,37 @@ describe("Route Modal", () => { expect(getByValue("PATCH", dropdownOptions)).toBeVisible(); }); + it("with a dropdown list with three groups", () => { + const route = buildRoute(); + const { getByLabelText } = render(); + const dropdown = getByLabelText("route-statuscode"); + const dropdownOptionGroups = dropdown.childNodes; + + expect(dropdownOptionGroups.length).toEqual(3); + expect(getByLabelText("2xx", dropdownOptionGroups)).toBeVisible(); + expect(getByLabelText("4xx", dropdownOptionGroups)).toBeVisible(); + expect(getByLabelText("5xx", dropdownOptionGroups)).toBeVisible(); + }); + it("with a dropdown list of all available status code", () => { const route = buildRoute(); const { getByLabelText, getByValue } = render(); const dropdown = getByLabelText("route-statuscode"); - const dropdownOptions = dropdown.children; - - expect(dropdownOptions.length).toEqual(11); - - expect(getByValue("200", dropdownOptions)).toBeVisible(); - expect(getByValue("201", dropdownOptions)).toBeVisible(); - expect(getByValue("202", dropdownOptions)).toBeVisible(); - expect(getByValue("204", dropdownOptions)).toBeVisible(); - expect(getByValue("400", dropdownOptions)).toBeVisible(); - expect(getByValue("401", dropdownOptions)).toBeVisible(); - expect(getByValue("403", dropdownOptions)).toBeVisible(); - expect(getByValue("404", dropdownOptions)).toBeVisible(); - expect(getByValue("409", dropdownOptions)).toBeVisible(); - expect(getByValue("422", dropdownOptions)).toBeVisible(); - expect(getByValue("500", dropdownOptions)).toBeVisible(); + const dropdownOptionGroups = dropdown.childNodes; + + expect(getByValue("200", dropdownOptionGroups[0].children)).toBeVisible(); + expect(getByValue("201", dropdownOptionGroups[0].children)).toBeVisible(); + expect(getByValue("202", dropdownOptionGroups[0].children)).toBeVisible(); + expect(getByValue("204", dropdownOptionGroups[0].children)).toBeVisible(); + expect(getByValue("400", dropdownOptionGroups[1].children)).toBeVisible(); + expect(getByValue("401", dropdownOptionGroups[1].children)).toBeVisible(); + expect(getByValue("403", dropdownOptionGroups[1].children)).toBeVisible(); + expect(getByValue("404", dropdownOptionGroups[1].children)).toBeVisible(); + expect(getByValue("409", dropdownOptionGroups[1].children)).toBeVisible(); + expect(getByValue("422", dropdownOptionGroups[1].children)).toBeVisible(); + expect(getByValue("500", dropdownOptionGroups[2].children)).toBeVisible(); + expect(getByValue("503", dropdownOptionGroups[2].children)).toBeVisible(); + expect(getByValue("504", dropdownOptionGroups[2].children)).toBeVisible(); }); it("with a dropdown list of all available delay values", () => { diff --git a/client/src/utils/consts/index.js b/client/src/utils/consts/index.js index a22d4e3..5b282eb 100644 --- a/client/src/utils/consts/index.js +++ b/client/src/utils/consts/index.js @@ -17,7 +17,9 @@ export const StatusCodes = { NOT_FOUND: "404", CONFLICT: "409", UNPROCESSABLE_ENTITY: "422", - INTERNAL_SERVER_ERROR: "500" + INTERNAL_SERVER_ERROR: "500", + SERVICE_UNAVAILABLE: "503", + GATEWAY_TIMEOUT: "504" }; export const MOCKIT_SERVER_URL = process.env.REACT_APP_MOCKIT_SERVER_URL || "localhost:3000";