58 lines
1.6 KiB
Ruby
58 lines
1.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "docker_manager/git_repo"
|
|
|
|
RSpec.describe DockerManager::GitRepo do
|
|
describe ".find_all" do
|
|
it "returns a list of repos" do
|
|
expect(described_class.find_all).to be_present
|
|
end
|
|
end
|
|
|
|
describe ".find" do
|
|
it "does not find invalid repos" do
|
|
expect(described_class.find(" NOT A REPO")).to be_blank
|
|
end
|
|
|
|
it "returns valid repos" do
|
|
repo = described_class.find_all.first
|
|
expect(repo.path).to be_present
|
|
end
|
|
end
|
|
|
|
describe "#branch" do
|
|
it "returns origin/master if a repo hasn't been renamed" do
|
|
described_class
|
|
.any_instance
|
|
.stubs(:upstream_branch)
|
|
.returns("origin/master")
|
|
described_class.any_instance.stubs(:has_origin_main?).returns(false)
|
|
repo = described_class.new("dummy", "dummy")
|
|
|
|
expect(repo.branch).to eq("origin/master")
|
|
end
|
|
|
|
it "returns origin/main if a repo has been renamed but still tracks master" do
|
|
described_class
|
|
.any_instance
|
|
.stubs(:upstream_branch)
|
|
.returns("origin/master")
|
|
described_class.any_instance.stubs(:has_origin_main?).returns(true)
|
|
repo = described_class.new("dummy", "dummy")
|
|
|
|
expect(repo.branch).to eq("origin/main")
|
|
end
|
|
|
|
it "returns origin/main if a repo points at origin/main" do
|
|
described_class
|
|
.any_instance
|
|
.stubs(:upstream_branch)
|
|
.returns("origin/main")
|
|
described_class.any_instance.stubs(:has_origin_main?).returns(true)
|
|
repo = described_class.new("dummy", "dummy")
|
|
|
|
expect(repo.branch).to eq("origin/main")
|
|
end
|
|
end
|
|
end
|