Коммит 2bb763c5 создал по автору M. Ricketts's avatar M. Ricketts Зафиксировано автором Adam Niedzielski
Просмотр файлов

Show all active broadcast messages, rather than just the last one

владелец 5478ff6d
module BroadcastMessagesHelper
def broadcast_message(message = BroadcastMessage.current)
def broadcast_message(message)
return unless message.present?
content_tag :div, class: 'broadcast-message', style: broadcast_message_style(message) do
......
......@@ -16,7 +16,7 @@ class BroadcastMessage < ActiveRecord::Base
def self.current
Rails.cache.fetch("broadcast_message_current", expires_in: 1.minute) do
where("ends_at > :now AND starts_at <= :now", now: Time.zone.now).last
where('ends_at > :now AND starts_at <= :now', now: Time.zone.now)
end
end
......
= broadcast_message
- BroadcastMessage.current.each do |message|
= broadcast_message(message)
---
title: Display all current broadcast messages, not just the last one
merge_request: 11113
author: rickettm
......@@ -21,22 +21,29 @@
end
describe '.current' do
it "returns last message if time match" do
it 'returns message if time match' do
message = create(:broadcast_message)
expect(BroadcastMessage.current).to eq message
expect(BroadcastMessage.current).to include(message)
end
it "returns nil if time not come" do
it 'returns multiple messages if time match' do
message1 = create(:broadcast_message)
message2 = create(:broadcast_message)
expect(BroadcastMessage.current).to contain_exactly(message1, message2)
end
it 'returns empty list if time not come' do
create(:broadcast_message, :future)
expect(BroadcastMessage.current).to be_nil
expect(BroadcastMessage.current).to be_empty
end
it "returns nil if time has passed" do
it 'returns empty list if time has passed' do
create(:broadcast_message, :expired)
expect(BroadcastMessage.current).to be_nil
expect(BroadcastMessage.current).to be_empty
end
end
......
......@@ -23,7 +23,7 @@
get api("/internal/broadcast_message"), secret_token: secret_token
expect(response).to have_http_status(200)
expect(json_response["message"]).to eq(broadcast_message.message)
expect(json_response[0]['message']).to eq(broadcast_message.message)
end
end
......
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать