Skip to content
This repository has been archived by the owner on Sep 29, 2021. It is now read-only.

Commit

Permalink
Write rspec tests for assigning gem details
Browse files Browse the repository at this point in the history
  • Loading branch information
mfinelli committed Nov 5, 2015
1 parent deb9942 commit aa53a45
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 3 deletions.
4 changes: 1 addition & 3 deletions lib/gembuild/pkgbuild.rb
Original file line number Diff line number Diff line change
Expand Up @@ -205,13 +205,11 @@ def fetch_maintainer

# Add the data scraped from rubygems.org to the pkgbuild.
#
# @todo Write rspec tests
#
# @param details [Hash] The results from GemScraper scrape.
# @return [void]
def assign_gem_details(details)
@pkgver = details.fetch(:version)
@pkgdesc = details.fetch(:description)
@description = details.fetch(:description)
@checksum = details.fetch(:checksum)
@license = details.fetch(:license)
@url = details.fetch(:homepage)
Expand Down
80 changes: 80 additions & 0 deletions spec/pkgbuild_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -254,4 +254,84 @@
expect(Gembuild::Pkgbuild.new('mina').template).to eql(File.read(File.join(File.dirname(__FILE__), '..', 'lib', 'gembuild', 'pkgbuild.erb')))
end
end

describe '#assign_gem_details' do
context 'with gem netrc' do
let(:pkgbuild) { Gembuild::Pkgbuild.new('netrc') }
let(:gem_details) {
VCR.use_cassette('gem_scraper_netrc') do
Gembuild::GemScraper.new('netrc').scrape!
end
}

it 'should assign the checksum' do
pkgbuild.assign_gem_details(gem_details)
expect(pkgbuild.checksum).to eql('de1ce33da8c99ab1d97871726cba75151113f117146becbe45aa85cb3dabee3f')
end

it 'should assign the version' do
pkgbuild.assign_gem_details(gem_details)
expect(pkgbuild.pkgver).to eql(Gem::Version.new('0.11.0'))
end

it 'should assign the description' do
pkgbuild.assign_gem_details(gem_details)
expect(pkgbuild.description).to eql('This library can read and update netrc files, preserving formatting including comments and whitespace.')
end

it 'should assign the license' do
pkgbuild.assign_gem_details(gem_details)
expect(pkgbuild.license).to eql(['MIT'])
end

it 'should not assign any extra dependencies' do
pkgbuild.assign_gem_details(gem_details)
expect(pkgbuild.depends).to eql(['ruby'])
end

it 'should assign the homepage' do
pkgbuild.assign_gem_details(gem_details)
expect(pkgbuild.url).to eql('https://github.com/geemus/netrc')
end
end

context 'with gem twitter' do
let(:pkgbuild) { Gembuild::Pkgbuild.new('twitter') }
let(:gem_details) {
VCR.use_cassette('gem_scraper_twitter') do
Gembuild::GemScraper.new('twitter').scrape!
end
}

it 'should assign the checksum' do
pkgbuild.assign_gem_details(gem_details)
expect(pkgbuild.checksum).to eql('71856f234ab671c26c787f07032ce98acbc345c8fbb3194668f8de14a404bb41')
end

it 'should assign the version' do
pkgbuild.assign_gem_details(gem_details)
expect(pkgbuild.pkgver).to eql(Gem::Version.new('5.15.0'))
end

it 'should assign the description' do
pkgbuild.assign_gem_details(gem_details)
expect(pkgbuild.description).to eql('A Ruby interface to the Twitter API.')
end

it 'should assign the license' do
pkgbuild.assign_gem_details(gem_details)
expect(pkgbuild.license).to eql(['MIT'])
end

it 'should assign the other dependencies' do
pkgbuild.assign_gem_details(gem_details)
expect(pkgbuild.depends).to eql(['ruby', 'ruby-simple_oauth', 'ruby-naught', 'ruby-memoizable', 'ruby-json', 'ruby-http_parser.rb', 'ruby-http', 'ruby-faraday', 'ruby-equalizer', 'ruby-buftok', 'ruby-addressable'])
end

it 'should assign the homepage' do
pkgbuild.assign_gem_details(gem_details)
expect(pkgbuild.url).to eql('http://sferik.github.com/twitter/')
end
end
end
end

0 comments on commit aa53a45

Please sign in to comment.