From ca562d74c0b7659c622f89f9720001a58fbabe5d Mon Sep 17 00:00:00 2001 From: jamesgeorge007 Date: Wed, 20 Mar 2024 00:07:32 +0530 Subject: [PATCH] chore: cleanup --- .../src/__tests__/commands/test.spec.ts | 1 + .../functions/checks/isRESTCollection.spec.ts | 84 ------------------- .../samples/collections/coll-v2-req-v3.json | 54 ++++++++++++ .../samples/collections/sample-coll.json | 2 +- .../samples/environments/env-v0.json | 2 +- .../samples/environments/env-v1.json | 2 +- packages/hoppscotch-cli/src/utils/checks.ts | 44 ---------- packages/hoppscotch-cli/src/utils/mutators.ts | 20 ++--- .../hoppscotch-data/src/collection/index.ts | 1 - 9 files changed, 65 insertions(+), 145 deletions(-) delete mode 100644 packages/hoppscotch-cli/src/__tests__/functions/checks/isRESTCollection.spec.ts create mode 100644 packages/hoppscotch-cli/src/__tests__/samples/collections/coll-v2-req-v3.json diff --git a/packages/hoppscotch-cli/src/__tests__/commands/test.spec.ts b/packages/hoppscotch-cli/src/__tests__/commands/test.spec.ts index 9be424aa2db..25b3325d244 100644 --- a/packages/hoppscotch-cli/src/__tests__/commands/test.spec.ts +++ b/packages/hoppscotch-cli/src/__tests__/commands/test.spec.ts @@ -72,6 +72,7 @@ describe("Test `hopp test ` command:", () => { { fileName: "coll-v1-req-v0.json", collVersion: 1, reqVersion: 0 }, { fileName: "coll-v1-req-v1.json", collVersion: 1, reqVersion: 1 }, { fileName: "coll-v2-req-v2.json", collVersion: 2, reqVersion: 2 }, + { fileName: "coll-v2-req-v3.json", collVersion: 2, reqVersion: 3 }, ]; testFixtures.forEach(({ collVersion, fileName, reqVersion }) => { diff --git a/packages/hoppscotch-cli/src/__tests__/functions/checks/isRESTCollection.spec.ts b/packages/hoppscotch-cli/src/__tests__/functions/checks/isRESTCollection.spec.ts deleted file mode 100644 index b9b30e9aca7..00000000000 --- a/packages/hoppscotch-cli/src/__tests__/functions/checks/isRESTCollection.spec.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { isRESTCollection } from "../../../utils/checks"; - -describe("isRESTCollection", () => { - test("Undefined collection value.", () => { - expect(isRESTCollection(undefined)).toBeFalsy(); - }); - - test("Invalid id value.", () => { - expect( - isRESTCollection({ - v: 1, - name: "test", - id: 1, - }) - ).toBeFalsy(); - }); - - test("Invalid requests value.", () => { - expect( - isRESTCollection({ - v: 1, - name: "test", - id: "1", - requests: null, - }) - ).toBeFalsy(); - }); - - test("Invalid folders value.", () => { - expect( - isRESTCollection({ - v: 1, - name: "test", - id: "1", - requests: [], - folders: undefined, - }) - ).toBeFalsy(); - }); - - test("Invalid RESTCollection(s) in folders.", () => { - expect( - isRESTCollection({ - v: 1, - name: "test", - id: "1", - requests: [], - folders: [ - { - v: 1, - name: "test1", - id: "2", - requests: undefined, - folders: [], - }, - ], - }) - ).toBeFalsy(); - }); - - test("Invalid HoppRESTRequest(s) in requests.", () => { - expect( - isRESTCollection({ - v: 1, - name: "test", - id: "1", - requests: [{}], - folders: [], - }) - ).toBeFalsy(); - }); - - test("Valid RESTCollection.", () => { - expect( - isRESTCollection({ - v: 1, - name: "test", - id: "1", - requests: [], - folders: [], - }) - ).toBeTruthy(); - }); -}); diff --git a/packages/hoppscotch-cli/src/__tests__/samples/collections/coll-v2-req-v3.json b/packages/hoppscotch-cli/src/__tests__/samples/collections/coll-v2-req-v3.json new file mode 100644 index 00000000000..fcce134a8de --- /dev/null +++ b/packages/hoppscotch-cli/src/__tests__/samples/collections/coll-v2-req-v3.json @@ -0,0 +1,54 @@ +{ + "v": 2, + "name": "coll-v2", + "folders": [], + "requests": [ + { + "v": "3", + "endpoint": "https://httpbin.org/get", + "headers": [ + { + "key": "Inactive-Header", + "value": "Inactive Header", + "active": false + }, + { + "key": "Authorization", + "value": "Bearer token123", + "active": true + } + ], + "params": [ + { + "key": "key", + "value": "value", + "active": true + }, + { + "key": "inactive-key", + "value": "inactive-param", + "active": false + } + ], + "name": "req-v3", + "method": "GET", + "preRequestScript": "", + "testScript": "pw.test(\"Asserts request params\", () => {\n pw.expect(pw.response.body.args.key).toBe(\"value\")\n pw.expect(pw.response.body.args[\"inactive-key\"]).toBe(undefined)\n})\n\npw.test(\"Asserts request headers\", () => {\n pw.expect(pw.response.body.headers[\"Authorization\"]).toBe(\"Bearer token123\")\n pw.expect(pw.response.body.headers[\"Inactive-Header\"]).toBe(undefined)\n})", + "body": { + "contentType": null, + "body": null + }, + "auth": { + "authType": "bearer", + "authActive": true, + "token": "token123" + }, + "requestVariables": [] + } + ], + "auth": { + "authType": "inherit", + "authActive": true + }, + "headers": [] +} \ No newline at end of file diff --git a/packages/hoppscotch-cli/src/__tests__/samples/collections/sample-coll.json b/packages/hoppscotch-cli/src/__tests__/samples/collections/sample-coll.json index a85a8c8fb8c..b0ca8cecf2f 100644 --- a/packages/hoppscotch-cli/src/__tests__/samples/collections/sample-coll.json +++ b/packages/hoppscotch-cli/src/__tests__/samples/collections/sample-coll.json @@ -5,7 +5,7 @@ "requests": [ { "v": "2", - "endpoint": "<>", + "endpoint": "<>", "name": "", "params": [], "headers": [], diff --git a/packages/hoppscotch-cli/src/__tests__/samples/environments/env-v0.json b/packages/hoppscotch-cli/src/__tests__/samples/environments/env-v0.json index 55054f535e9..16b232857c5 100644 --- a/packages/hoppscotch-cli/src/__tests__/samples/environments/env-v0.json +++ b/packages/hoppscotch-cli/src/__tests__/samples/environments/env-v0.json @@ -2,7 +2,7 @@ "name": "env-v0", "variables": [ { - "key": "baseUrl", + "key": "baseURL", "value": "https://echo.hoppscotch.io" } ] diff --git a/packages/hoppscotch-cli/src/__tests__/samples/environments/env-v1.json b/packages/hoppscotch-cli/src/__tests__/samples/environments/env-v1.json index 7be123a5ceb..4ab5aa65f74 100644 --- a/packages/hoppscotch-cli/src/__tests__/samples/environments/env-v1.json +++ b/packages/hoppscotch-cli/src/__tests__/samples/environments/env-v1.json @@ -2,7 +2,7 @@ "name": "env-v0", "variables": [ { - "key": "baseUrl", + "key": "baseURL", "value": "https://echo.hoppscotch.io", "secret": false } diff --git a/packages/hoppscotch-cli/src/utils/checks.ts b/packages/hoppscotch-cli/src/utils/checks.ts index f935cbe4ac3..083aab7f2e2 100644 --- a/packages/hoppscotch-cli/src/utils/checks.ts +++ b/packages/hoppscotch-cli/src/utils/checks.ts @@ -1,5 +1,3 @@ -import { HoppCollection, isHoppRESTRequest } from "@hoppscotch/data"; -import * as A from "fp-ts/Array"; import { CommanderError } from "commander"; import { HoppCLIError, HoppErrnoException } from "../types/errors"; @@ -14,48 +12,6 @@ export const hasProperty =

( prop: P ): target is Record => prop in target; -/** - * Typeguard to check valid Hoppscotch REST Collection. - * @param param The object to be checked. - * @returns True, if unknown parameter is valid Hoppscotch REST Collection; - * False, otherwise. - */ -export const isRESTCollection = (param: unknown): param is HoppCollection => { - if (!!param && typeof param === "object") { - if (!hasProperty(param, "v") || typeof param.v !== "number") { - return false; - } - if (!hasProperty(param, "name") || typeof param.name !== "string") { - return false; - } - if (hasProperty(param, "id") && typeof param.id !== "string") { - return false; - } - if (!hasProperty(param, "requests") || !Array.isArray(param.requests)) { - return false; - } else { - // Checks each requests array to be valid HoppRESTRequest. - const checkRequests = A.every(isHoppRESTRequest)(param.requests); - if (!checkRequests) { - return false; - } - } - if (!hasProperty(param, "folders") || !Array.isArray(param.folders)) { - return false; - } else { - // Checks each folder to be valid REST collection. - const checkFolders = A.every(isRESTCollection)(param.folders); - if (!checkFolders) { - return false; - } - } - - return true; - } - - return false; -}; - /** * Checks if given error data is of type HoppCLIError, based on existence * of code property. diff --git a/packages/hoppscotch-cli/src/utils/mutators.ts b/packages/hoppscotch-cli/src/utils/mutators.ts index 1f8ffeacfd1..91b1383f4e2 100644 --- a/packages/hoppscotch-cli/src/utils/mutators.ts +++ b/packages/hoppscotch-cli/src/utils/mutators.ts @@ -1,18 +1,11 @@ +import { HoppCollection, HoppRESTRequest } from "@hoppscotch/data"; import fs from "fs/promises"; -import { FormDataEntry } from "../types/request"; -import { error } from "../types/errors"; -import { isRESTCollection, isHoppErrnoException } from "./checks"; -import { - GQLHeader, - HoppCollection, - HoppGQLAuth, - HoppGQLRequest, - HoppRESTAuth, - HoppRESTHeaders, - HoppRESTRequest, -} from "@hoppscotch/data"; -import { z } from "zod"; import { entityReference } from "verzod"; +import { z } from "zod"; + +import { error } from "../types/errors"; +import { FormDataEntry } from "../types/request"; +import { isHoppErrnoException } from "./checks"; /** * Parses array of FormDataEntry to FormData. @@ -93,6 +86,7 @@ export async function parseCollectionData( const requestSchemaParsedResult = z .array(entityReference(HoppRESTRequest)) .safeParse(collection.requests); + if (!requestSchemaParsedResult.success) { throw error({ code: "MALFORMED_COLLECTION", diff --git a/packages/hoppscotch-data/src/collection/index.ts b/packages/hoppscotch-data/src/collection/index.ts index 2cfd3d34842..7ed072c94dc 100644 --- a/packages/hoppscotch-data/src/collection/index.ts +++ b/packages/hoppscotch-data/src/collection/index.ts @@ -8,7 +8,6 @@ import { translateToNewRequest } from "../rest" import { translateToGQLRequest } from "../graphql" const versionedObject = z.object({ - // v is a stringified number v: z.number(), })