Sha256: 9ef47bde9a1cbc216a1fba943c9333694f6c5e60689bc5edbdc7bfe0b5f45468

Contents?: true

Size: 1.54 KB

Versions: 1

Compression:

Stored size: 1.54 KB

Contents

require 'spec_helper'

require 'r10k/module_repository/forge'

describe R10K::ModuleRepository::Forge do

  it "uses the official forge by default" do
    forge = described_class.new
    expect(forge.forge).to eq 'forgeapi.puppetlabs.com'
  end

  it "replaces old forge with forgeapi" do
    forge = described_class.new(forge='forge.puppetlabs.com')
    expect(forge.forge).to eq 'forgeapi.puppetlabs.com'
  end

  it "can use a private forge" do
    forge = described_class.new('forge.example.local')
    expect(forge.forge).to eq 'forge.example.local'
  end

  describe "and the expected version is :latest", :vcr => true do
    subject(:forge) { described_class.new }

    before do
      forge.conn.builder.insert_before(Faraday::Adapter::NetHttp, VCR::Middleware::Faraday)
    end

    it "can fetch all versions of a given module" do
      expect(forge.versions('adrien/boolean')).to eq ["0.9.0-rc1", "0.9.0", "1.0.0", "1.0.1"]
    end

    it "can fetch the latest version of a given module" do
      expect(forge.latest_version('adrien/boolean')).to eq "1.0.1"
    end

    it "ignores deleted releases" do
      expect(forge.latest_version('r10ktesting/spotty')).to eq "0.3.0"
    end
  end

  describe "it handles errors from forgeapi.puppetlabs.com", :vcr => true do
    subject(:forge) { described_class.new }

    before do
      forge.conn.builder.insert_before(Faraday::Adapter::NetHttp, VCR::Middleware::Faraday)
    end

    it "raises an error for a non-existant module" do
      expect { forge.versions('dne/dne') }.to raise_error(R10K::Error)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
r10k-1.5.1 spec/unit/module_repository/forge_spec.rb