From 1d705bfafc32c1436a9d80725cfa0f7db709e14d Mon Sep 17 00:00:00 2001 From: Jeffrey Lau Date: Fri, 12 Jul 2019 11:50:07 +0800 Subject: [PATCH] Handle cases when PGP key metadata is 'nil' --- app/models/rails/keyserver/key/pgp.rb | 2 +- spec/models/rails/key/pgp_spec.rb | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/models/rails/keyserver/key/pgp.rb b/app/models/rails/keyserver/key/pgp.rb index d7fe67e..0e4fefe 100644 --- a/app/models/rails/keyserver/key/pgp.rb +++ b/app/models/rails/keyserver/key/pgp.rb @@ -15,7 +15,7 @@ def self.extension Engine.config.key_host = nil def derive_metadata_if_empty - derive_metadata if metadata.empty? + derive_metadata if metadata.blank? end # Pick the one without primar key grip. diff --git a/spec/models/rails/key/pgp_spec.rb b/spec/models/rails/key/pgp_spec.rb index 2dfc4ae..d22225e 100644 --- a/spec/models/rails/key/pgp_spec.rb +++ b/spec/models/rails/key/pgp_spec.rb @@ -796,6 +796,23 @@ end end + describe "#derive_metadata_if_empty" do + context "with nil metadata" do + let(:key) do + FactoryBot.build(:rails_keyserver_key_pgp).tap do |k| + allow(k).to receive(:metadata).and_return(nil) + allow(k).to receive(:derive_metadata) + expect(k.metadata).to be_nil + end + end + + it "runs #derive_metadata_if_empty" do + expect(key).to receive :derive_metadata + key.derive_metadata_if_empty + end + end + end + # - wrong key # # …