From 0d303ee6dfad49f98ee1bba42d3407579f9024d0 Mon Sep 17 00:00:00 2001 From: Brenda Wallace Date: Mon, 2 Apr 2018 10:25:41 +1200 Subject: [PATCH 1/3] Don't allow duplicate plant parts names Make factort's plant_part.name unique Setting plant_part.name in specs Unique names for plant parts --- app/models/plant_part.rb | 2 ++ spec/factories/harvests.rb | 2 +- spec/factories/plant_parts.rb | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/models/plant_part.rb b/app/models/plant_part.rb index e5045baa8..15a68d977 100644 --- a/app/models/plant_part.rb +++ b/app/models/plant_part.rb @@ -5,6 +5,8 @@ class PlantPart < ActiveRecord::Base has_many :harvests has_many :crops, -> { uniq }, through: :harvests + validates :name, presence: true, uniqueness: true + def to_s name end diff --git a/spec/factories/harvests.rb b/spec/factories/harvests.rb index ae3144a1e..e12fa973d 100644 --- a/spec/factories/harvests.rb +++ b/spec/factories/harvests.rb @@ -3,7 +3,7 @@ FactoryBot.define do factory :harvest do crop { planting.present? ? planting.crop : FactoryBot.create(:crop) } - plant_part + plant_part { create :plant_part, name: Faker::Book.unique.title } planting nil owner { planting.present? ? planting.owner : FactoryBot.create(:member) } harvested_at { Time.zone.local(2015, 9, 17) } diff --git a/spec/factories/plant_parts.rb b/spec/factories/plant_parts.rb index 695bf7542..69f627832 100644 --- a/spec/factories/plant_parts.rb +++ b/spec/factories/plant_parts.rb @@ -2,6 +2,6 @@ FactoryBot.define do factory :plant_part do - name "pollen" + name { Faker::Book.unique.title } end end From 47ddc915efc602f48c50f301ade6286681a6263c Mon Sep 17 00:00:00 2001 From: Brenda Wallace Date: Thu, 7 Jun 2018 11:44:29 +1200 Subject: [PATCH 2/3] Generate random number in plant_part.name in factorybot --- spec/factories/plant_parts.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/factories/plant_parts.rb b/spec/factories/plant_parts.rb index 69f627832..42a30afd6 100644 --- a/spec/factories/plant_parts.rb +++ b/spec/factories/plant_parts.rb @@ -2,6 +2,6 @@ FactoryBot.define do factory :plant_part do - name { Faker::Book.unique.title } + name { "#{Faker::Book.title}_#{rand(100..999)}" } end end From d7e71c8fc37be4893df78ea8b3e1756da7bad116 Mon Sep 17 00:00:00 2001 From: Brenda Wallace Date: Thu, 7 Jun 2018 11:46:29 +1200 Subject: [PATCH 3/3] Use factory bot to make a harvest.plant_part --- spec/factories/harvests.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/factories/harvests.rb b/spec/factories/harvests.rb index e12fa973d..7ed88375a 100644 --- a/spec/factories/harvests.rb +++ b/spec/factories/harvests.rb @@ -3,7 +3,7 @@ FactoryBot.define do factory :harvest do crop { planting.present? ? planting.crop : FactoryBot.create(:crop) } - plant_part { create :plant_part, name: Faker::Book.unique.title } + plant_part { FactoryBot.create :plant_part } planting nil owner { planting.present? ? planting.owner : FactoryBot.create(:member) } harvested_at { Time.zone.local(2015, 9, 17) }