[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/github/codeql-action/default-setup-testing/src/github.test.ts [Back]  [Original]

import test from "ava";

import { ActionsEnvVars } from "./environment";
import * as github from "./github";
import { getTestEnv, setupTests } from "./testing-utils";

setupTests(test);

test("parseGitHubUrl", (t) => {
  t.deepEqual(github.parseGitHubUrl("github.com"), "https://github.com");
  t.deepEqual(
    github.parseGitHubUrl("https://github.com"),
    "https://github.com",
  );
  t.deepEqual(
    github.parseGitHubUrl("https://api.github.com"),
    "https://github.com",
  );
  t.deepEqual(
    github.parseGitHubUrl("https://github.com/foo/bar"),
    "https://github.com",
  );

  t.deepEqual(
    github.parseGitHubUrl("github.example.com"),
    "https://github.example.com/",
  );
  t.deepEqual(
    github.parseGitHubUrl("https://github.example.com"),
    "https://github.example.com/",
  );
  t.deepEqual(
    github.parseGitHubUrl("https://api.github.example.com"),
    "https://github.example.com/",
  );
  t.deepEqual(
    github.parseGitHubUrl("https://github.example.com/api/v3"),
    "https://github.example.com/",
  );
  t.deepEqual(
    github.parseGitHubUrl("https://github.example.com:1234"),
    "https://github.example.com:1234/",
  );
  t.deepEqual(
    github.parseGitHubUrl("https://api.github.example.com:1234"),
    "https://github.example.com:1234/",
  );
  t.deepEqual(
    github.parseGitHubUrl("https://github.example.com:1234/api/v3"),
    "https://github.example.com:1234/",
  );
  t.deepEqual(
    github.parseGitHubUrl("https://github.example.com/base/path"),
    "https://github.example.com/base/path/",
  );
  t.deepEqual(
    github.parseGitHubUrl("https://github.example.com/base/path/api/v3"),
    "https://github.example.com/base/path/",
  );

  t.throws(() => github.parseGitHubUrl(""), {
    message: '"" is not a valid URL',
  });
  t.throws(() => github.parseGitHubUrl("ssh://github.com"), {
    message: '"ssh://github.com" is not a http or https URL',
  });
  t.throws(() => github.parseGitHubUrl("http:///::::433"), {
    message: '"http:///::::433" is not a valid URL',
  });
});

test("getCurrentInstance throws if required env vars aren't set", (t) => {
  t.throws(() => github.getCurrentInstance(getTestEnv()));
  t.throws(() => {
    const env = getTestEnv({
      [ActionsEnvVars.GITHUB_SERVER_URL]: "https://localhost",
    });
    github.getCurrentInstance(env);
  });
  t.throws(() => {
    const env = getTestEnv({
      [ActionsEnvVars.GITHUB_API_URL]: "https://api.localhost",
    });
    github.getCurrentInstance(env);
  });
});

test("getCurrentInstance constructs instance from environment", (t) => {
  const url = "https://localhost";
  const apiUrl = "https://api.localhost";

  const env = getTestEnv({
    [ActionsEnvVars.GITHUB_SERVER_URL]: url,
    [ActionsEnvVars.GITHUB_API_URL]: apiUrl,
  });
  const instance = github.getCurrentInstance(env);

  t.is(instance.url, url);
  t.is(instance.apiURL, apiUrl);
});

test("getCurrentInstance constructs dotcom instance with dotcom env vars", (t) => {
  const env = getTestEnv({
    [ActionsEnvVars.GITHUB_SERVER_URL]: github.GITHUB_DOTCOM_URL,
    [ActionsEnvVars.GITHUB_API_URL]: github.GITHUB_DOTCOM_API_URL,
  });
  const instance = github.getCurrentInstance(env);
  const dotcomInstance = github.getDotcomInstance();

  t.deepEqual(dotcomInstance, instance);
});

Web Proxy Viewer  |  New URL  |  Original Page