Sha256: 3bd4cc0d42f5ef87488a554cca3adf1cb51c07d774036f20321bdc975de61c4c

Contents?: true

Size: 1.29 KB

Versions: 6

Compression:

Stored size: 1.29 KB

Contents

require 'spec_helper'
require 'dpl/provider/hackage'

describe DPL::Provider::Hackage do
  subject :provider do
    described_class.new(DummyContext.new, :username => 'FooUser', :password => 'bar')
  end

  describe :check_auth do
    it 'should require username' do
      provider.options.update(:username => nil)
      expect {
        provider.check_auth
      }.to raise_error(DPL::Error)
    end

    it 'should require password' do
      provider.options.update(:password => nil)
      expect {
        provider.check_auth
      }.to raise_error(DPL::Error)
    end
  end

  describe :check_app do
    it 'calls cabal' do
      provider.context.should_receive(:shell).with("cabal check").and_return(true)
      provider.check_app
    end

    it 'fails when cabal complains' do
      provider.context.should_receive(:shell).with("cabal check").and_return(false)
      expect {
        provider.check_app
      }.to raise_error(DPL::Error)
    end
  end

  describe :push_app do
    example do
      provider.context.should_receive(:shell).with("cabal sdist").and_return(true)
      Dir.should_receive(:glob).and_yield('dist/package-0.1.2.3.tar.gz')
      provider.context.should_receive(:shell).with("cabal upload --username=FooUser --password=bar dist/package-0.1.2.3.tar.gz")
      provider.push_app
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
dpl-1.6.1.travis.447.1 spec/provider/hackage_spec.rb
dpl-1.6.0 spec/provider/hackage_spec.rb
dpl-1.5.11.travis.445.1 spec/provider/hackage_spec.rb
dpl-1.5.11.travis.437.1 spec/provider/hackage_spec.rb
dpl-1.5.11.travis.436.1 spec/provider/hackage_spec.rb
dpl-1.5.11.travis.435.1 spec/provider/hackage_spec.rb