🏡 index : quine-global-boneyard/electron-builder.git

import { getRepositoryInfo } from "app-builder-lib/out/util/repositoryInfo"
import { ExpectStatic } from "vitest"

function checkInfo(expect: ExpectStatic, info: any) {
  delete info.pathmatch
  delete info.pathtemplate
  delete info.httpstemplate
  delete info.filetemplate
  delete info.docstemplate
  delete info.opts
  expect(info).toMatchSnapshot()
}

test("repo slug from TRAVIS_REPO_SLUG", async ({ expect }) => {
  const oldValue = process.env.TRAVIS_REPO_SLUG
  try {
    process.env.TRAVIS_REPO_SLUG = "travis-ci/travis-build"
    const info: any = await getRepositoryInfo(process.cwd())
    checkInfo(expect, info)
  } finally {
    if (oldValue != null) {
      restoreEnv("TRAVIS_REPO_SLUG", oldValue)
    }
  }
})

test("repo slug from APPVEYOR", async ({ expect }) => {
  const oldAppveyorRepoName = process.env.APPVEYOR_REPO_NAME
  const travisSlug = process.env.TRAVIS_REPO_SLUG
  try {
    if (travisSlug != null) {
      delete process.env.TRAVIS_REPO_SLUG
    }

    process.env.APPVEYOR_REPO_NAME = "travis-ci/travis-build"
    const info = await getRepositoryInfo(process.cwd())
    checkInfo(expect, info)
  } finally {
    restoreEnv("APPVEYOR_REPO_NAME", oldAppveyorRepoName)
    if (travisSlug != null) {
      process.env.TRAVIS_REPO_SLUG = travisSlug
    }
  }
})

function restoreEnv(name: string, value: string | undefined) {
  if (value != null) {
    // otherwise will be set to string value "undefined"
    process.env[name] = value
  }
}