feat: added delay flag in @hoppscotch/cli and related tests (#2527)
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
This commit is contained in:
@@ -92,12 +92,41 @@ describe("Test 'hopp test <file> --env <file>' command:", () => {
|
||||
expect(out).toBe<HoppErrorCode>("FILE_NOT_FOUND");
|
||||
});
|
||||
|
||||
// test("No errors occured (exit code 0).", async () => {
|
||||
// const TESTS_PATH = getTestJsonFilePath("env-flag-tests.json");
|
||||
// const ENV_PATH = getTestJsonFilePath("env-flag-envs.json");
|
||||
// const cmd = `node ./bin/hopp test ${TESTS_PATH} --env ${ENV_PATH}`;
|
||||
// const { error } = await execAsync(cmd);
|
||||
test("No errors occured (exit code 0).", async () => {
|
||||
const TESTS_PATH = getTestJsonFilePath("env-flag-tests.json");
|
||||
const ENV_PATH = getTestJsonFilePath("env-flag-envs.json");
|
||||
const cmd = `node ./bin/hopp test ${TESTS_PATH} --env ${ENV_PATH}`;
|
||||
const { error } = await execAsync(cmd);
|
||||
|
||||
// expect(error).toBeNull();
|
||||
// });
|
||||
expect(error).toBeNull();
|
||||
});
|
||||
});
|
||||
|
||||
describe("Test 'hopp test <file> --delay <delay_in_ms>' command:", () => {
|
||||
const VALID_TEST_CMD = `node ./bin/hopp test ${getTestJsonFilePath(
|
||||
"passes.json"
|
||||
)}`;
|
||||
|
||||
test("No value passed to delay flag.", async () => {
|
||||
const cmd = `${VALID_TEST_CMD} --delay`;
|
||||
const { stdout } = await execAsync(cmd);
|
||||
const out = getErrorCode(stdout);
|
||||
|
||||
expect(out).toBe<HoppErrorCode>("INVALID_ARGUMENT");
|
||||
});
|
||||
|
||||
test("Invalid value passed to delay flag.", async () => {
|
||||
const cmd = `${VALID_TEST_CMD} --delay 'NaN'`;
|
||||
const { stdout } = await execAsync(cmd);
|
||||
const out = getErrorCode(stdout);
|
||||
|
||||
expect(out).toBe<HoppErrorCode>("INVALID_ARGUMENT");
|
||||
});
|
||||
|
||||
test("Valid value passed to delay flag.", async () => {
|
||||
const cmd = `${VALID_TEST_CMD} --delay 1`;
|
||||
const { error } = await execAsync(cmd);
|
||||
|
||||
expect(error).toBeNull();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
import { hrtime } from "process";
|
||||
import { getDurationInSeconds } from "../../../utils/getters";
|
||||
import { delayPromiseFunction } from "../../../utils/request";
|
||||
|
||||
describe("describePromiseFunction", () => {
|
||||
let promiseFunc = (): Promise<number> => new Promise((resolve) => resolve(2));
|
||||
beforeEach(() => {
|
||||
promiseFunc = (): Promise<number> => new Promise((resolve) => resolve(2));
|
||||
});
|
||||
|
||||
it("Should resolve the promise<number> after 2 seconds.", async () => {
|
||||
const start = hrtime();
|
||||
const res = await delayPromiseFunction(promiseFunc, 2000);
|
||||
const end = hrtime(start);
|
||||
const duration = getDurationInSeconds(end);
|
||||
|
||||
expect(Math.floor(duration)).toEqual(2);
|
||||
expect(typeof res).toBe("number");
|
||||
});
|
||||
|
||||
it("Should resolve the promise<number> after 4 seconds.", async () => {
|
||||
const start = hrtime();
|
||||
const res = await delayPromiseFunction(promiseFunc, 4000);
|
||||
const end = hrtime(start);
|
||||
const duration = getDurationInSeconds(end);
|
||||
|
||||
expect(Math.floor(duration)).toEqual(4);
|
||||
expect(typeof res).toBe("number");
|
||||
});
|
||||
});
|
||||
@@ -58,7 +58,12 @@ describe("processRequest", () => {
|
||||
(axios as unknown as jest.Mock).mockResolvedValue(DEFAULT_RESPONSE);
|
||||
|
||||
return expect(
|
||||
processRequest(SAMPLE_REQUEST, DEFAULT_ENVS, "fake/collection/path")()
|
||||
processRequest({
|
||||
request: SAMPLE_REQUEST,
|
||||
envs: DEFAULT_ENVS,
|
||||
path: "fake/collection/path",
|
||||
delay: 0,
|
||||
})()
|
||||
).resolves.toMatchObject({
|
||||
report: {
|
||||
result: true,
|
||||
@@ -79,7 +84,12 @@ describe("processRequest", () => {
|
||||
(axios as unknown as jest.Mock).mockResolvedValue(DEFAULT_RESPONSE);
|
||||
|
||||
return expect(
|
||||
processRequest(SAMPLE_REQUEST, DEFAULT_ENVS, "fake/collection/path")()
|
||||
processRequest({
|
||||
request: SAMPLE_REQUEST,
|
||||
envs: DEFAULT_ENVS,
|
||||
path: "fake/collection/path",
|
||||
delay: 0,
|
||||
})()
|
||||
).resolves.toMatchObject({
|
||||
envs: {
|
||||
selected: [{ key: "ENDPOINT", value: "https://example.com" }],
|
||||
@@ -96,7 +106,12 @@ describe("processRequest", () => {
|
||||
(axios as unknown as jest.Mock).mockResolvedValue(DEFAULT_RESPONSE);
|
||||
|
||||
return expect(
|
||||
processRequest(SAMPLE_REQUEST, DEFAULT_ENVS, "fake/request/path")()
|
||||
processRequest({
|
||||
request: SAMPLE_REQUEST,
|
||||
envs: DEFAULT_ENVS,
|
||||
path: "fake/request/path",
|
||||
delay: 0,
|
||||
})()
|
||||
).resolves.toMatchObject({
|
||||
report: { result: false },
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user