brew/Library/Homebrew/test/attestation_spec.rb

43 lines
1.2 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
require "diagnostic"
RSpec.describe Homebrew::Attestation do
subject(:attestation) { described_class }
let(:fake_gh) { Pathname.new("/extremely/fake/gh") }
let(:fake_json_resp) { JSON.dump({ foo: "bar" }) }
let(:cached_download) { "/fake/cached/download" }
let(:fake_bottle) { instance_double(Bottle, cached_download:) }
describe "::gh_executable" do
it "calls ensure_executable" do
expect(attestation).to receive(:ensure_executable!)
.with("gh")
.and_return(fake_gh)
attestation.gh_executable
end
end
describe "::check_core_attestation" do
before do
allow(attestation).to receive(:gh_executable)
.and_return(fake_gh)
allow(Utils).to receive(:safe_popen_read)
.and_return(fake_json_resp)
end
it "calls gh with args for homebrew-core" do
expect(Utils).to receive(:safe_popen_read)
.with(fake_gh, "attestation", "verify", cached_download, "--repo",
attestation::HOMEBREW_CORE_REPO, "--format", "json", "--cert-identity",
attestation::HOMEBREW_CORE_CI_URI)
.and_return(fake_json_resp)
attestation.check_core_attestation fake_bottle
end
end
end