Sha256: dd38c5d5f0d13addbe54e30eb1817bafbd15d1479908b829cdc47acd2af1e816

Contents?: true

Size: 1.26 KB

Versions: 1

Compression:

Stored size: 1.26 KB

Contents

require_relative '../../spec_helper'
require 'byebug'

describe Rubygems::CodeFinder do
  it 'returns source_code_uri' do
    stub_request(:get, 'https://rubygems.org/api/v1/gems/tachikoma.json').
      to_return(status: 200, body: File.new('./spec/fixtures/tachikoma.json'), headers: {})

    expect(Rubygems::CodeFinder.url('tachikoma')).to eq 'https://github.com/sanemat/tachikoma'
  end

  it 'fails gem not found' do
    stub_request(:get, 'https://rubygems.org/api/v1/gems/invalid.json').
      to_return(status: 404, body: '', headers: {})
    expect { Rubygems::CodeFinder.url('invalid') }.to raise_error(Rubygems::CodeFinder::RubygemsNotFound)
  end

  it 'returns homepage_uri' do
    stub_request(:get, 'https://rubygems.org/api/v1/gems/mm-devise.json').
      to_return(status: 200, body: File.new('./spec/fixtures/mm-devise.json'), headers: {})

    expect(Rubygems::CodeFinder.url('mm-devise')).to eq 'http://github.com/kristianmandrup/mm-devise'
  end

  it 'fails repository not found' do
    stub_request(:get, 'https://rubygems.org/api/v1/gems/fluentd.json').
      to_return(status: 200, body: File.new('./spec/fixtures/fluentd.json'), headers: {})

    expect { Rubygems::CodeFinder.url('fluentd') }.to raise_error(Rubygems::CodeFinder::RepositoryNotFound)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rubygems-code_finder-0.0.2 spec/rubygems/code_finder/url_spec.rb