docker_manager/spec/lib/git_repo_spec.rb

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