diff --git a/app/presenters/content_item/metadata.rb b/app/presenters/content_item/metadata.rb index dfb1c2a07..8a7076bf7 100644 --- a/app/presenters/content_item/metadata.rb +++ b/app/presenters/content_item/metadata.rb @@ -20,12 +20,25 @@ def important_metadata end def publisher_metadata - { + metadata = { from:, first_published: published, last_updated: updated, - see_updates_link: true, } + + unless pending_stats_announcement? + metadata[:see_updates_link] = true + end + + metadata + end + + def pending_stats_announcement? + details_display_date.present? && Time.zone.parse(details_display_date).future? + end + + def details_display_date + content_item["details"]["display_date"] end end end diff --git a/test/presenters/content_item/metadata_test.rb b/test/presenters/content_item/metadata_test.rb new file mode 100644 index 000000000..1e6571b2e --- /dev/null +++ b/test/presenters/content_item/metadata_test.rb @@ -0,0 +1,61 @@ +require "test_helper" + +class ContentItemMetadataTest < ActiveSupport::TestCase + class DummyContentItem + include ContentItem::Metadata + attr_reader :content_item, :view_context, :base_path, :public_updated_at, :title, :schema_name + + def initialize(schema_name = "manual") + @view_context = ApplicationController.new.view_context + @content_item = { + "title" => "Super title", + "base_path" => "/a/base/path", + "public_updated_at" => "2022-03-23T08:30:20.000+00:00", + "schema_name" => schema_name, + "details" => { + "body" => "body", + "child_section_groups" => [{ "title" => "thing" }], + "display_date" => "23 March 2000", + }, + "links" => { + "organisations" => [ + { "content_id" => SecureRandom.uuid, "title" => "blah", "base_path" => "/blah" }, + ], + }, + } + @base_path = content_item["base_path"] + @public_updated_at = content_item["public_updated_at"] + @title = content_item["title"] + @schema_name = content_item["schema_name"] + end + end + + test "returns see_updates_link true if published" do + item = DummyContentItem.new + item.stubs(:display_date).returns("23 March 2000") + + expected_publisher_metadata = { + from: ["blah"], + first_published: "23 March 2000", + last_updated: nil, + see_updates_link: true, + } + + assert_equal expected_publisher_metadata, item.publisher_metadata + end + + test "does not return see_updates_link if pending" do + item = DummyContentItem.new + item.stubs(:display_date).returns("23 March 3000") + + item.content_item["details"]["display_date"] = "23 March 3000" + + expected_publisher_metadata = { + from: ["blah"], + first_published: "23 March 3000", + last_updated: nil, + } + + assert_equal expected_publisher_metadata, item.publisher_metadata + end +end