features/step_definitions/git_steps.rb in stove-2.0.0 vs features/step_definitions/git_steps.rb in stove-3.0.0

- old
+ new

@@ -7,24 +7,61 @@ ].join(' && ') %x|#{cmd}| end +Given /^a GPG key exists/ do + gpg_home = File.join(scratch_dir, '.gnupg') + set_env('GNUPGHOME', gpg_home) + Dir.mkdir(gpg_home) + File.chmod(0700, gpg_home) + batch_path = File.join(gpg_home, 'batch') + File.write(batch_path, <<-EOH) +%pubring #{File.join(gpg_home, 'keyring')} +%secring #{File.join(gpg_home, 'keyring.sec')} +Key-Type: DSA +Key-Length: 832 +Subkey-Type: ELG-E +Subkey-Length: 800 +Name-Real: Alan Smithee +Name-Email: asmithee@example.com +Expire-Date: 0 +%commit +EOH + gpg_wrapper = File.join(gpg_home, 'gpg_wrapper') + File.write(gpg_wrapper, <<-EOH) +#!/bin/sh +gpg "--keyring=#{File.join(gpg_home, 'keyring')}" "--secret-keyring=#{File.join(gpg_home, 'keyring.sec')}" "$@" +EOH + File.chmod(0755, gpg_wrapper) + + cmd = [ + "cd \"#{current_dir}\"", + "git config gpg.program #{gpg_wrapper}", + 'git config user.signingkey asmithee@example.com', + "gpg --quiet --batch --gen-key #{batch_path}", + ].join(' && ') + + %x|#{cmd}| +end + + Then /^the git remote should( not)? have the commit "(.+)"$/ do |negate, message| commits = git_commits(fake_git_remote) if negate expect(commits).to_not include(message) else expect(commits).to include(message) end end -Then /^the git remote should( not)? have the tag "(.+)"$/ do |negate, tag| +Then /^the git remote should( not)? have the( signed)? tag "(.+)"$/ do |negate, signed, tag| tags = git_tags(fake_git_remote) if negate expect(tags).to_not include(tag) else expect(tags).to include(tag) + expect(git_tag_signature?(fake_git_remote, tag)).to be_truthy if signed end end