Cleanup tests

pull/803/head
Rick Carlino 2018-04-20 12:30:44 -05:00
parent d9de1179db
commit f977eb63da
6 changed files with 49 additions and 15 deletions

View File

@ -21,8 +21,10 @@ module Api
end
def apply
mutate SavedGardens::Apply
.run(garden: garden, device: current_device, destructive: false)
params = { garden: garden,
device: current_device,
destructive: (request.method == "POST") }
mutate SavedGardens::Apply.run(params)
end
private

View File

@ -7,6 +7,14 @@ module SavedGardens
end
def execute
clean_out_plants if destructive
convert_templates_to_plants
""
end
private
def convert_templates_to_plants
Plant
.create!(garden
.plant_templates
@ -21,7 +29,11 @@ module SavedGardens
y: template.y,
z: template.z }
end)
""
end
def clean_out_plants
Points::Destroy.run!(device: device,
point_ids: device.plants.pluck(:id))
end
end
end

View File

@ -42,7 +42,7 @@ FarmBot::Application.routes.draw do
resources :saved_gardens, except: [ :show ] do
post :snapshot, on: :collection
# post :apply, on: :member
post :apply, on: :member
patch :apply, on: :member
end

View File

@ -41,7 +41,6 @@ class LogService
if save?(log)
device = Device.find(device_id)
db_log = Logs::Create.run!(log, device: device)
maybe_clear_logs(device)
LogDispatch.deliver(device, db_log)
end
end

View File

@ -81,9 +81,39 @@ describe Api::SavedGardensController do
saved_garden = FactoryBot.create(:saved_garden, device: user.device)
FactoryBot.create_list(:plant_template, 3, device: user.device, saved_garden: saved_garden)
old_plant_count = user.device.plants.count
post :apply, params: {id: saved_garden.id }
patch :apply, params: {id: saved_garden.id }
expect(response.status).to be(200)
expect(user.device.plants.count).to be > old_plant_count
end
it "prevents destructive application when plants in use."# do
# SavedGarden.destroy_all
# Plant.destroy_all
# PlantTemplate.destroy_all
# sign_in user
# saved_garden = FactoryBot.create(:saved_garden, device: user.device)
# FactoryBot.create_list(:plant_template, 3, device: user.device,
# saved_garden: saved_garden)
# puts "Create sequence using a plant"
# old_plant_count = user.device.plants.count
# patch :apply, params: {id: saved_garden.id }
# expect(response.status).to be(200)
# expect(user.device.plants.count).to be > old_plant_count
# end
it "performs 'destructive' garden application" do
SavedGarden.destroy_all
Plant.destroy_all
PlantTemplate.destroy_all
sign_in user
saved_garden = FactoryBot.create(:saved_garden, device: user.device)
plant = FactoryBot.create(:plant, device: user.device)
FactoryBot.create_list(:plant_template, 3, device: user.device, saved_garden: saved_garden)
old_plant_count = user.device.plants.count
post :apply, params: {id: saved_garden.id }
expect(response.status).to be(200)
expect(user.device.plants.count).to be > old_plant_count
expect(Plant.exists?(plant.id)).to be false
end
end
end

View File

@ -25,15 +25,6 @@ describe LogService do
end
end
it "clips overflowing logs" do
device = Device.find(device_id)
FactoryBot.create_list(:log, device.max_log_count + 10, device: device)
b4 = device.logs.count
LogService.process(fake_delivery_info, normal_payl)
expect(device.logs.count).to be < b4
expect(device.logs.count).to eq(device.max_log_count)
end
it "calls .subscribe() on Transport." do
fakee = FakeLogChan.new
allow(Transport).to receive(:log_channel) { fakee }