Files
hoppscotch/packages/hoppscotch-cli/src/__tests__/functions/pre-request/preRequestScriptRunner.spec.ts
Deepanshu Dhruw 432337b801 chore: tests for hoppscotch-cli (#2300)
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2022-05-11 15:44:19 +05:30

72 lines
1.9 KiB
TypeScript

import { HoppRESTRequest } from "@hoppscotch/data";
import { HoppEnvs } from "../../../types/request";
import * as E from "fp-ts/Either";
import { HoppCLIError } from "../../../types/errors";
import { EffectiveHoppRESTRequest } from "../../../interfaces/request";
import { preRequestScriptRunner } from "../../../utils/pre-request";
import "@relmify/jest-fp-ts";
const SAMPLE_ENVS: HoppEnvs = {
global: [],
selected: [],
};
const VALID_PRE_REQUEST_SCRIPT = `
pw.env.set("ENDPOINT","https://example.com");
`;
const INVALID_PRE_REQUEST_SCRIPT = "d";
const SAMPLE_REQUEST: HoppRESTRequest = {
v: "1",
name: "request",
method: "GET",
endpoint: "<<ENDPOINT>>",
params: [],
headers: [],
preRequestScript: "",
testScript: "",
auth: { authActive: false, authType: "none" },
body: {
contentType: null,
body: null,
},
};
describe("preRequestScriptRunner", () => {
let SUCCESS_PRE_REQUEST_RUNNER: E.Either<
HoppCLIError,
EffectiveHoppRESTRequest
>,
FAILURE_PRE_REQUEST_RUNNER: E.Either<
HoppCLIError,
EffectiveHoppRESTRequest
>;
beforeAll(async () => {
SAMPLE_REQUEST.preRequestScript = VALID_PRE_REQUEST_SCRIPT;
SUCCESS_PRE_REQUEST_RUNNER = await preRequestScriptRunner(
SAMPLE_REQUEST,
SAMPLE_ENVS
)();
SAMPLE_REQUEST.preRequestScript = INVALID_PRE_REQUEST_SCRIPT;
FAILURE_PRE_REQUEST_RUNNER = await preRequestScriptRunner(
SAMPLE_REQUEST,
SAMPLE_ENVS
)();
});
test("Parsing of request endpoint with set ENV.", () => {
expect(SUCCESS_PRE_REQUEST_RUNNER).toSubsetEqualRight(<
EffectiveHoppRESTRequest
>{
effectiveFinalURL: "https://example.com",
});
});
test("Failed execution due to unknown variable error.", () => {
expect(FAILURE_PRE_REQUEST_RUNNER).toSubsetEqualLeft(<HoppCLIError>{
code: "PRE_REQUEST_SCRIPT_ERROR",
});
});
});