mirror of
https://github.com/github/codeql-action.git
synced 2025-12-26 09:10:07 +08:00
Rather than via properties on default exports — see https://github.com/import-js/eslint-plugin-import/blob/master/docs/rules/no-named-as-default-member.md
103 lines
2.2 KiB
TypeScript
103 lines
2.2 KiB
TypeScript
import * as githubUtils from "@actions/github/lib/utils";
|
|
import test, { ExecutionContext } from "ava";
|
|
import * as sinon from "sinon";
|
|
|
|
import { getApiClient } from "./api-client";
|
|
import { setupTests } from "./testing-utils";
|
|
import { Mode, initializeEnvironment } from "./util";
|
|
|
|
// eslint-disable-next-line import/no-commonjs
|
|
const pkg = require("../package.json");
|
|
|
|
setupTests(test);
|
|
|
|
let pluginStub: sinon.SinonStub;
|
|
let githubStub: sinon.SinonStub;
|
|
|
|
test.beforeEach(() => {
|
|
pluginStub = sinon.stub(githubUtils.GitHub, "plugin");
|
|
githubStub = sinon.stub();
|
|
pluginStub.returns(githubStub);
|
|
initializeEnvironment(Mode.actions, pkg.version);
|
|
});
|
|
|
|
test("Get the client API", async (t) => {
|
|
doTest(
|
|
t,
|
|
{
|
|
auth: "xyz",
|
|
externalRepoAuth: "abc",
|
|
url: "http://hucairz",
|
|
},
|
|
undefined,
|
|
{
|
|
auth: "token xyz",
|
|
baseUrl: "http://hucairz/api/v3",
|
|
userAgent: `CodeQL-Action/${pkg.version}`,
|
|
}
|
|
);
|
|
});
|
|
|
|
test("Get the client API external", async (t) => {
|
|
doTest(
|
|
t,
|
|
{
|
|
auth: "xyz",
|
|
externalRepoAuth: "abc",
|
|
url: "http://hucairz",
|
|
},
|
|
{ allowExternal: true },
|
|
{
|
|
auth: "token abc",
|
|
baseUrl: "http://hucairz/api/v3",
|
|
userAgent: `CodeQL-Action/${pkg.version}`,
|
|
}
|
|
);
|
|
});
|
|
|
|
test("Get the client API external not present", async (t) => {
|
|
doTest(
|
|
t,
|
|
{
|
|
auth: "xyz",
|
|
url: "http://hucairz",
|
|
},
|
|
{ allowExternal: true },
|
|
{
|
|
auth: "token xyz",
|
|
baseUrl: "http://hucairz/api/v3",
|
|
userAgent: `CodeQL-Action/${pkg.version}`,
|
|
}
|
|
);
|
|
});
|
|
|
|
test("Get the client API with github url", async (t) => {
|
|
doTest(
|
|
t,
|
|
{
|
|
auth: "xyz",
|
|
url: "https://github.com/some/invalid/url",
|
|
},
|
|
undefined,
|
|
{
|
|
auth: "token xyz",
|
|
baseUrl: "https://api.github.com",
|
|
userAgent: `CodeQL-Action/${pkg.version}`,
|
|
}
|
|
);
|
|
});
|
|
|
|
function doTest(
|
|
t: ExecutionContext<unknown>,
|
|
clientArgs: any,
|
|
clientOptions: any,
|
|
expected: any
|
|
) {
|
|
getApiClient(clientArgs, clientOptions);
|
|
|
|
const firstCallArgs = githubStub.args[0];
|
|
// log is a function, so we don't need to test for equality of it
|
|
delete firstCallArgs[0].log;
|
|
t.deepEqual(firstCallArgs, [expected]);
|
|
}
|