var semaphore = require('../../lib/services/semaphore')

describe('Semaphore CI Provider', function() {
  var OLD_ENV = process.env

  beforeEach(function() {
    process.env = Object.assign({}, OLD_ENV)
  })

  afterEach(function() {
    process.env = Object.assign({}, OLD_ENV)
  })

  it('can detect semaphore', function() {
    process.env.SEMAPHORE = 'true'
    process.env.SEMAPHORE_REPO_SLUG = 'owner/repo'
    expect(semaphore.detect()).toBe(true)
  })

  it('does not detect semaphore 2.x', function() {
    process.env.SEMAPHORE = 'true'
    process.env.SEMAPHORE_WORKFLOW_ID = '65c9bb1c-aeb6-41f0-b8d9-6fa177241cdf'
    expect(semaphore.detect()).toBe(false)
  })

  it('can get semaphore env info', function() {
    process.env.SEMAPHORE_BUILD_NUMBER = '1234'
    process.env.REVISION = '5678'
    process.env.SEMAPHORE_CURRENT_THREAD = '1'
    process.env.BRANCH_NAME = 'master'
    process.env.SEMAPHORE_REPO_SLUG = 'owner/repo'
    expect(semaphore.configuration()).toEqual({
      service: 'semaphore1x',
      commit: '5678',
      build: '1234.1',
      branch: 'master',
      slug: 'owner/repo',
    })
  })
})
