| @@ -18,6 +18,7 @@ module Agents | ||
| 18 | 18 | if agent = current_user.agents.find_by(id: params[:agent_id]) | 
| 19 | 19 | # POST /agents/:id/dry_run | 
| 20 | 20 | if attrs.present? | 
| 21 | + attrs.merge!(memory: agent.memory) | |
| 21 | 22 | type = agent.type | 
| 22 | 23 | agent = Agent.build_for_type(type, current_user, attrs) | 
| 23 | 24 | end | 
| @@ -100,5 +100,22 @@ describe Agents::DryRunsController do | ||
| 100 | 100 | results = assigns(:results) | 
| 101 | 101 |        expect(results[:log]).to match(/^\[\d\d:\d\d:\d\d\] INFO -- : Fetching #{Regexp.quote(url_from_event)}$/) | 
| 102 | 102 | end | 
| 103 | + | |
| 104 | + it "uses the memory of an existing Agent" do | |
| 105 | +      valid_params = { | |
| 106 | + :name => "somename", | |
| 107 | +        :options => { | |
| 108 | +          :code => "Agent.check = function() { this.createEvent({ 'message': this.memory('fu') }); };", | |
| 109 | + } | |
| 110 | + } | |
| 111 | + agent = Agents::JavaScriptAgent.new(valid_params) | |
| 112 | +      agent.memory = {fu: "bar"} | |
| 113 | + agent.user = users(:bob) | |
| 114 | + agent.save! | |
| 115 | + post :create, agent_id: agent, agent: valid_params | |
| 116 | + results = assigns(:results) | |
| 117 | +      expect(results[:events][0]).to eql({"message" => "bar"}) | |
| 118 | + end | |
| 119 | + | |
| 103 | 120 | end | 
| 104 | 121 | end |