94 lines
2.9 KiB
TypeScript
94 lines
2.9 KiB
TypeScript
import {
|
|
CliError,
|
|
ExitCodeError,
|
|
getCliError,
|
|
} from "../../../src/codeql-cli/cli-errors";
|
|
import { EOL } from "os";
|
|
|
|
describe("getCliError", () => {
|
|
it("returns an error with an unknown error", () => {
|
|
const error = new Error("foo");
|
|
|
|
expect(getCliError(error, undefined, "bar", ["baz"])).toEqual(
|
|
new CliError("foo", undefined, error, "bar", ["baz"]),
|
|
);
|
|
});
|
|
|
|
it("returns an error with an unknown error with stderr", () => {
|
|
const error = new Error("foo");
|
|
|
|
expect(getCliError(error, "Something failed", "bar", ["baz"])).toEqual(
|
|
new CliError("Something failed", "Something failed", error, "bar", [
|
|
"baz",
|
|
]),
|
|
);
|
|
});
|
|
|
|
it("returns an error with an unknown error with stderr", () => {
|
|
const error = new Error("foo");
|
|
|
|
expect(getCliError(error, "Something failed", "bar", ["baz"])).toEqual(
|
|
new CliError("Something failed", "Something failed", error, "bar", [
|
|
"baz",
|
|
]),
|
|
);
|
|
});
|
|
|
|
it("returns an error with an exit code error with unhandled exit code", () => {
|
|
const error = new ExitCodeError(99); // OOM
|
|
|
|
expect(getCliError(error, "OOM!", "bar", ["baz"])).toEqual(
|
|
new CliError("OOM!", "OOM!", error, "bar", ["baz"]),
|
|
);
|
|
});
|
|
|
|
it("returns an error with an exit code error with handled exit code without string", () => {
|
|
const error = new ExitCodeError(2);
|
|
|
|
expect(getCliError(error, "Something happened!", "bar", ["baz"])).toEqual(
|
|
new CliError("Something happened!", "Something happened!", error, "bar", [
|
|
"baz",
|
|
]),
|
|
);
|
|
});
|
|
|
|
it("returns an error with a user code error with identifying string", () => {
|
|
const error = new ExitCodeError(2);
|
|
const stderr = `Something happened!${EOL}A fatal error occurred: The query did not run successfully.${EOL}The correct columns were not present.`;
|
|
|
|
expect(getCliError(error, stderr, "bar", ["baz"])).toEqual(
|
|
new CliError(
|
|
`A fatal error occurred: The query did not run successfully.${EOL}The correct columns were not present.`,
|
|
stderr,
|
|
error,
|
|
"bar",
|
|
["baz"],
|
|
),
|
|
);
|
|
});
|
|
|
|
it("returns an error with a user code error with cancelled string", () => {
|
|
const error = new ExitCodeError(2);
|
|
const stderr = `Running query...${EOL}Something is happening...${EOL}Computation was cancelled: Cancelled by user`;
|
|
|
|
expect(getCliError(error, stderr, "bar", ["baz"])).toEqual(
|
|
new CliError(stderr, stderr, error, "bar", ["baz"]),
|
|
);
|
|
});
|
|
|
|
it("returns an error with a cancelled error with identifying string", () => {
|
|
const error = new ExitCodeError(98);
|
|
const stderr = `Running query...${EOL}Something is happening...${EOL}Computation was cancelled: Cancelled by user`;
|
|
|
|
expect(getCliError(error, stderr, "bar", ["baz"])).toEqual(
|
|
new CliError(
|
|
"Computation was cancelled: Cancelled by user",
|
|
stderr,
|
|
error,
|
|
"bar",
|
|
["baz"],
|
|
),
|
|
);
|
|
});
|
|
});
|