From 652eb4418fb2f1b5a36d154a0051d6d11c862c84 Mon Sep 17 00:00:00 2001 From: Akinori MUSHA Date: Wed, 12 Apr 2017 19:24:13 +0900 Subject: [PATCH] DataOutputAgent should not override `events` in each event This fixes #1963. --- app/models/agents/data_output_agent.rb | 4 +--- spec/models/agents/data_output_agent_spec.rb | 22 ++++++++++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/app/models/agents/data_output_agent.rb b/app/models/agents/data_output_agent.rb index 926f8e03..9e5aaa37 100644 --- a/app/models/agents/data_output_agent.rb +++ b/app/models/agents/data_output_agent.rb @@ -246,9 +246,7 @@ module Agents source_events = sort_events(latest_events(), 'events_list_order') - interpolation_context.stack do - interpolation_context['events'] = source_events - + interpolate_with('events' => source_events) do items = source_events.map do |event| interpolated = interpolate_options(options['template']['item'], event) interpolated['guid'] = {'_attributes' => {'isPermaLink' => 'false'}, diff --git a/spec/models/agents/data_output_agent_spec.rb b/spec/models/agents/data_output_agent_spec.rb index b4450066..daff36e5 100644 --- a/spec/models/agents/data_output_agent_spec.rb +++ b/spec/models/agents/data_output_agent_spec.rb @@ -324,6 +324,28 @@ describe Agents::DataOutputAgent do expect(content['title']).to eq('XKCD comics as a feed (XKCD)') end + + context "with event with \"events\"" do + before do + agent.sources.first.create_event payload: { + 'site_title' => 'XKCD', + 'url' => 'http://imgs.xkcd.com/comics/comicX.png', + 'title' => 'Comic X', + 'date' => '', + 'hovertext' => 'Hovertext for Comic X', + 'events' => 'Events!' + } + agent.options['template']['item']['events_data'] = "{{ events }}" + agent.save! + end + + it "can access the value without being overridden" do + content, status, content_type = agent.receive_web_request({ 'secret' => 'secret2' }, 'get', 'application/json') + expect(status).to eq(200) + + expect(content['items'].first['events_data']).to eq('Events!') + end + end end describe "with a specified icon" do