aboutsummaryrefslogtreecommitdiffstats
path: root/spec/bundler/bundler/source/path_spec.rb
blob: 1d13e03ec17d11015b4ab5c94c1ac31acf1e935e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# frozen_string_literal: true

RSpec.describe Bundler::Source::Path do
  before do
    allow(Bundler).to receive(:root) { Pathname.new("root") }
  end

  describe "#eql?" do
    subject { described_class.new("path" => "gems/a") }

    context "with two equivalent relative paths from different roots" do
      let(:a_gem_opts) { { "path" => "../gems/a", "root_path" => Bundler.root.join("nested") } }
      let(:a_gem)      { described_class.new a_gem_opts }

      it "returns true" do
        expect(subject).to eq a_gem
      end
    end

    context "with the same (but not equivalent) relative path from different roots" do
      subject { described_class.new("path" => "gems/a") }

      let(:a_gem_opts) { { "path" => "gems/a", "root_path" => Bundler.root.join("nested") } }
      let(:a_gem)      { described_class.new a_gem_opts }

      it "returns false" do
        expect(subject).to_not eq a_gem
      end
    end
  end
end