Farmbot-Web-App/spec/controllers/api/devices/devices_controller_destroy_...

62 lines
1.8 KiB
Ruby
Raw Normal View History

2019-05-02 18:20:22 -06:00
require "spec_helper"
2014-06-20 19:54:45 -06:00
describe Api::DevicesController do
2016-08-03 09:31:45 -06:00
include Devise::Test::ControllerHelpers
2014-06-20 19:54:45 -06:00
2019-05-02 18:20:22 -06:00
describe "#destroy" do
let(:password) { "password456" }
let(:user) { FactoryBot.create(:user, password: password, password_confirmation: password) }
resources = %w(sensor peripheral log pin_binding generic_pointer
2019-05-02 18:20:22 -06:00
tool_slot plant_template saved_garden sensor_reading
farmware_installation tool token_issuance)
2014-06-20 19:54:45 -06:00
2019-05-02 18:20:22 -06:00
it "resets a bot" do
sign_in user
device = user.device
resources.map do |resource|
FactoryBot.create(resource.to_sym, device: device)
end
resources.map do |resource|
expect(device.send(resource.pluralize).reload.count).to be > 0
end
device.update_attributes(name: "#{SecureRandom.hex(10)}")
2019-05-22 14:19:26 -06:00
run_jobs_now { post :reset, body: { password: password }.to_json }
2019-05-02 18:20:22 -06:00
resources
.without("token_issuance")
.map do |resource|
count = device.send(resource.pluralize).reload.count
if count > 0
did_not_delete = "Epected #{resource} count to be 0 but got #{count}"
fail(did_not_delete)
end
2019-05-02 18:20:22 -06:00
end
expect(device.reload.name).to eq("FarmBot")
expect(device.alerts.count).to eq(1)
expect(device.token_issuances.count).to_not be > 1
2019-05-02 18:20:22 -06:00
end
2014-06-20 19:54:45 -06:00
2019-05-04 14:05:03 -06:00
it "can't reset a device if credentials are missing" do
sign_in user
device = user.device
2019-05-22 14:19:26 -06:00
run_jobs_now { post :reset, body: {}.to_json }
2019-05-04 14:05:03 -06:00
expect(response.status).to eq(422)
expect(json.fetch(:password)).to eq("Password is required")
end
2019-05-02 18:20:22 -06:00
it "destroys a Device" do
2014-06-20 19:54:45 -06:00
sign_in user
2016-05-09 09:08:42 -06:00
old_bot = user.device
2016-11-29 13:30:42 -07:00
delete :destroy, params: { id: user.device.id }
2014-06-20 19:54:45 -06:00
user.reload
2016-08-31 12:16:03 -06:00
expect(user.device.id).not_to eq(old_bot.id)
2014-06-20 19:54:45 -06:00
expect(response.status).to eq(204)
end
end
end