diff --git a/Gemfile.lock b/Gemfile.lock index ecade4e01..0d5583ad6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,6 +3,7 @@ PATH specs: github_changelog_generator (1.15.2) activesupport + async (>= 1.25.0) async-http-faraday faraday-http-cache multi_json diff --git a/lib/github_changelog_generator/generator/generator_tags.rb b/lib/github_changelog_generator/generator/generator_tags.rb index 3e0da72d5..e5959b4eb 100644 --- a/lib/github_changelog_generator/generator/generator_tags.rb +++ b/lib/github_changelog_generator/generator/generator_tags.rb @@ -83,7 +83,7 @@ def get_time_of_tag(tag_name) # @return [Array] link, name and time of the tag def detect_link_tag_time(newer_tag) # if tag is nil - set current time - newer_tag_time = newer_tag.nil? ? Time.new : get_time_of_tag(newer_tag) + newer_tag_time = newer_tag.nil? ? Time.new.getutc : get_time_of_tag(newer_tag) # if it's future release tag - set this value if newer_tag.nil? && options[:future_release] diff --git a/spec/unit/generator/generator_tags_spec.rb b/spec/unit/generator/generator_tags_spec.rb index 42764afe0..cd6da3e86 100644 --- a/spec/unit/generator/generator_tags_spec.rb +++ b/spec/unit/generator/generator_tags_spec.rb @@ -13,6 +13,33 @@ def tags_from_strings(tags_strings) end end + describe "#detect_link_tag_time" do + let(:newer_tag) { nil } + + let(:default_options) { GitHubChangelogGenerator::Parser.default_options.merge(verbose: false) } + let(:options) do + { + future_release: "2.0.0" + } + end + let(:generator) { described_class.new(default_options.merge(options)) } + + subject do + generator.detect_link_tag_time(newer_tag) + end + + context "When the local date is not the same as the UTC date" do + before do + # 2020-12-27T17:00:00-10:00 is 2020-12-28T03:00:00Z. + # GitHub API date & time use UTC, so this instant when converted as a + # date should be 2020-12-28. + expect(Time).to receive(:new).and_return(Time.new(2020, 12, 27, 17, 0, 0, "-10:00")) + end + + it { is_expected.to eq(["2.0.0", "2.0.0", Time.gm(2020, 12, 28, 3)]) } + end + end + describe "#tag_section_mapping" do let(:all_tags) { tags_from_strings(%w[8 7 6 5 4 3 2 1]) } let(:sorted_tags) { all_tags }