135 lines
5.1 KiB
Ruby
135 lines
5.1 KiB
Ruby
|
|
if Rails.env == "development"
|
|
POINT_COUNT = 8
|
|
PLANT_COUNT = 8
|
|
DATE_RANGE_LO = 1..3
|
|
DATE_RANGE_HI = 3..8
|
|
ENV["MQTT_HOST"] = "blooper.io"
|
|
ENV["OS_UPDATE_SERVER"] = "http://example-server.com"
|
|
# CREDIT: Faker Ruby Gem
|
|
VEGGIES = %w(artichoke arugula asparagus broccoli cabbage carrot cauliflower
|
|
celery cucumber eggplant garlic kale kohlrabi leek lettuce okra
|
|
parsnip potato pumpkin radicchio radish raspberry spinach squash
|
|
tomato turnip zucchini)
|
|
|
|
[
|
|
Alert,
|
|
Sensor,
|
|
Peripheral,
|
|
Log,
|
|
PinBinding,
|
|
PointGroupItem,
|
|
PointGroup,
|
|
Point,
|
|
TokenIssuance,
|
|
ToolSlot,
|
|
User,
|
|
PlantTemplate,
|
|
SavedGarden,
|
|
SensorReading,
|
|
FarmwareInstallation,
|
|
Tool,
|
|
Delayed::Job,
|
|
Delayed::Backend::ActiveRecord::Job,
|
|
Fragment,
|
|
Device,
|
|
].map(&:delete_all)
|
|
Users::Create.run!(name: "Test",
|
|
email: "test@test.com",
|
|
password: "password123",
|
|
password_confirmation: "password123",
|
|
confirmed_at: Time.now,
|
|
agreed_to_terms_at: Time.now,
|
|
skip_email: true)
|
|
User.update_all(confirmed_at: Time.now,
|
|
agreed_to_terms_at: Time.now)
|
|
u = User.last
|
|
u.update(device: Devices::Create.run!(user: u))
|
|
# === Parameterized Sequence stuff
|
|
json = JSON.parse(File.read("spec/lib/celery_script/ast_fixture5.json"), symbolize_names: true)
|
|
Sequences::Create.run!(json, device: u.device)
|
|
# === Parameterized Sequence stuff
|
|
Log.transaction do
|
|
FactoryBot.create_list(:log, 35, device: u.device)
|
|
end
|
|
["https://via.placeholder.com/350x250?text=Image%20Zero",
|
|
"https://i.imgur.com/XvFBGA4.jpg",
|
|
"https://via.placeholder.com/350x250?text=Image%20Two",
|
|
"https://i.imgur.com/XsFczCY.jpg",
|
|
"https://via.placeholder.com/350x250?text=Image%20Four"].each do |url|
|
|
Images::Create.run!(attachment_url: url,
|
|
device: u.device,
|
|
meta: { x: rand(40...970),
|
|
y: rand(40...470),
|
|
z: rand(1...300) })
|
|
end
|
|
|
|
all_of_em = []
|
|
1.upto(8) do |n1|
|
|
1.upto(8) do |n2|
|
|
veggie = VEGGIES.sample
|
|
p = Plant.create(device: u.device,
|
|
x: n1 * 80,
|
|
y: n2 * 80,
|
|
radius: rand(20...70),
|
|
name: veggie,
|
|
openfarm_slug: veggie.downcase.gsub(" ", "-"))
|
|
all_of_em.push(p.id)
|
|
end
|
|
end
|
|
|
|
PointGroups::Create.run!(device: u.device,
|
|
name: "TEST GROUP I",
|
|
point_ids: all_of_em.sample(8),
|
|
sort_type: "random")
|
|
|
|
Device.all.map { |device| SavedGardens::Snapshot.run!(device: device) }
|
|
|
|
POINT_COUNT.times do
|
|
GenericPointer.create(device: u.device,
|
|
x: rand(40...970) + rand(40...970),
|
|
y: rand(40...470) + rand(40...470),
|
|
z: 5,
|
|
radius: (rand(1...150) + rand(1...150)) / 20,
|
|
meta: {
|
|
created_by: "plant-detection",
|
|
color: (Sequence::COLORS + [nil]).sample,
|
|
})
|
|
end
|
|
|
|
s = Sequences::Create.run!(device: u.device,
|
|
name: "Goto 0, 0, 0",
|
|
body: [{ kind: "move_absolute", args: { location: { kind: "coordinate", args: { x: 0,
|
|
y: 0, z: 0 } }, offset: { kind: "coordinate", args: { x: 0, y: 0, z: 0 } }, speed: 100 } }])
|
|
t = Tools::Create.run!(name: "Trench Digging Tool", device: u.device)
|
|
body_txt = File.read("spec/lib/celery_script/ast_fixture4.json")
|
|
.gsub("__SEQUENCE_ID__", s[:id].to_s)
|
|
.gsub("__TOOL_ID__", t.id.to_s)
|
|
Sequences::Create.run!(device: u.device,
|
|
name: "Every Node",
|
|
body: JSON.parse(body_txt))
|
|
Regimens::Create.run(device: u.device,
|
|
name: "Test Regimen 456",
|
|
color: "gray",
|
|
regimen_items: [
|
|
{ time_offset: 300000, sequence_id: s[:id] },
|
|
{ time_offset: 173100000, sequence_id: s[:id] },
|
|
{ time_offset: 345900000, sequence_id: s[:id] },
|
|
])
|
|
Peripherals::Create.run!(device: u.device, pin: 13, label: "LED")
|
|
WebcamFeeds::Create.run!(device: u.device,
|
|
name: "My Feed 1",
|
|
url: "https://nature.nps.gov/air/webcams/parks/yosecam/yose.jpg")
|
|
ts = Points::Create.run!(device: u.device,
|
|
tool_id: t.id,
|
|
name: "Slot One.",
|
|
x: 10,
|
|
y: 10,
|
|
z: 10,
|
|
pointer_type: "ToolSlot")
|
|
d = u.device
|
|
Sensors::Create
|
|
.run!(device: d, pin: 14, label: "Stub sensor", mode: 0)
|
|
User.update_all(confirmed_at: Time.now)
|
|
end
|