Upgrade to latest FactoryBot

pull/511/head
Rick Carlino 2017-10-22 08:19:50 -05:00
parent b79c9d389a
commit 94f216a540
93 changed files with 178 additions and 178 deletions

View File

@ -31,7 +31,7 @@ group :development, :test do
gem "database_cleaner"
gem "pry"
gem "pry-rails"
gem "factory_girl_rails"
gem "factory_bot_rails" # 4.8.0
gem "faker"
gem "smarf_doc", git: "https://github.com/RickCarlino/smarf_doc.git"
gem "rails-erd"

View File

@ -93,10 +93,10 @@ GEM
erubi (1.6.1)
eventmachine (1.2.5)
excon (0.59.0)
factory_girl (4.8.0)
factory_bot (4.8.2)
activesupport (>= 3.0.0)
factory_girl_rails (4.8.0)
factory_girl (~> 4.8.0)
factory_bot_rails (4.8.2)
factory_bot (~> 4.8.2)
railties (>= 3.0.0)
faker (1.8.4)
i18n (~> 0.5)
@ -268,7 +268,7 @@ DEPENDENCIES
delayed_job
delayed_job_active_record
devise
factory_girl_rails
factory_bot_rails
faker
figaro
fog-google!

View File

@ -13,10 +13,10 @@ module FarmBot
I18n.enforce_available_locales = false
config.generators do |g|
g.template_engine :erb
g.test_framework :rspec, :fixture_replacement => :factory_girl, :views => false, :helper => false
g.test_framework :rspec, :fixture_replacement => :factory_bot, :views => false, :helper => false
g.view_specs false
g.helper_specs false
g.fixture_replacement :factory_girl, :dir => 'spec/factories'
g.fixture_replacement :factory_bot, :dir => 'spec/factories'
end
config.autoload_paths << Rails.root.join('lib')
config.autoload_paths << Rails.root.join('lib/sequence_migrations')

View File

@ -25,7 +25,7 @@ unless Rails.env == "production"
u = User.last
u.update_attributes(confirmed_at: Time.now)
Log.transaction do
FactoryGirl.create_list(:log, 35, device: u.device)
FactoryBot.create_list(:log, 35, device: u.device)
end
[ "https://via.placeholder.com/350x250?text=Image%20Zero",
"https://i.imgur.com/XvFBGA4.jpg",

View File

@ -5,7 +5,7 @@ describe Api::FarmEventsController do
describe 'Bot authentication' do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
let(:device) { user.device }
it 'tells you why you failed to auth' do

View File

@ -6,8 +6,8 @@ describe Api::DevicesController do
describe '#create' do
let!(:user) { FactoryGirl.create(:user) }
let!(:user2) { FactoryGirl.create(:user) }
let!(:user) { FactoryBot.create(:user) }
let!(:user2) { FactoryBot.create(:user) }
it 'creates a new device for a user' do
sign_in user

View File

@ -6,7 +6,7 @@ describe Api::DevicesController do
describe '#destroy' do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
it 'destroys a Device' do
sign_in user

View File

@ -6,7 +6,7 @@ describe Api::DevicesController do
describe '#show' do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
it 'returns all the users devices, as JSON' do
sign_in user

View File

@ -4,7 +4,7 @@ describe Api::DevicesController do
include Devise::Test::ControllerHelpers
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
describe '#show' do
it 'handles deviceless requests' do

View File

@ -8,8 +8,8 @@ describe Api::DevicesController do
describe '#update' do
let(:user) { FactoryGirl.create(:user) }
let(:user2) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
let(:user2) { FactoryBot.create(:user) }
it 'updates a Device' do
sign_in user

View File

@ -4,9 +4,9 @@ describe Api::FarmEventsController do
include Devise::Test::ControllerHelpers
describe '#create' do
let(:user) { FactoryGirl.create(:user) }
let(:sequence) { FactoryGirl.create(:sequence) }
let(:regimen) { FactoryGirl.create(:regimen, device: user.device) }
let(:user) { FactoryBot.create(:user) }
let(:sequence) { FactoryBot.create(:sequence) }
let(:regimen) { FactoryBot.create(:regimen, device: user.device) }
it 'makes a farm_event' do
sign_in user
@ -37,7 +37,7 @@ describe Api::FarmEventsController do
it 'creates a one-off FarmEvent' do
sign_in user
r = FactoryGirl.create(:regimen, device: user.device)
r = FactoryBot.create(:regimen, device: user.device)
input = { "start_time": (Time.now + 1.hour).to_json.gsub("\"", ""),
"next_time": "2017-06-05T18:33:04.342Z",
"time_unit": "never",
@ -53,7 +53,7 @@ describe Api::FarmEventsController do
it 'disallows FarmEvents too far in the past' do
sign_in user
r = FactoryGirl.create(:regimen, device: user.device)
r = FactoryBot.create(:regimen, device: user.device)
input = { "start_time": (Time.now - 40.years).as_json,
"time_unit": "never",
"executable_id": r.id,
@ -67,7 +67,7 @@ describe Api::FarmEventsController do
it 'disallows FarmEvents too far in the future' do
sign_in user
r = FactoryGirl.create(:regimen, device: user.device)
r = FactoryBot.create(:regimen, device: user.device)
input = { "end_time": "+099999-08-18T13:54:00.000Z",
"time_unit": "never",
"executable_id": r.id,

View File

@ -4,11 +4,11 @@ describe Api::FarmEventsController do
include Devise::Test::ControllerHelpers
describe '#destroy' do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
it 'deletes a farm_event' do
sign_in user
farm_event = FactoryGirl.create(:farm_event, device: user.device)
farm_event = FactoryBot.create(:farm_event, device: user.device)
before = FarmEvent.count
delete :destroy, params: { id: farm_event.id }
@ -18,7 +18,7 @@ describe Api::FarmEventsController do
it 'prevents unauthorized deletion' do
sign_in user
farm_event = FactoryGirl.create(:farm_event)
farm_event = FactoryBot.create(:farm_event)
delete :destroy, params: { id: farm_event.id }
before = FarmEvent.count

View File

@ -5,12 +5,12 @@ describe Api::FarmEventsController do
describe '#index' do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
it 'lists all farm_events for a user' do
sign_in user
farm_events = FactoryGirl.create_list(:farm_event, 2, device_id: user.device.id)
farm_events = FactoryBot.create_list(:farm_event, 2, device_id: user.device.id)
farm_event_ids = user.device.farm_events
.map(&:id)
.sort
@ -22,7 +22,7 @@ describe Api::FarmEventsController do
it 'cleans up old farm events' do
sign_in user
farm_events = FactoryGirl.create_list(:farm_event,
farm_events = FactoryBot.create_list(:farm_event,
2,
device_id: user.device.id,
end_time: Date.yesterday - 1.day)

View File

@ -4,11 +4,11 @@ describe Api::FarmEventsController do
include Devise::Test::ControllerHelpers
describe '#update' do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
it 'allows authorized modification' do
sign_in user
id = FactoryGirl.create(:farm_event, device: user.device).id
id = FactoryBot.create(:farm_event, device: user.device).id
input = { id: id, farm_event: { repeat: 66 } }
patch :update, params: input
expect(response.status).to eq(200)
@ -16,7 +16,7 @@ describe Api::FarmEventsController do
it 'prevents unauthorized modification' do
sign_in user
id = FactoryGirl.create(:farm_event).id
id = FactoryBot.create(:farm_event).id
input = { id: id, repeat: 66 }
patch :update, params: input
expect(response.status).to eq(403)
@ -25,7 +25,7 @@ describe Api::FarmEventsController do
it 'sets end_time to self.start_time if no start_time is passed in' do
sign_in user
id = FactoryGirl.create(:farm_event, device: user.device).id
id = FactoryBot.create(:farm_event, device: user.device).id
patch :update, params: { id: id,
repeat: 1,
time_unit: FarmEvent::NEVER }
@ -37,7 +37,7 @@ describe Api::FarmEventsController do
it 'disallows start/end times that are outside of a 20 year window' do
sign_in user
id = FactoryGirl.create(:farm_event, device: user.device).id
id = FactoryBot.create(:farm_event, device: user.device).id
patch :update, params: { id: id,
end_time: "+045633-08-18T13:25:00.000Z" }
expect(response.status).to eq(422)

View File

@ -2,7 +2,7 @@ require 'spec_helper'
describe Api::ImagesController do
include Devise::Test::ControllerHelpers
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
describe '#index' do
it 'shows only the max images allowed' do
@ -10,7 +10,7 @@ describe Api::ImagesController do
device = user.device
# Using the *real* value (10) was super slow (~30 seconds)
device.update_attributes!(max_images_count: 1)
FactoryGirl.create_list(:image, 2, device: user.device)
FactoryBot.create_list(:image, 2, device: user.device)
get :index
expect(response.status).to eq(200)
expect(json.length).to eq(device.max_images_count)
@ -21,7 +21,7 @@ describe Api::ImagesController do
describe '#show' do
it 'shows image meta data' do
sign_in user
image = FactoryGirl.create(:image, device: user.device)
image = FactoryBot.create(:image, device: user.device)
get :show, params: { id: image.id }
expect(response.status).to eq(200)
expect(json[:id]).to eq(image.id)
@ -53,7 +53,7 @@ describe Api::ImagesController do
describe '#delete' do
it 'deletes an image' do
sign_in user
image = FactoryGirl.create(:image, device: user.device)
image = FactoryBot.create(:image, device: user.device)
before_count = Image.count
run_jobs_now do
delete :destroy, params: { id: image.id }

View File

@ -3,8 +3,8 @@ JSON_EXAMPLE = File.read("spec/controllers/api/logs/connor_fixture.json")
describe Api::LogsController do
include Devise::Test::ControllerHelpers
let(:user) { FactoryGirl.create(:user) }
let!(:logs) { FactoryGirl.create_list(:log, 5, device: user.device) }
let(:user) { FactoryBot.create(:user) }
let!(:logs) { FactoryBot.create_list(:log, 5, device: user.device) }
describe '#index' do
it 'lists last x logs' do

View File

@ -3,7 +3,7 @@ describe Api::PasswordResetsController do
include Devise::Test::ControllerHelpers
describe '#create' do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
it 'resets password for a user' do
params = { email: user.email }

View File

@ -4,7 +4,7 @@ describe Api::PeripheralsController do
include Devise::Test::ControllerHelpers
describe '#create' do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
it 'makes a Peripheral' do
sign_in user

View File

@ -3,9 +3,9 @@ require 'spec_helper'
describe Api::PeripheralsController do
include Devise::Test::ControllerHelpers
describe '#destroy' do
let(:user) { FactoryGirl.create(:user) }
let(:peripheral) { FactoryGirl.create(:peripheral, device: user.device) }
let(:user) { FactoryBot.create(:user) }
let(:peripheral) { FactoryBot.create(:peripheral, device: user.device) }
it 'deletes a Peripheral' do
sign_in user
peripheral
@ -17,7 +17,7 @@ describe Api::PeripheralsController do
it 'prevents unauthorized deletion' do
sign_in user
peripheral = FactoryGirl.create(:peripheral)
peripheral = FactoryBot.create(:peripheral)
delete :destroy, params: { id: peripheral.id }
before = Peripheral.count
expect(response.status).to eq(403)

View File

@ -5,12 +5,12 @@ describe Api::PeripheralsController do
describe '#index' do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
it 'lists all Peripherals for a user' do
sign_in user
peripherals = FactoryGirl.create_list(:peripheral, 2, device_id: user.device.id)
peripherals = FactoryBot.create_list(:peripheral, 2, device_id: user.device.id)
peripheral_ids = user.device.peripherals
.map(&:id)
.sort

View File

@ -4,11 +4,11 @@
# include Devise::Test::ControllerHelpers
# describe '#update' do
# let(:user) { FactoryGirl.create(:user) }
# let(:user) { FactoryBot.create(:user) }
# it 'allows authorized modification' do
# sign_in user
# id = FactoryGirl.create(:peripheral, device: user.device).id
# id = FactoryBot.create(:peripheral, device: user.device).id
# input = { id: id, pin: 9 }
# patch :update, input
# expect(response.status).to eq(200)
@ -17,7 +17,7 @@
# it 'prevents unauthorized modification' do
# sign_in user
# id = FactoryGirl.create(:peripheral).id
# id = FactoryBot.create(:peripheral).id
# input = { id: id, pin: 9 }
# patch :update, input
# expect(response.status).to eq(403)

View File

@ -3,7 +3,7 @@ require 'spec_helper'
describe Api::PointsController do
include Devise::Test::ControllerHelpers
describe '#create' do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
let(:device) { user.device }
it 'creates a tool slot' do

View File

@ -10,9 +10,9 @@ describe Api::PointsController do
"offset":{ "kind":"coordinate", "args":{ "x":0, "y":0, "z":0 } },
"speed":800}}]
HEREDOC
let(:device) { FactoryGirl.create(:device) }
let(:user) { FactoryGirl.create(:user, device: device) }
let!(:point) { FactoryGirl.create(:point, device: device) }
let(:device) { FactoryBot.create(:device) }
let(:user) { FactoryBot.create(:user, device: device) }
let!(:point) { FactoryBot.create(:point, device: device) }
let(:plant) {
Point.create!(x: 10,
y: 20,
@ -58,7 +58,7 @@ describe Api::PointsController do
it 'performs batch deletion' do
sign_in user
points = FactoryGirl.create_list(:point, 6, device: user.device)
points = FactoryBot.create_list(:point, 6, device: user.device)
before_count = Point.count
delete :destroy, params: { id: points.map(&:id).join(",") }
expect(Point.count).to eq(before_count - 6)

View File

@ -3,9 +3,9 @@ require 'spec_helper'
describe Api::PointsController do
include Devise::Test::ControllerHelpers
describe '#index' do
let(:device) { FactoryGirl.create(:device) }
let(:device) { FactoryBot.create(:device) }
let(:user) do
FactoryGirl.create(:user, device: device, password: "password123")
FactoryBot.create(:user, device: device, password: "password123")
end
let(:auth_token) do
Auth::CreateToken
@ -14,7 +14,7 @@ describe Api::PointsController do
it 'lists points' do
sign_in user
FactoryGirl.create_list(:point, 3, device: device)
FactoryBot.create_list(:point, 3, device: device)
get :index
expect(response.status).to eq(200)
expect(json.length).to eq(3)
@ -57,7 +57,7 @@ describe Api::PointsController do
allow(request).to receive(:user_agent).and_return(ua)
request.env["HTTP_USER_AGENT"] = ua
sign_in user
FactoryGirl.create_list(:point, 1, device: device)
FactoryBot.create_list(:point, 1, device: device)
get :index
expect(response.status).to eq(426)
expect(json[:error]).to include("Upgrade to latest FarmBot OS")
@ -69,7 +69,7 @@ describe Api::PointsController do
allow(request).to receive(:user_agent).and_return(ua)
request.env["HTTP_USER_AGENT"] = ua
request.headers["Authorization"] = "bearer #{auth_token}"
FactoryGirl.create_list(:point, 1, device: device)
FactoryBot.create_list(:point, 1, device: device)
get :index
new_last_saw_api = user.device.reload.last_saw_api
expect(response.status).to eq(200)

View File

@ -3,13 +3,13 @@ require 'spec_helper'
describe Api::PointsController do
include Devise::Test::ControllerHelpers
describe '#search' do
let(:device) { FactoryGirl.create(:device) }
let(:user) { FactoryGirl.create(:user, device: device) }
let(:device) { FactoryBot.create(:device) }
let(:user) { FactoryBot.create(:user, device: device) }
it 'queries points' do
sign_in user
FactoryGirl.create(:point, device: device, meta: {foo1: 1})
FactoryGirl.create(:point, device: device, meta: {bar2: 2})
FactoryBot.create(:point, device: device, meta: {foo1: 1})
FactoryBot.create(:point, device: device, meta: {bar2: 2})
post :search,
body: {meta: {foo1: 1}}.to_json,
params: {format: :json }
@ -21,8 +21,8 @@ describe Api::PointsController do
it 'queries fields other than meta' do
sign_in user
FactoryGirl.create(:point, device: device, x: 23)
FactoryGirl.create(:point, device: device, x: 98)
FactoryBot.create(:point, device: device, x: 23)
FactoryBot.create(:point, device: device, x: 98)
post :search, body: {x: 23}.to_json, params: {format: :json }
expect(response.status).to eq(200)
expect(json.length).to eq(1)

View File

@ -4,7 +4,7 @@ describe Api::PointsController do
include Devise::Test::ControllerHelpers
describe("#show") do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
let(:device) { user.device }
it 'renders a tool slot' do

View File

@ -3,9 +3,9 @@ require 'spec_helper'
describe Api::PointsController do
include Devise::Test::ControllerHelpers
describe '#update' do
let(:device) { FactoryGirl.create(:device) }
let(:user) { FactoryGirl.create(:user, device: device) }
let!(:point) { FactoryGirl.create(:point, device: device) }
let(:device) { FactoryBot.create(:device) }
let(:user) { FactoryBot.create(:user, device: device) }
let!(:point) { FactoryBot.create(:point, device: device) }
it 'updates a point' do
sign_in user

View File

@ -5,12 +5,12 @@ describe Api::RegimensController do
include Devise::Test::ControllerHelpers
describe '#create' do
let(:user) { FactoryGirl.create(:user) }
let(:sequence) { FactoryGirl.create(:sequence, device: user.device) }
let(:user) { FactoryBot.create(:user) }
let(:sequence) { FactoryBot.create(:sequence, device: user.device) }
it 'creates a new regimen' do
sign_in user
color = %w(blue green yellow orange purple pink gray red).sample
name = (1..3).map{ Faker::Pokemon.name }.join(" ")
payload = {
name: name,

View File

@ -3,8 +3,8 @@ describe Api::RegimensController do
include Devise::Test::ControllerHelpers
describe '#index' do
let(:user) { FactoryGirl.create(:user) }
let!(:regimen) { FactoryGirl.create(:regimen, device: user.device) }
let(:user) { FactoryBot.create(:user) }
let!(:regimen) { FactoryBot.create(:regimen, device: user.device) }
it 'retrieves all regimina' do
sign_in user

View File

@ -5,7 +5,7 @@ describe Api::RegimensController do
include Devise::Test::ControllerHelpers
describe '#index' do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
it 'retrieves all regimina' do
regimen = Regimen.create!(name: SecureRandom.hex, device: user.device)
@ -18,7 +18,7 @@ describe Api::RegimensController do
it 'doesnt fetch other peoples regimens' do
regimen = Regimen.create!(name: SecureRandom.hex, device: user.device)
other_person = FactoryGirl.create(:user)
other_person = FactoryBot.create(:user)
sign_in other_person
process :index, method: :get
expect(response.status).to eq(200)

View File

@ -5,8 +5,8 @@ describe Api::RegimensController do
include Devise::Test::ControllerHelpers
describe '#update' do
let(:user) { FactoryGirl.create(:user) }
let(:sequence) { FactoryGirl.create(:sequence, device: user.device) }
let(:user) { FactoryBot.create(:user) }
let(:sequence) { FactoryBot.create(:sequence, device: user.device) }
it 'updates an old regimen' do
sign_in user

View File

@ -9,7 +9,7 @@ describe Api::SequencesController do
include Devise::Test::ControllerHelpers
describe '#create' do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
let(:nodes) { sequence_body_for(user) }
it 'handles a well formed AST in the body attribute' do
@ -77,7 +77,7 @@ describe Api::SequencesController do
end
it 'tracks Points' do
point = FactoryGirl.create(:point, device: user.device)
point = FactoryBot.create(:point, device: user.device)
SequenceDependency.delete_all
Sequence.delete_all
old_count = SequenceDependency.count

View File

@ -8,9 +8,9 @@ describe Api::SequencesController do
include Devise::Test::ControllerHelpers
describe '#destroy' do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
let(:device) { user.device }
let(:sequence) { FactoryGirl.create(:sequence, device: device) }
let(:sequence) { FactoryBot.create(:sequence, device: device) }
it 'destroys a sequence' do
sign_in user
@ -23,7 +23,7 @@ describe Api::SequencesController do
it 'doesnt destroy other peoples sequence' do
sign_in user
other_persons = FactoryGirl.create(:sequence)
other_persons = FactoryBot.create(:sequence)
input = { id: other_persons.id }
delete :destroy, params: input
expect(response.status).to eq(403)

View File

@ -9,11 +9,11 @@ describe Api::SequencesController do
request.headers["accept"] = 'application/json'
end
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
it 'lists all sequences for a user' do
sign_in user
sequences = FactoryGirl
sequences = FactoryBot
.create_list(:sequence, 2, device: user.device)
.map(&:id)
.sort

View File

@ -9,11 +9,11 @@ describe Api::SequencesController do
describe '#show' do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
it 'shows sequence' do
sign_in user
id = FactoryGirl.create(:sequence, device: user.device).id
id = FactoryBot.create(:sequence, device: user.device).id
get :show, params: { id: id }
expect(response.status).to eq(200)
expect(json[:id]).to eq(id)

View File

@ -6,13 +6,13 @@ describe Api::SequencesController do
describe '#update' do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
it 'refreshes sequence dependencies on update' do
SequenceDependency.destroy_all
old_count = SequenceDependency.count
sign_in user
sequence = FactoryGirl.create(:sequence, device: user.device)
sequence = FactoryBot.create(:sequence, device: user.device)
input = { id: sequence.id,
sequence: { name: "Scare Birds",
body: nodes } }
@ -27,7 +27,7 @@ describe Api::SequencesController do
it 'updates existing sequences' do
sign_in user
sequence = FactoryGirl.create(:sequence, device: user.device)
sequence = FactoryBot.create(:sequence, device: user.device)
input = { sequence: { name: "Scare Birds" } }
params = { id: sequence.id }
patch :update,

View File

@ -5,7 +5,7 @@ describe Api::TokensController do
include Devise::Test::ControllerHelpers
describe '#create' do
let(:user) { FactoryGirl.create(:user, password: "password") }
let(:user) { FactoryBot.create(:user, password: "password") }
it 'creates a new token' do
payload = {user: {email: user.email, password: "password"}}
post :create, params: payload

View File

@ -5,7 +5,7 @@ describe Api::TokensController do
include Devise::Test::ControllerHelpers
describe '#show' do
let(:user) { FactoryGirl.create(:user, password: "password") }
let(:user) { FactoryBot.create(:user, password: "password") }
let(:auth_token) { SessionToken.issue_to(user) }
it 'creates a new token' do

View File

@ -3,8 +3,8 @@ require 'spec_helper'
describe Api::ToolsController do
include Devise::Test::ControllerHelpers
describe '#create' do
let(:user) { FactoryGirl.create(:user) }
let(:tool_slot) { FactoryGirl.create(:tool_slot) }
let(:user) { FactoryBot.create(:user) }
let(:tool_slot) { FactoryBot.create(:tool_slot) }
it 'creates a new tool' do
sign_in user

View File

@ -3,11 +3,11 @@ require 'spec_helper'
describe Api::ToolsController do
include Devise::Test::ControllerHelpers
describe '#destroy' do
let(:user) { FactoryGirl.create(:user) }
let(:tool_slot) { FactoryGirl.create(:tool_slot) }
let(:user) { FactoryBot.create(:user) }
let(:tool_slot) { FactoryBot.create(:tool_slot) }
let!(:tool) {
Point.destroy_all
FactoryGirl.create(:tool,
FactoryBot.create(:tool,
tool_slot: tool_slot,
device: user.device) }

View File

@ -3,10 +3,10 @@ require 'spec_helper'
describe Api::ToolsController do
include Devise::Test::ControllerHelpers
describe '#index' do
let(:user) { FactoryGirl.create(:user) }
let(:tool_slot) { FactoryGirl.create(:tool_slot) }
let(:tools) { FactoryGirl.create_list(:tool, 1, tool_slot: tool_slot) }
let!(:tools) { FactoryGirl.create_list(:tool,
let(:user) { FactoryBot.create(:user) }
let(:tool_slot) { FactoryBot.create(:tool_slot) }
let(:tools) { FactoryBot.create_list(:tool, 1, tool_slot: tool_slot) }
let!(:tools) { FactoryBot.create_list(:tool,
1,
tool_slot: tool_slot,
device: user.device) }

View File

@ -3,9 +3,9 @@ require 'spec_helper'
describe Api::ToolsController do
include Devise::Test::ControllerHelpers
describe '#show' do
let(:user) { FactoryGirl.create(:user) }
let(:tool_slot) { FactoryGirl.create(:tool_slot) }
let(:tool) { FactoryGirl.create(:tool,
let(:user) { FactoryBot.create(:user) }
let(:tool_slot) { FactoryBot.create(:tool_slot) }
let(:tool) { FactoryBot.create(:tool,
tool_slot: tool_slot,
device: user.device) }

View File

@ -3,9 +3,9 @@ require 'spec_helper'
describe Api::ToolsController do
include Devise::Test::ControllerHelpers
describe '#update' do
let(:user) { FactoryGirl.create(:user) }
let(:tool_slot) { FactoryGirl.create(:tool_slot) }
let!(:tool) { FactoryGirl.create(:tool,
let(:user) { FactoryBot.create(:user) }
let(:tool_slot) { FactoryBot.create(:tool_slot) }
let!(:tool) { FactoryBot.create(:tool,
tool_slot: tool_slot,
device: user.device) }

View File

@ -10,7 +10,7 @@ BIG_WARNING = <<~HEREDOC
HEREDOC
describe Api::UsersController do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
include Devise::Test::ControllerHelpers
it 'errors if you try to delete with the wrong password' do
sign_in user

View File

@ -1,7 +1,7 @@
require 'spec_helper'
describe Api::UsersController do
let(:user) { FactoryGirl.create(:user, confirmed_at: nil) }
let(:user) { FactoryBot.create(:user, confirmed_at: nil) }
include Devise::Test::ControllerHelpers
it 'creates a new user' do

View File

@ -1,7 +1,7 @@
require 'spec_helper'
describe Api::WebcamFeedsController do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
include Devise::Test::ControllerHelpers
it 'creates a webcam feed' do

View File

@ -3,7 +3,7 @@ require 'spec_helper'
describe Api::WebcamFeedsController do
include Devise::Test::ControllerHelpers
describe '#destroy' do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
it 'destroy a webcam feed' do
sign_in user

View File

@ -1,7 +1,7 @@
require 'spec_helper'
describe Api::WebcamFeedsController do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
include Devise::Test::ControllerHelpers
it 'shows webcam feeds' do

View File

@ -1,7 +1,7 @@
require 'spec_helper'
describe Api::WebcamFeedsController do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
include Devise::Test::ControllerHelpers
it 'shows webcam feeds' do

View File

@ -1,7 +1,7 @@
require 'spec_helper'
describe Api::WebcamFeedsController do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
include Devise::Test::ControllerHelpers
it 'updates a webcam feed URL' do

View File

@ -1,7 +1,7 @@
# Read about factories at https://github.com/thoughtbot/factory_girl
# Read about factories at https://github.com/thoughtbot/factory_bot
require 'securerandom'
FactoryGirl.define do
FactoryBot.define do
factory :device do
name { Haikunator.haikunate(1000) }
webcam_url { Faker::Company.logo }

View File

@ -1,4 +1,4 @@
FactoryGirl.define do
FactoryBot.define do
factory :farm_event do
start_time { Date.yesterday - [*(1..5)].sample.days }
end_time { Date.today + 1.minute + ([*(1..5)].sample).days }

View File

@ -1,4 +1,4 @@
FactoryGirl.define do
FactoryBot.define do
factory :image do
attachment File.open("./spec/fixture.jpg")
meta ({x: 1, y: 2, z: 3})

View File

@ -1,4 +1,4 @@
FactoryGirl.define do
FactoryBot.define do
factory :log_dispatch do
device
log

View File

@ -1,4 +1,4 @@
FactoryGirl.define do
FactoryBot.define do
factory :log do
device
sequence(:created_at) { |n| n.minutes.ago.utc }

View File

@ -1,4 +1,4 @@
FactoryGirl.define do
FactoryBot.define do
factory :peripheral do
device
pin { rand(1..540) }

View File

@ -1,4 +1,4 @@
FactoryGirl.define do
FactoryBot.define do
factory :plant do
openfarm_slug "lettuce"
point

View File

@ -1,4 +1,4 @@
FactoryGirl.define do
FactoryBot.define do
factory :point do
radius 1.5
x { rand(1...550) }

View File

@ -1,4 +1,4 @@
FactoryGirl.define do
FactoryBot.define do
factory :regimen, :class => 'Regimen' do
name { Faker::Pokemon.name + Faker::Pokemon.name }
device

View File

@ -1,4 +1,4 @@
FactoryGirl.define do
FactoryBot.define do
factory :regimen_item do
regimen
after(:build) do |s|

View File

@ -1,4 +1,4 @@
FactoryGirl.define do
FactoryBot.define do
factory :sequence_dependency do
ref ""
sequence_id 1

View File

@ -1,6 +1,6 @@
# Read about factories at https://github.com/thoughtbot/factory_girl
# Read about factories at https://github.com/thoughtbot/factory_bot
FactoryGirl.define do
FactoryBot.define do
factory :sequence do
name { Faker::Company.catch_phrase }
color { Sequence::COLORS.sample }

View File

@ -1,4 +1,4 @@
FactoryGirl.define do
FactoryBot.define do
factory :token_expiration do
sub "MyString"
exp ""

View File

@ -1,4 +1,4 @@
FactoryGirl.define do
FactoryBot.define do
factory :tool_slot do
tool
end

View File

@ -1,4 +1,4 @@
FactoryGirl.define do
FactoryBot.define do
factory :tool do
device
name { Faker::Pokemon.name + Faker::Pokemon.name }

View File

@ -1,6 +1,6 @@
# Read about factories at https://github.com/thoughtbot/factory_girl
# Read about factories at https://github.com/thoughtbot/factory_bot
FactoryGirl.define do
FactoryBot.define do
factory :user do
device
name { Faker::Name.name }

View File

@ -1,4 +1,4 @@
FactoryGirl.define do
FactoryBot.define do
factory :webcam_feed do
device
url "http://placehold.it/320x240"

View File

@ -9,7 +9,7 @@ describe CeleryScript::Checker do
version: 0
},
comment: "Properly formatted, syntactically valid sequence.",
body: sequence_body_for(FactoryGirl.create(:sequence))
body: sequence_body_for(FactoryBot.create(:sequence))
}.deep_symbolize_keys
end

View File

@ -34,7 +34,7 @@ describe CeleryScript::Corpus do
args: {
location: {
kind: "tool",
args: { tool_id: FactoryGirl.create(:tool).id }
args: { tool_id: FactoryBot.create(:tool).id }
},
offset: {
kind: "coordinate",

View File

@ -1,7 +1,7 @@
require 'spec_helper'
describe "Celery Script `point` node" do
let(:plant) { FactoryGirl.create(:plant_point).pointer }
let(:plant) { FactoryBot.create(:plant_point).pointer }
let(:hash) do
{ kind: "sequence",
args: { version:4 },

View File

@ -1,7 +1,7 @@
require 'spec_helper'
describe SessionToken do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
FAKE_TOKEN = [
{ "sub" => "admin@admin.com",

View File

@ -1,8 +1,8 @@
require "spec_helper"
describe LogDeliveryMailer, type: :mailer do
let(:device) { FactoryGirl.create(:device) }
let!(:log_dispatches) { FactoryGirl.create(:log_dispatch, device: device) }
let(:device) { FactoryBot.create(:device) }
let!(:log_dispatches) { FactoryBot.create(:log_dispatch, device: device) }
it "throttles excess requests" do
LogDispatch.max_per_hour = -1 # Throttle it all

View File

@ -1,7 +1,7 @@
require 'spec_helper'
describe Device do
let(:device){ FactoryGirl.create(:device, users: [FactoryGirl.create(:user)])}
let(:device){ FactoryBot.create(:device, users: [FactoryBot.create(:user)])}
let(:user) { device.users.first }
it 'is associated with a user' do

View File

@ -1,7 +1,7 @@
require 'spec_helper'
describe Image do
let(:device) { FactoryGirl.create(:device) }
let(:device) { FactoryBot.create(:device) }
it 'adds URL attachments' do
image = Image.create(device: device)

View File

@ -1,8 +1,8 @@
require 'spec_helper'
describe Regimen do
let(:regimen) { FactoryGirl.create(:regimen) }
let(:regimen) { FactoryBot.create(:regimen) }
it "Enforces uniqueness of names" do
it "Enforces uniqueness of names" do
expect {Regimen.create!(name: regimen.name, device: regimen.device)}.to raise_error(ActiveRecord::RecordInvalid)
end

View File

@ -1,6 +1,6 @@
describe SequenceDependency do
let(:parent) { FactoryGirl.create(:sequence) }
let(:child1) { FactoryGirl.create(:sequence) }
let(:parent) { FactoryBot.create(:sequence) }
let(:child1) { FactoryBot.create(:sequence) }
let(:child2) do
Point.create!(x: 1,
y: 2,

View File

@ -1,6 +1,6 @@
require 'spec_helper'
describe Sequence do
let(:regimen) { FactoryGirl.create(:regimen) }
let(:regimen) { FactoryBot.create(:regimen) }
it "Enforces uniqueness of names" do
Sequence.destroy_all
@ -12,7 +12,7 @@ describe Sequence do
end
it "picks random values" do
FactoryGirl.create(:sequence)
FactoryBot.create(:sequence)
3.times { expect(Sequence.random).to be_kind_of(Sequence) }
end
end

View File

@ -1,7 +1,7 @@
describe Tool do
describe 'names' do
let(:tool) { FactoryGirl.create(:tool) }
let(:tool) { FactoryBot.create(:tool) }
it 'must be unique' do
tool2 = Tool.create(name: tool.name, device: tool.device)
expect(tool2.valid?).to be(false)

View File

@ -6,7 +6,7 @@ describe User do
end
describe 'SKIP_EMAIL_VALIDATION' do
let (:user) { FactoryGirl.create(:user, confirmed_at: nil) }
let (:user) { FactoryBot.create(:user, confirmed_at: nil) }
it 'considers al users verified when set to `true`' do
const_reassign(User, :SKIP_EMAIL_VALIDATION, true)

View File

@ -1,7 +1,7 @@
require 'spec_helper'
describe WebcamFeed do
let(:feed) { FactoryGirl.create(:webcam_feed) }
let(:feed) { FactoryBot.create(:webcam_feed) }
it "requires a URL" do
result = feed.update_attributes(url: nil)

View File

@ -1,7 +1,7 @@
require 'spec_helper'
describe Auth::FromJWT do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
def fake_credentials(email, password)
@ -20,7 +20,7 @@ describe Auth::FromJWT do
it 'accepts good credentials' do
pw = "password123"
user = FactoryGirl.create(:user, password: pw)
user = FactoryBot.create(:user, password: pw)
email = user.email
creds = fake_credentials(email, pw)
results = Auth::CreateTokenFromCredentials.run!(credentials: creds)

View File

@ -1,7 +1,7 @@
require "spec_helper"
describe Auth::FromJWT do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
let(:token) { SessionToken.issue_to(user).encoded }
fake = -> (sub) {
AbstractJwtToken.new([{ sub: sub,

View File

@ -1,7 +1,7 @@
require 'spec_helper'
describe Devices::Update do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
let(:device) { user.device }

View File

@ -1,7 +1,7 @@
require 'spec_helper'
describe FarmEvents::Create do
let(:seq) { FactoryGirl.create(:sequence) }
let(:seq) { FactoryBot.create(:sequence) }
it 'Builds a farm_event' do
device = seq.device
start_time = '2027-02-17T15:16:17.000Z'

View File

@ -2,8 +2,8 @@ require 'spec_helper'
describe Regimens::Create do
it 'Builds a regimen' do
seq1 = FactoryGirl.create(:sequence)
seq2 = FactoryGirl.create(:sequence, device: seq1.device)
seq1 = FactoryBot.create(:sequence)
seq2 = FactoryBot.create(:sequence, device: seq1.device)
device = seq1.device
optns = {
device: device,
@ -13,7 +13,7 @@ describe Regimens::Create do
{
time_offset: 129600000,
sequence_id: seq1.id
},
},
{
time_offset: 259200000,
sequence_id: seq2.id

View File

@ -1,7 +1,7 @@
require 'spec_helper'
describe Regimens::Update do
let(:sequence) { FactoryGirl.create(:sequence) }
let(:sequence) { FactoryBot.create(:sequence) }
let(:device) { sequence.device }
it 'updates an existing regimen' do
@ -32,4 +32,4 @@ describe Regimens::Update do
expect(result.color).to eq(new_reg_params[:color])
expect(result.regimen_items.count).to eq(new_reg_params[:regimen_items].count)
end
end
end

View File

@ -1,7 +1,7 @@
require 'spec_helper'
describe Sequences::Create do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
let(:device) { user.device }
let(:body) { sequence_body_for(user) }

View File

@ -1,11 +1,11 @@
require 'spec_helper'
describe Sequences::Delete do
let(:sequence) { FactoryGirl.create(:sequence) }
let(:sequence) { FactoryBot.create(:sequence) }
it 'refuses to delete a sequence that a regimen depends on' do
regimen_item1 = FactoryGirl.create(:regimen_item, sequence: sequence)
regimen_item2 = FactoryGirl.create(:regimen_item, sequence: sequence)
regimen_item1 = FactoryBot.create(:regimen_item, sequence: sequence)
regimen_item2 = FactoryBot.create(:regimen_item, sequence: sequence)
expect(sequence.regimen_items.count).to eq(2)
result = Sequences::Delete.run(device: sequence.device, sequence: sequence)
expect(result.success?).to be false
@ -22,7 +22,7 @@ describe Sequences::Delete do
end
it 'prevents deletion when the sequence is in use by another sequence' do
SequenceDependency.create!(sequence: FactoryGirl.create(:sequence),
SequenceDependency.create!(sequence: FactoryBot.create(:sequence),
dependency: sequence)
result = Sequences::Delete.run(device: sequence.device, sequence: sequence)
expect(result.success?).to be(false)

View File

@ -80,10 +80,10 @@ BODY2 = [
}
]
describe "Migration from version 0 or nil" do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
let(:device) { user.device }
let(:seq1) { FactoryGirl.create(:sequence, device: device, body: BODY1) }
let(:seq2) { FactoryGirl.create(:sequence, device: device, body: BODY2) }
let(:seq1) { FactoryBot.create(:sequence, device: device, body: BODY1) }
let(:seq2) { FactoryBot.create(:sequence, device: device, body: BODY2) }
it 'handles nodes without a body' do
# BEFORE:

View File

@ -23,9 +23,9 @@ BODY = [
]
describe "Migration from version 0 or nil" do
let(:user) { FactoryGirl.create(:user) }
let(:user) { FactoryBot.create(:user) }
let(:device) { user.device }
let(:seq) { FactoryGirl.create(:sequence, device: device, body: BODY) }
let(:seq) { FactoryBot.create(:sequence, device: device, body: BODY) }
it 'Updates `move_absolute` nodes' do
Sequences::Migrate.run!(device: device, sequence: seq)

View File

@ -9,7 +9,7 @@ describe Users::Update do
password_confirmation: "password12345",
agree_to_terms: true)
u = User.last
u2 = FactoryGirl.create(:user)
u2 = FactoryBot.create(:user)
Users::Update.run!(user: u, email: u.email)
result = Users::Update.run(user: u, email: u2.email)
expect(result.success?).to be(false)

View File

@ -2,10 +2,10 @@ require "spec_helper"
describe FarmEventSerializer do
let(:farm_event) do
fe = FactoryGirl.build(:farm_event, start_time: Time.now + 5.days)
fe.executable = FactoryGirl.build(:regimen, device: fe.device)
fe = FactoryBot.build(:farm_event, start_time: Time.now + 5.days)
fe.executable = FactoryBot.build(:regimen, device: fe.device)
fe.save!
FactoryGirl.create(:regimen_item, regimen: fe.executable,
FactoryBot.create(:regimen_item, regimen: fe.executable,
time_offset: 7000)
fe
end

View File

@ -32,8 +32,8 @@ module Helpers
else
raise "No #{mystery.class}"
end
sid = FactoryGirl.create(:sequence, device: device).id
tid = FactoryGirl.create(:tool, device: device).id
sid = FactoryBot.create(:sequence, device: device).id
tid = FactoryBot.create(:tool, device: device).id
str = AST_FIXTURE
.gsub(MAGIC_NUMBER_SEQ_ID, sid.to_s)
.gsub(MAGIC_NUMBER_TOOL_ID, tid.to_s)