Sha256: 3652475e7d48b72e22619b5fca7e31d1ab2e71b52ec87e5a9c35ef6f3efd2b65

Contents?: true

Size: 1.85 KB

Versions: 2

Compression:

Stored size: 1.85 KB

Contents

require 'spec/autorun'
require 'sane'
require __dir__ + '/../lib/conflict_checker'
require 'rubygems'

describe "conflict plugin" do

  before do
    @a = ConflictChecker.new
    Gem.clear_paths 
  end

  it "should alert you of potential conflicts" do
    conflict = {:lib1 => ['lib/go.rb'], :lib2 => ['lib/go.rb']}
    @a.check(conflict).should == {"go"=>[[:lib1, "lib/go.rb"], [:lib2, "lib/go.rb"]]}
  end

=begin example  
  # pp Gem.source_index.latest_specs[0].lib_files
["lib/map_reduce",
 "lib/map_reduce.rb",
 "lib/starfish.rb",
 "lib/map_reduce/active_record.rb",
 "lib/map_reduce/array.rb",
 "lib/map_reduce/file.rb"]
=end
  
  it "should also do subdir clashes" do
    conflict = {:lib1 => ['lib/y/go.rb'], :lib2 => ['lib/y/go.rb']}
    @a.check(conflict).should == {"y/go"=>[[:lib1, "lib/y/go.rb"], [:lib2, "lib/y/go.rb"]]}
  end

  it "should work with non lib directories" do
    pending "request"
  end
  
  it "should pass back a hash" do
    ConflictChecker.do_all_gems.should be_a(Hash)
  end
  
  it "should detect collisions between .rb and .so" do
    conflict = {:lib1 => ['lib/y/go.so'], :lib2 => ['lib/y/go.rb']}
    @a.check(conflict).should ==  {"y/go"=>[[:lib1, "lib/y/go.so"], [:lib2, "lib/y/go.rb"]]}
    
  end
  
  it "should do triple collisions" do
    conflict = {:lib1 => ['lib/go.rb'], :lib2 => ['lib/go.rb'], :lib3 => ['lib/go.rb']}
    @a.check(conflict).should ==  {"go"=>[[:lib1, "lib/go.rb"], [:lib2, "lib/go.rb"], [:lib3, "lib/go.rb"]]}
  end
  
  it "should ignore directory looking entires" do
    conflict = {:lib1 => ['lib/y/go.so'], :lib2 => ['lib/y/go']}
    @a.check(conflict).should == {}
  end
  
  it "should ignore plugins which can be redundant" do
    conflict = {:lib1 => ['lib/y/go_plugin.rb'], :lib2 => ['lib/y/go_plugin.rb']}
    @a.check(conflict).should == {}
  end
  
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
gem_file_conflict_checker-0.2.2 spec/spec.gem_conflict_plugin.rb
gem_file_conflict_checker-0.2.1 spec/spec.gem_conflict_plugin.rb