spec/lib/gdk/diagnostic/version_spec.rb (42 lines of code) (raw):

# frozen_string_literal: true require "spec_helper" RSpec.describe GDK::Diagnostic::Version do let(:version_checker) do current_commit = GDK::VersionChecker::GitCommit.new(sha: 'deadbeef', timestamp: DateTime.now - current_commit_age_days) latest_main_commit = GDK::VersionChecker::GitCommit.new(sha: 'd06f00d', timestamp: DateTime.now) GDK::VersionChecker.new(service_path: GDK.root).tap do |checker| allow(checker).to receive_messages( current_commit: current_commit, latest_main_commit: latest_main_commit ) allow(checker).to receive(:count_commits_between).with(latest_main_commit, current_commit).and_return(10) allow(checker).to receive(:count_commits_between).with(current_commit, latest_main_commit).and_return(0) end end before do allow(GDK::VersionChecker) .to receive(:new) .and_return(version_checker) end describe 'when gdk is not outdated' do let(:current_commit_age_days) { 2 } describe '#success?' do it { expect(subject.success?).to be(true) } end describe '#detail' do it { expect(subject.detail).to be_nil } end end describe 'when gdk is outdated' do let(:current_commit_age_days) { 10 } describe '#success?' do it { expect(subject.success?).to be(false) } end describe '#detail' do it { expect(subject.detail).to eq(<<~MESSAGE) } An update for GDK is available. - The latest commit of your GDK is 9 days old. - Current commit (deadbeef) is 10 commits behind origin/main (d06f00d) MESSAGE end end end