diff --git a/source/ci_source/providers/GitLabCI.ts b/source/ci_source/providers/GitLabCI.ts index cf7fc8adf..26f4a952f 100644 --- a/source/ci_source/providers/GitLabCI.ts +++ b/source/ci_source/providers/GitLabCI.ts @@ -23,6 +23,7 @@ export class GitLabCI implements CISource { } get repoSlug(): string { + // return this.env.CI_MERGE_REQUEST_PROJECT_PATH || this.env.CI_PROJECT_PATH return this.env.CI_PROJECT_PATH } diff --git a/source/ci_source/providers/_tests/_gitlab.test.ts b/source/ci_source/providers/_tests/_gitlab.test.ts new file mode 100644 index 000000000..e9c677ab2 --- /dev/null +++ b/source/ci_source/providers/_tests/_gitlab.test.ts @@ -0,0 +1,44 @@ +import { GitLabCI } from "../GitLabCI" +import { getCISourceForEnv } from "../../get_ci_source" + +const correctEnv = { + GITLAB_CI: "true", + CI_MERGE_REQUEST_IID: "27117", + CI_PROJECT_PATH: "gitlab-org/gitlab-foss", + // DANGER_GITLAB_API_TOKEN: "gitlab_dummy_a829-07bd7559eecb" +} + +describe("being found when looking for CI", () => { + it("finds GitLab with the right ENV", () => { + const ci = getCISourceForEnv(correctEnv) + expect(ci).toBeInstanceOf(GitLabCI) + }) +}) + +describe(".isCI", () => { + it("validates when all GitLab environment vars are set", async () => { + const result = new GitLabCI(correctEnv) + expect(result.isCI).toBeTruthy() + }) + + it("does not validate without env", async () => { + const result = new GitLabCI({}) + expect(result.isCI).toBeFalsy() + }) +}) + +// missed + +describe(".pullRequestID", () => { + it("pulls it out of the env", () => { + const result = new GitLabCI(correctEnv) + expect(result.pullRequestID).toEqual("27117") + }) +}) + +describe(".repoSlug", () => { + it("derives it from the PR Url", () => { + const result = new GitLabCI(correctEnv) + expect(result.repoSlug).toEqual("gitlab-org/gitlab-foss") + }) +})