mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-05-25 01:13:03 -04:00
Rubocop
This commit is contained in:
@@ -226,13 +226,6 @@ RSpec/ExpectInHook:
|
||||
- 'spec/features/plantings/planting_a_crop_spec.rb'
|
||||
- 'spec/features/shared_examples/append_date.rb'
|
||||
|
||||
# Offense count: 447
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: EnforcedStyle.
|
||||
# SupportedStyles: require_parentheses, omit_parentheses
|
||||
RSpec/FactoryBot/ConsistentParenthesesStyle:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 1135
|
||||
# This cop supports unsafe autocorrection (--autocorrect-all).
|
||||
RSpec/FactoryBot/SyntaxMethods:
|
||||
@@ -266,19 +259,6 @@ RSpec/HooksBeforeExamples:
|
||||
RSpec/InstanceVariable:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 9
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
RSpec/LeadingSubject:
|
||||
Exclude:
|
||||
- 'spec/controllers/crops_controller_spec.rb'
|
||||
- 'spec/features/crops/crop_detail_page_spec.rb'
|
||||
- 'spec/features/members/list_spec.rb'
|
||||
- 'spec/features/seeds/seed_photos.rb'
|
||||
- 'spec/helpers/event_helper_spec.rb'
|
||||
- 'spec/models/planting_spec.rb'
|
||||
- 'spec/models/seed_spec.rb'
|
||||
- 'spec/services/timeline_service_spec.rb'
|
||||
|
||||
# Offense count: 40
|
||||
RSpec/LetSetup:
|
||||
Enabled: false
|
||||
@@ -356,14 +336,6 @@ RSpec/RepeatedExampleGroupBody:
|
||||
Exclude:
|
||||
- 'spec/controllers/crops_controller_spec.rb'
|
||||
|
||||
# Offense count: 9
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
RSpec/ScatteredLet:
|
||||
Exclude:
|
||||
- 'spec/features/members/deletion_spec.rb'
|
||||
- 'spec/features/members/profile_spec.rb'
|
||||
- 'spec/views/photos/show.html.haml_spec.rb'
|
||||
|
||||
# Offense count: 6
|
||||
RSpec/ScatteredSetup:
|
||||
Exclude:
|
||||
|
||||
@@ -5,7 +5,7 @@ require 'rails_helper'
|
||||
RSpec.describe Api::V1::PlantingsController, type: :controller do
|
||||
subject { JSON.parse response.body }
|
||||
|
||||
let!(:member) { FactoryBot.create :member }
|
||||
let!(:member) { FactoryBot.create(:member) }
|
||||
|
||||
describe '#index' do
|
||||
let(:matching_planting) { subject['data'].select { |planting| planting['id'] == my_planting.id.to_s }.first }
|
||||
|
||||
@@ -4,7 +4,7 @@ require 'rails_helper'
|
||||
|
||||
describe Charts::CropsController do
|
||||
describe 'GET charts' do
|
||||
let(:crop) { FactoryBot.create :crop }
|
||||
let(:crop) { FactoryBot.create(:crop) }
|
||||
|
||||
describe 'sunniness' do
|
||||
before { get :sunniness, params: { crop_slug: crop.to_param } }
|
||||
|
||||
@@ -5,7 +5,7 @@ require 'rails_helper'
|
||||
describe Charts::GardensController do
|
||||
include Devise::Test::ControllerHelpers
|
||||
|
||||
let(:garden) { FactoryBot.create :garden }
|
||||
let(:garden) { FactoryBot.create(:garden) }
|
||||
|
||||
context "when not signed in" do
|
||||
describe 'GET timeline' do
|
||||
|
||||
@@ -18,8 +18,8 @@ describe CommentsController do
|
||||
end
|
||||
|
||||
describe "GET RSS feed" do
|
||||
let!(:first_comment) { FactoryBot.create :comment, created_at: 10.days.ago }
|
||||
let!(:last_comment) { FactoryBot.create :comment, created_at: 4.minutes.ago }
|
||||
let!(:first_comment) { FactoryBot.create(:comment, created_at: 10.days.ago) }
|
||||
let!(:last_comment) { FactoryBot.create(:comment, created_at: 4.minutes.ago) }
|
||||
|
||||
describe "returns an RSS feed" do
|
||||
before { get :index, format: "rss" }
|
||||
@@ -60,7 +60,7 @@ describe CommentsController do
|
||||
before { get :edit, params: { id: comment.to_param } }
|
||||
|
||||
describe "my comment" do
|
||||
let!(:comment) { FactoryBot.create :comment, author: member, post: }
|
||||
let!(:comment) { FactoryBot.create(:comment, author: member, post:) }
|
||||
let!(:old_comment) { FactoryBot.create(:comment, post:, created_at: Time.zone.yesterday) }
|
||||
|
||||
it "assigns previous comments as @comments" do
|
||||
@@ -69,7 +69,7 @@ describe CommentsController do
|
||||
end
|
||||
|
||||
describe "not my comment" do
|
||||
let(:comment) { FactoryBot.create :comment, post: }
|
||||
let(:comment) { FactoryBot.create(:comment, post:) }
|
||||
|
||||
it { expect(response).not_to be_successful }
|
||||
end
|
||||
@@ -79,7 +79,7 @@ describe CommentsController do
|
||||
before { put :update, params: { id: comment.to_param, comment: valid_attributes } }
|
||||
|
||||
describe "my comment" do
|
||||
let(:comment) { FactoryBot.create :comment, author: member }
|
||||
let(:comment) { FactoryBot.create(:comment, author: member) }
|
||||
|
||||
it "redirects to the comment's post" do
|
||||
expect(response).to redirect_to(comment.post)
|
||||
@@ -87,16 +87,16 @@ describe CommentsController do
|
||||
end
|
||||
|
||||
describe "not my comment" do
|
||||
let(:comment) { FactoryBot.create :comment }
|
||||
let(:comment) { FactoryBot.create(:comment) }
|
||||
|
||||
it { expect(response).not_to be_successful }
|
||||
end
|
||||
|
||||
describe "attempting to change post_id" do
|
||||
let(:post) { FactoryBot.create :post, subject: 'our post' }
|
||||
let(:other_post) { FactoryBot.create :post, subject: 'the other post' }
|
||||
let(:valid_attributes) { { post_id: other_post.id, body: "kōrero" } }
|
||||
let(:comment) { FactoryBot.create :comment, author: member, post: }
|
||||
let(:post) { FactoryBot.create(:post, subject: 'our post') }
|
||||
let(:other_post) { FactoryBot.create(:post, subject: 'the other post') }
|
||||
let(:valid_attributes) { { post_id: other_post.id, body: "kōrero" } }
|
||||
let(:comment) { FactoryBot.create(:comment, author: member, post:) }
|
||||
|
||||
it "does not change post_id" do
|
||||
comment.reload
|
||||
@@ -109,7 +109,7 @@ describe CommentsController do
|
||||
before { delete :destroy, params: { id: comment.to_param } }
|
||||
|
||||
describe "my comment" do
|
||||
let(:comment) { FactoryBot.create :comment, author: member }
|
||||
let(:comment) { FactoryBot.create(:comment, author: member) }
|
||||
|
||||
it "redirects to the post the comment was on" do
|
||||
expect(response).to redirect_to(comment.post)
|
||||
@@ -117,7 +117,7 @@ describe CommentsController do
|
||||
end
|
||||
|
||||
describe "not my comment" do
|
||||
let(:comment) { FactoryBot.create :comment }
|
||||
let(:comment) { FactoryBot.create(:comment) }
|
||||
|
||||
it { expect(response).not_to be_successful }
|
||||
end
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe CropsController do
|
||||
subject { response }
|
||||
|
||||
shared_context 'login as wrangler' do
|
||||
login_member(:crop_wrangling_member)
|
||||
end
|
||||
|
||||
subject { response }
|
||||
|
||||
describe "GET crop wrangler homepage" do
|
||||
describe 'fetches the crop wrangler homepage' do
|
||||
context 'anonymous' do
|
||||
@@ -42,8 +42,8 @@ describe CropsController do
|
||||
|
||||
describe "GET crop search" do
|
||||
describe 'fetches the crop search page' do
|
||||
let!(:tomato) { FactoryBot.create :tomato }
|
||||
let!(:maize) { FactoryBot.create :maize }
|
||||
let!(:tomato) { FactoryBot.create(:tomato) }
|
||||
let!(:maize) { FactoryBot.create(:maize) }
|
||||
|
||||
before { Crop.reindex }
|
||||
|
||||
@@ -74,6 +74,8 @@ describe CropsController do
|
||||
end
|
||||
|
||||
describe 'CREATE' do
|
||||
subject { put :create, params: crop_params }
|
||||
|
||||
let(:crop_params) do
|
||||
{
|
||||
crop: {
|
||||
@@ -85,8 +87,6 @@ describe CropsController do
|
||||
}
|
||||
end
|
||||
|
||||
subject { put :create, params: crop_params }
|
||||
|
||||
context 'not logged in' do
|
||||
it { expect { subject }.not_to change(Crop, :count) }
|
||||
end
|
||||
@@ -106,7 +106,7 @@ describe CropsController do
|
||||
describe 'DELETE destroy' do
|
||||
subject { delete :destroy, params: { slug: crop.to_param } }
|
||||
|
||||
let!(:crop) { FactoryBot.create :crop }
|
||||
let!(:crop) { FactoryBot.create(:crop) }
|
||||
|
||||
context 'not logged in' do
|
||||
it { expect { subject }.not_to change(Crop, :count) }
|
||||
|
||||
@@ -5,7 +5,7 @@ require 'rails_helper'
|
||||
RSpec.describe GardenTypesController, type: :controller do
|
||||
include Devise::Test::ControllerHelpers
|
||||
let(:valid_params) { { name: 'My second GardenType' } }
|
||||
let(:garden_type) { FactoryBot.create :garden_type }
|
||||
let(:garden_type) { FactoryBot.create(:garden_type) }
|
||||
|
||||
context "when not signed in" do
|
||||
describe 'GET new' do
|
||||
|
||||
@@ -6,7 +6,7 @@ RSpec.describe GardensController, type: :controller do
|
||||
include Devise::Test::ControllerHelpers
|
||||
let(:valid_params) { { name: 'My second Garden' } }
|
||||
|
||||
let(:garden) { FactoryBot.create :garden }
|
||||
let(:garden) { FactoryBot.create(:garden) }
|
||||
|
||||
context "when not signed in" do
|
||||
describe 'GET new' do
|
||||
|
||||
@@ -153,7 +153,7 @@ describe HarvestsController, :search do
|
||||
let(:harvest) { Harvest.create! valid_attributes }
|
||||
|
||||
it "updates the requested harvest" do
|
||||
new_crop = FactoryBot.create :crop
|
||||
new_crop = FactoryBot.create(:crop)
|
||||
expect do
|
||||
put :update, params: { slug: harvest.to_param, harvest: { crop_id: new_crop.id } }
|
||||
harvest.reload
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe LikesController do
|
||||
let(:like) { FactoryBot.create :like, member: }
|
||||
let(:like) { FactoryBot.create(:like, member:) }
|
||||
let(:member) { FactoryBot.create(:member) }
|
||||
let(:blogpost) { FactoryBot.create(:post) }
|
||||
|
||||
@@ -37,7 +37,7 @@ describe LikesController do
|
||||
end
|
||||
|
||||
describe "Deleting someone else's like" do
|
||||
let(:like) { FactoryBot.create :like }
|
||||
let(:like) { FactoryBot.create(:like) }
|
||||
|
||||
it { expect(response.code).to eq('403') }
|
||||
it { JSON.parse(response.body)["error"] == "Unable to like" }
|
||||
|
||||
@@ -17,8 +17,8 @@ describe PhotoAssociationsController do
|
||||
before { photo.harvests << harvest }
|
||||
|
||||
describe "my harvest my photo" do
|
||||
let(:harvest) { FactoryBot.create :harvest, owner: member }
|
||||
let(:photo) { FactoryBot.create :photo, owner: member }
|
||||
let(:harvest) { FactoryBot.create(:harvest, owner: member) }
|
||||
let(:photo) { FactoryBot.create(:photo, owner: member) }
|
||||
|
||||
it "removes link" do
|
||||
expect { delete :destroy, params: valid_params }.to change { photo.harvests.count }.by(-1)
|
||||
@@ -26,8 +26,8 @@ describe PhotoAssociationsController do
|
||||
end
|
||||
|
||||
describe "another member's harvest from another member's photo" do
|
||||
let(:harvest) { FactoryBot.create :harvest, owner: photo.owner }
|
||||
let(:photo) { FactoryBot.create :photo }
|
||||
let(:harvest) { FactoryBot.create(:harvest, owner: photo.owner) }
|
||||
let(:photo) { FactoryBot.create(:photo) }
|
||||
|
||||
it do
|
||||
expect do
|
||||
|
||||
@@ -7,7 +7,7 @@ describe PhotosController, :search do
|
||||
|
||||
describe 'GET index' do
|
||||
describe 'all photos' do
|
||||
let!(:photo) { FactoryBot.create :photo, :reindex }
|
||||
let!(:photo) { FactoryBot.create(:photo, :reindex) }
|
||||
|
||||
before do
|
||||
Photo.reindex
|
||||
@@ -21,10 +21,10 @@ describe PhotosController, :search do
|
||||
end
|
||||
|
||||
describe '#index crop photos' do
|
||||
let!(:photo) { FactoryBot.create :photo, :reindex, owner: member, title: 'no assocations photo' }
|
||||
let!(:crop_photo) { FactoryBot.create :photo, :reindex, owner: member, title: 'photos of planting' }
|
||||
let!(:planting) { FactoryBot.create :planting, :reindex, crop:, owner: member }
|
||||
let!(:crop) { FactoryBot.create :crop, :reindex }
|
||||
let!(:photo) { FactoryBot.create(:photo, :reindex, owner: member, title: 'no assocations photo') }
|
||||
let!(:crop_photo) { FactoryBot.create(:photo, :reindex, owner: member, title: 'photos of planting') }
|
||||
let!(:planting) { FactoryBot.create(:planting, :reindex, crop:, owner: member) }
|
||||
let!(:crop) { FactoryBot.create(:crop, :reindex) }
|
||||
|
||||
before do
|
||||
planting.photos << crop_photo
|
||||
@@ -163,7 +163,7 @@ describe PhotosController, :search do
|
||||
end
|
||||
|
||||
describe "for the second time" do
|
||||
let(:planting) { FactoryBot.create :planting, owner: member }
|
||||
let(:planting) { FactoryBot.create(:planting, owner: member) }
|
||||
let(:valid_params) { { photo: { source_id: 1 }, id: planting.id, type: 'planting' } }
|
||||
|
||||
it "does not add a photo twice" do
|
||||
|
||||
@@ -17,8 +17,8 @@ describe PlantingsController, :search do
|
||||
let!(:member2) { FactoryBot.create(:member) }
|
||||
let!(:tomato) { FactoryBot.create(:tomato) }
|
||||
let!(:maize) { FactoryBot.create(:maize) }
|
||||
let!(:planting1) { FactoryBot.create :planting, crop: tomato, owner: member1, created_at: 1.day.ago }
|
||||
let!(:planting2) { FactoryBot.create :planting, crop: maize, owner: member2, created_at: 5.days.ago }
|
||||
let!(:planting1) { FactoryBot.create(:planting, crop: tomato, owner: member1, created_at: 1.day.ago) }
|
||||
let!(:planting2) { FactoryBot.create(:planting, crop: maize, owner: member2, created_at: 5.days.ago) }
|
||||
|
||||
before do
|
||||
Planting.reindex
|
||||
@@ -111,7 +111,7 @@ describe PlantingsController, :search do
|
||||
end
|
||||
|
||||
context 'with parent seed' do
|
||||
let(:seed) { FactoryBot.create :seed, owner: member }
|
||||
let(:seed) { FactoryBot.create(:seed, owner: member) }
|
||||
|
||||
before { get :new, params: { seed_id: seed.to_param } }
|
||||
|
||||
@@ -128,8 +128,8 @@ describe PlantingsController, :search do
|
||||
end
|
||||
|
||||
describe 'GET :edit' do
|
||||
let(:my_planting) { FactoryBot.create :planting, owner: member }
|
||||
let(:not_my_planting) { FactoryBot.create :planting }
|
||||
let(:my_planting) { FactoryBot.create(:planting, owner: member) }
|
||||
let(:not_my_planting) { FactoryBot.create(:planting) }
|
||||
|
||||
context 'my planting' do
|
||||
before { get :edit, params: { slug: my_planting } }
|
||||
|
||||
@@ -12,8 +12,8 @@ describe PostsController do
|
||||
|
||||
describe '#index' do
|
||||
before do
|
||||
FactoryBot.create_list :post, 100
|
||||
FactoryBot.create_list :post, 5, author: member
|
||||
FactoryBot.create_list(:post, 100)
|
||||
FactoryBot.create_list(:post, 5, author: member)
|
||||
end
|
||||
|
||||
describe "everyone's posts" do
|
||||
|
||||
@@ -26,7 +26,7 @@ describe SeedsController, :search do
|
||||
end
|
||||
|
||||
context 'with parent planting' do
|
||||
let!(:planting) { FactoryBot.create :planting, owner: }
|
||||
let!(:planting) { FactoryBot.create(:planting, owner:) }
|
||||
|
||||
before do
|
||||
Seed.reindex
|
||||
|
||||
@@ -55,7 +55,7 @@ FactoryBot.define do
|
||||
|
||||
factory :crop_with_photo do
|
||||
name { 'marshmallow' }
|
||||
photos { FactoryBot.create_list :photo, 1 }
|
||||
photos { FactoryBot.create_list(:photo, 1) }
|
||||
end
|
||||
|
||||
# This should have a name that is alphabetically earlier than :uppercase
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
FactoryBot.define do
|
||||
factory :harvest do
|
||||
crop { planting.present? ? planting.crop : FactoryBot.create(:crop) }
|
||||
plant_part { FactoryBot.create :plant_part }
|
||||
plant_part { FactoryBot.create(:plant_part) }
|
||||
planting { nil }
|
||||
owner { planting.present? ? planting.owner : FactoryBot.create(:member) }
|
||||
harvested_at { Time.zone.local(2015, 9, 17) }
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
|
||||
FactoryBot.define do
|
||||
factory :notification, aliases: [:message] do
|
||||
sender { FactoryBot.create :member }
|
||||
recipient { FactoryBot.create :member }
|
||||
sender { FactoryBot.create(:member) }
|
||||
recipient { FactoryBot.create(:member) }
|
||||
subject { "MyString" }
|
||||
|
||||
body { "MyText" }
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
FactoryBot.define do
|
||||
factory :planting do
|
||||
owner
|
||||
garden { FactoryBot.create :garden, owner: }
|
||||
garden { FactoryBot.create(:garden, owner:) }
|
||||
crop
|
||||
planted_at { Time.zone.local(2014, 7, 30) }
|
||||
quantity { 33 }
|
||||
@@ -42,21 +42,21 @@ FactoryBot.define do
|
||||
end
|
||||
|
||||
factory :annual_planting do
|
||||
crop { FactoryBot.create :annual_crop }
|
||||
crop { FactoryBot.create(:annual_crop) }
|
||||
end
|
||||
|
||||
factory :perennial_planting do
|
||||
crop { FactoryBot.create :perennial_crop }
|
||||
crop { FactoryBot.create(:perennial_crop) }
|
||||
end
|
||||
|
||||
factory :predicatable_planting do
|
||||
crop do
|
||||
crop = FactoryBot.create :annual_crop
|
||||
FactoryBot.create :planting, crop: crop, planted_at: 10.days.ago
|
||||
FactoryBot.create :planting, crop: crop, planted_at: 100.days.ago, finished_at: 50.days.ago
|
||||
FactoryBot.create :planting, crop: crop, planted_at: 100.days.ago, finished_at: 51.days.ago
|
||||
FactoryBot.create :planting, crop: crop, planted_at: 2.years.ago, finished_at: 50.days.ago
|
||||
FactoryBot.create :planting, crop: crop, planted_at: 150.days.ago, finished_at: 100.days.ago
|
||||
crop = FactoryBot.create(:annual_crop)
|
||||
FactoryBot.create(:planting, crop:, planted_at: 10.days.ago)
|
||||
FactoryBot.create(:planting, crop:, planted_at: 100.days.ago, finished_at: 50.days.ago)
|
||||
FactoryBot.create(:planting, crop:, planted_at: 100.days.ago, finished_at: 51.days.ago)
|
||||
FactoryBot.create(:planting, crop:, planted_at: 2.years.ago, finished_at: 50.days.ago)
|
||||
FactoryBot.create(:planting, crop:, planted_at: 150.days.ago, finished_at: 100.days.ago)
|
||||
crop.update_lifespan_medians
|
||||
crop
|
||||
end
|
||||
|
||||
@@ -4,7 +4,7 @@ require 'rails_helper'
|
||||
|
||||
describe "forums", js: true do
|
||||
include_context 'signed in admin'
|
||||
let(:forum) { create :forum }
|
||||
let(:forum) { create(:forum) }
|
||||
|
||||
describe "navigating to forum admin with js" do
|
||||
before do
|
||||
|
||||
@@ -4,8 +4,8 @@ require 'rails_helper'
|
||||
|
||||
describe 'Commenting on a post' do
|
||||
include_context 'signed in member'
|
||||
let(:member) { create :member }
|
||||
let(:post) { create :post, author: member }
|
||||
let(:member) { create(:member) }
|
||||
let(:post) { create(:post, author: member) }
|
||||
|
||||
before { visit new_comment_path post_id: post.id }
|
||||
|
||||
@@ -18,7 +18,7 @@ describe 'Commenting on a post' do
|
||||
end
|
||||
|
||||
context "editing a comment" do
|
||||
let(:existing_comment) { create :comment, post:, author: member }
|
||||
let(:existing_comment) { create(:comment, post:, author: member) }
|
||||
|
||||
before do
|
||||
visit edit_comment_path existing_comment
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe "Conversations", :js do
|
||||
let(:sender) { create :member }
|
||||
let(:recipient) { create :member, login_name: 'beyonce' }
|
||||
let(:sender) { create(:member) }
|
||||
let(:recipient) { create(:member, login_name: 'beyonce') }
|
||||
|
||||
before do
|
||||
sender.send_message(recipient, "this is the body", "something i want to say")
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe "Conversations", :js do
|
||||
let(:sender) { create :member }
|
||||
let(:recipient) { create :member, login_name: 'beyonce' }
|
||||
let(:sender) { create(:member) }
|
||||
let(:recipient) { create(:member, login_name: 'beyonce') }
|
||||
|
||||
before do
|
||||
sender.send_message(recipient, "this is the body", "something i want to say")
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe "Alternate names", js: true do
|
||||
let!(:alternate_eggplant) { create :alternate_eggplant }
|
||||
let(:crop) { alternate_eggplant.crop }
|
||||
let!(:alternate_eggplant) { create(:alternate_eggplant) }
|
||||
let(:crop) { alternate_eggplant.crop }
|
||||
|
||||
shared_examples 'show alt names' do
|
||||
it "can see alternate names on crop page" do
|
||||
@@ -20,7 +20,7 @@ describe "Alternate names", js: true do
|
||||
end
|
||||
|
||||
shared_examples 'edit alt names' do
|
||||
let!(:crop_wranglers) { create_list :crop_wrangling_member, 3 }
|
||||
let!(:crop_wranglers) { create_list(:crop_wrangling_member, 3) }
|
||||
|
||||
it "can edit alternate names" do
|
||||
visit crop_path(crop)
|
||||
@@ -71,8 +71,8 @@ describe "Alternate names", js: true do
|
||||
end
|
||||
|
||||
context "When alternate name is rejected" do
|
||||
let(:rejected_crop) { create :rejected_crop }
|
||||
let(:pending_alt_name) { create :alternate_name, crop: rejected_crop }
|
||||
let(:rejected_crop) { create(:rejected_crop) }
|
||||
let(:pending_alt_name) { create(:alternate_name, crop: rejected_crop) }
|
||||
|
||||
it "Displays crop rejection message" do
|
||||
visit alternate_name_path(pending_alt_name)
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe "browse crops", :search do
|
||||
let!(:tomato) { FactoryBot.create :tomato, :reindex }
|
||||
let!(:maize) { FactoryBot.create :maize, :reindex }
|
||||
let!(:pending_crop) { FactoryBot.create :crop_request, :reindex }
|
||||
let!(:rejected_crop) { FactoryBot.create :rejected_crop, :reindex }
|
||||
let!(:tomato) { FactoryBot.create(:tomato, :reindex) }
|
||||
let!(:maize) { FactoryBot.create(:maize, :reindex) }
|
||||
let!(:pending_crop) { FactoryBot.create(:crop_request, :reindex) }
|
||||
let!(:rejected_crop) { FactoryBot.create(:rejected_crop, :reindex) }
|
||||
|
||||
shared_examples 'shows crops' do
|
||||
before do
|
||||
|
||||
@@ -3,10 +3,6 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe "crop detail page", js: true do
|
||||
before do
|
||||
FactoryBot.create :plant_part, name: 'leaf'
|
||||
end
|
||||
|
||||
subject do
|
||||
# Update the medians after all the
|
||||
# data has been loaded
|
||||
@@ -17,7 +13,11 @@ describe "crop detail page", js: true do
|
||||
page
|
||||
end
|
||||
|
||||
let(:crop) { create :crop }
|
||||
before do
|
||||
FactoryBot.create(:plant_part, name: 'leaf')
|
||||
end
|
||||
|
||||
let(:crop) { create(:crop) }
|
||||
|
||||
context "varieties" do
|
||||
it "The crop DOES NOT have varieties" do
|
||||
@@ -88,7 +88,7 @@ describe "crop detail page", js: true do
|
||||
end
|
||||
|
||||
context "seed quantity for a crop" do
|
||||
let(:seed) { create :seed, crop:, quantity: 20 }
|
||||
let(:seed) { create(:seed, crop:, quantity: 20) }
|
||||
|
||||
it "User not signed in" do
|
||||
visit crop_path(seed.crop)
|
||||
@@ -159,7 +159,7 @@ describe "crop detail page", js: true do
|
||||
end
|
||||
|
||||
context 'crop is Perennial' do
|
||||
let(:crop) { FactoryBot.create :perennial_crop }
|
||||
let(:crop) { FactoryBot.create(:perennial_crop) }
|
||||
|
||||
describe 'with no harvests' do
|
||||
end
|
||||
@@ -175,7 +175,7 @@ describe "crop detail page", js: true do
|
||||
end
|
||||
|
||||
context 'crop Perennial value is null' do
|
||||
let(:crop) { FactoryBot.create :crop, perennial: nil }
|
||||
let(:crop) { FactoryBot.create(:crop, perennial: nil) }
|
||||
|
||||
describe 'with no harvests' do
|
||||
end
|
||||
@@ -190,7 +190,7 @@ describe "crop detail page", js: true do
|
||||
before { visit crop_path(crop) }
|
||||
|
||||
context 'crop is an Annual' do
|
||||
let(:crop) { FactoryBot.create :annual_crop }
|
||||
let(:crop) { FactoryBot.create(:annual_crop) }
|
||||
|
||||
it { expect(page).to have_text 'Annual' }
|
||||
it { expect(page).to have_text 'living and reproducing in a single year or less' }
|
||||
@@ -198,7 +198,7 @@ describe "crop detail page", js: true do
|
||||
end
|
||||
|
||||
context 'crop is Perennial' do
|
||||
let(:crop) { FactoryBot.create :perennial_crop }
|
||||
let(:crop) { FactoryBot.create(:perennial_crop) }
|
||||
|
||||
it { expect(page).to have_text 'Perennial' }
|
||||
it { expect(page).to have_text 'living more than two years' }
|
||||
@@ -206,7 +206,7 @@ describe "crop detail page", js: true do
|
||||
end
|
||||
|
||||
context 'crop Perennial value is null' do
|
||||
let(:crop) { FactoryBot.create :crop, perennial: nil }
|
||||
let(:crop) { FactoryBot.create(:crop, perennial: nil) }
|
||||
|
||||
it { expect(page).not_to have_text 'Perennial' }
|
||||
it { expect(page).not_to have_text 'Annual' }
|
||||
|
||||
@@ -5,15 +5,15 @@ require 'rails_helper'
|
||||
describe "crop detail page", :js, :search do
|
||||
subject { page }
|
||||
|
||||
let!(:owner_member) { FactoryBot.create :member }
|
||||
let!(:owner_member) { FactoryBot.create(:member) }
|
||||
|
||||
let!(:crop) { FactoryBot.create :crop, :reindex }
|
||||
let!(:crop) { FactoryBot.create(:crop, :reindex) }
|
||||
|
||||
let(:plant_part) { FactoryBot.create :plant_part, name: 'fruit' }
|
||||
let(:plant_part) { FactoryBot.create(:plant_part, name: 'fruit') }
|
||||
|
||||
let!(:harvest) { FactoryBot.create :harvest, crop:, owner: owner_member, plant_part: }
|
||||
let!(:planting) { FactoryBot.create :planting, crop:, owner: owner_member }
|
||||
let!(:seed) { FactoryBot.create :seed, crop:, owner: owner_member }
|
||||
let!(:harvest) { FactoryBot.create(:harvest, crop:, owner: owner_member, plant_part:) }
|
||||
let!(:planting) { FactoryBot.create(:planting, crop:, owner: owner_member) }
|
||||
let!(:seed) { FactoryBot.create(:seed, crop:, owner: owner_member) }
|
||||
|
||||
let!(:photo1) { FactoryBot.create(:photo, owner: owner_member) }
|
||||
let!(:photo2) { FactoryBot.create(:photo, owner: owner_member) }
|
||||
|
||||
@@ -5,10 +5,10 @@ require 'rails_helper'
|
||||
describe "crop wranglers", js: true do
|
||||
context "signed in wrangler" do
|
||||
include_context 'signed in crop wrangler'
|
||||
let!(:crop_wranglers) { create_list :crop_wrangling_member, 3 }
|
||||
let!(:crops) { create_list :crop, 2 }
|
||||
let!(:requested_crop) { create :crop_request }
|
||||
let!(:rejected_crop) { create :rejected_crop }
|
||||
let!(:crop_wranglers) { create_list(:crop_wrangling_member, 3) }
|
||||
let!(:crops) { create_list(:crop, 2) }
|
||||
let!(:requested_crop) { create(:crop_request) }
|
||||
let!(:rejected_crop) { create(:rejected_crop) }
|
||||
|
||||
it "sees crop wranglers listed on the crop wrangler page" do
|
||||
visit root_path
|
||||
@@ -71,7 +71,7 @@ end
|
||||
|
||||
context "signed in non-wrangler" do
|
||||
include_context 'signed in member'
|
||||
let!(:crop_wranglers) { create_list :crop_wrangling_member, 3 }
|
||||
let!(:crop_wranglers) { create_list(:crop_wrangling_member, 3) }
|
||||
|
||||
it "can't see wrangling page without js", js: false do
|
||||
visit root_path
|
||||
|
||||
@@ -4,8 +4,8 @@ require 'rails_helper'
|
||||
|
||||
describe "Delete crop spec" do
|
||||
shared_examples 'delete crop' do
|
||||
let!(:pending_crop) { FactoryBot.create :crop_request }
|
||||
let!(:approved_crop) { FactoryBot.create :crop }
|
||||
let!(:pending_crop) { FactoryBot.create(:crop_request) }
|
||||
let!(:approved_crop) { FactoryBot.create(:crop) }
|
||||
it "deletes approved crop" do
|
||||
visit crop_path(approved_crop)
|
||||
click_link 'Actions'
|
||||
|
||||
@@ -17,8 +17,8 @@ describe "Requesting a new crop" do
|
||||
|
||||
context "As a crop wrangler" do
|
||||
include_context 'signed in crop wrangler'
|
||||
let!(:crop) { create :crop_request }
|
||||
let!(:already_approved) { create :crop }
|
||||
let!(:crop) { create(:crop_request) }
|
||||
let!(:already_approved) { create(:crop) }
|
||||
|
||||
it "Approve a request" do
|
||||
visit edit_crop_path(crop)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe "Requesting Crops" do
|
||||
let!(:requested_crop) { create :crop, requester: member, approval_status: 'pending', name: 'puha for dinner' }
|
||||
let!(:requested_crop) { create(:crop, requester: member, approval_status: 'pending', name: 'puha for dinner') }
|
||||
|
||||
context 'signed in' do
|
||||
include_context 'signed in member'
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe "Scientific names", js: true do
|
||||
let!(:zea_mays) { create :zea_mays }
|
||||
let(:crop) { zea_mays.crop }
|
||||
let!(:zea_mays) { create(:zea_mays) }
|
||||
let(:crop) { zea_mays.crop }
|
||||
|
||||
it "Display scientific names on crop page" do
|
||||
visit crop_path(zea_mays.crop)
|
||||
@@ -19,7 +19,7 @@ describe "Scientific names", js: true do
|
||||
end
|
||||
|
||||
context "User is a crop wrangler" do
|
||||
let!(:crop_wranglers) { create_list :crop_wrangling_member, 3 }
|
||||
let!(:crop_wranglers) { create_list(:crop_wrangling_member, 3) }
|
||||
|
||||
include_context 'signed in crop wrangler'
|
||||
it "Crop wranglers can edit scientific names" do
|
||||
@@ -75,8 +75,8 @@ describe "Scientific names", js: true do
|
||||
end
|
||||
|
||||
context "When scientific name is pending" do
|
||||
let(:pending_crop) { create :crop_request }
|
||||
let(:pending_sci_name) { create :scientific_name, crop: pending_crop }
|
||||
let(:pending_crop) { create(:crop_request) }
|
||||
let(:pending_sci_name) { create(:scientific_name, crop: pending_crop) }
|
||||
|
||||
it "Displays crop pending message" do
|
||||
visit scientific_name_path(pending_sci_name)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe "browse crops" do
|
||||
let(:tomato) { FactoryBot.create :tomato }
|
||||
let(:tomato) { FactoryBot.create(:tomato) }
|
||||
|
||||
it "Show crop info" do
|
||||
visit crop_path(tomato)
|
||||
@@ -11,9 +11,9 @@ describe "browse crops" do
|
||||
end
|
||||
|
||||
describe "shows varieties" do
|
||||
let!(:cherry) { FactoryBot.create :crop, name: 'cherry tomato', parent: tomato }
|
||||
let!(:heirloom) { FactoryBot.create :crop, name: 'heirloom tomato', parent: tomato }
|
||||
let!(:striped) { FactoryBot.create :crop, name: 'striped tomato', parent: heirloom }
|
||||
let!(:cherry) { FactoryBot.create(:crop, name: 'cherry tomato', parent: tomato) }
|
||||
let!(:heirloom) { FactoryBot.create(:crop, name: 'heirloom tomato', parent: tomato) }
|
||||
let!(:striped) { FactoryBot.create(:crop, name: 'striped tomato', parent: heirloom) }
|
||||
|
||||
before { visit crop_path(tomato) }
|
||||
|
||||
@@ -23,10 +23,10 @@ describe "browse crops" do
|
||||
end
|
||||
|
||||
context "when the most recently created harvest is not the most recently harvested" do
|
||||
before { FactoryBot.create_list :harvest, 20, crop: tomato, harvested_at: 1.year.ago, created_at: 1.minute.ago }
|
||||
before { FactoryBot.create_list(:harvest, 20, crop: tomato, harvested_at: 1.year.ago, created_at: 1.minute.ago) }
|
||||
|
||||
let!(:most_recent_harvest) do
|
||||
FactoryBot.create :harvest, crop: tomato, harvested_at: 60.minutes.ago, created_at: 10.minutes.ago
|
||||
FactoryBot.create(:harvest, crop: tomato, harvested_at: 60.minutes.ago, created_at: 10.minutes.ago)
|
||||
end
|
||||
|
||||
it "Shows most recently harvested harvest" do
|
||||
@@ -36,10 +36,10 @@ describe "browse crops" do
|
||||
end
|
||||
|
||||
context "when the most recently created planting is not the most recently planted" do
|
||||
before { FactoryBot.create_list :planting, 20, crop: tomato, planted_at: 1.year.ago, created_at: 1.minute.ago }
|
||||
before { FactoryBot.create_list(:planting, 20, crop: tomato, planted_at: 1.year.ago, created_at: 1.minute.ago) }
|
||||
|
||||
let!(:most_recent_planting) do
|
||||
FactoryBot.create :planting, crop: tomato, planted_at: 60.minutes.ago, created_at: 10.minutes.ago
|
||||
FactoryBot.create(:planting, crop: tomato, planted_at: 60.minutes.ago, created_at: 10.minutes.ago)
|
||||
end
|
||||
|
||||
it "Shows most recently planted planting" do
|
||||
|
||||
@@ -9,7 +9,7 @@ describe "Gardens" do
|
||||
|
||||
include_context 'signed in member'
|
||||
let(:garden) { member.gardens.first }
|
||||
let(:other_member_garden) { FactoryBot.create :garden }
|
||||
let(:other_member_garden) { FactoryBot.create(:garden) }
|
||||
|
||||
describe '#index' do
|
||||
shared_examples "has buttons bar at top" do
|
||||
|
||||
@@ -6,10 +6,10 @@ describe "Planting a crop", js: true do
|
||||
context 'signed in' do
|
||||
include_context 'signed in member'
|
||||
# name is aaa to ensure it is ordered first
|
||||
let!(:garden) { create :garden, name: 'aaa', owner: member }
|
||||
let!(:planting) { create :planting, garden:, owner: garden.owner, planted_at: Date.parse("2013-3-10") }
|
||||
let!(:tomato) { create :tomato }
|
||||
let!(:finished_planting) { create :finished_planting, owner: garden.owner, garden:, crop: tomato }
|
||||
let!(:garden) { create(:garden, name: 'aaa', owner: member) }
|
||||
let!(:planting) { create(:planting, garden:, owner: garden.owner, planted_at: Date.parse("2013-3-10")) }
|
||||
let!(:tomato) { create(:tomato) }
|
||||
let!(:finished_planting) { create(:finished_planting, owner: garden.owner, garden:, crop: tomato) }
|
||||
|
||||
it "View gardens" do
|
||||
visit gardens_path
|
||||
@@ -74,8 +74,8 @@ describe "Planting a crop", js: true do
|
||||
end
|
||||
|
||||
context 'When a garden has a garden type' do
|
||||
let(:garden_type) { create :garden_type }
|
||||
let(:garden_with_type) { create :garden, garden_type: }
|
||||
let(:garden_type) { create(:garden_type) }
|
||||
let(:garden_with_type) { create(:garden, garden_type:) }
|
||||
|
||||
it "Shows a garden type for a garden" do
|
||||
visit garden_path(garden_with_type)
|
||||
|
||||
@@ -6,11 +6,11 @@ require 'custom_matchers'
|
||||
describe "Gardens#index", :js do
|
||||
context "Logged in as member" do
|
||||
include_context 'signed in member'
|
||||
let(:member) { FactoryBot.create :member, login_name: 'shadow' }
|
||||
let(:member) { FactoryBot.create(:member, login_name: 'shadow') }
|
||||
|
||||
context "with 10 gardens" do
|
||||
before do
|
||||
FactoryBot.create_list :garden, 10, owner: member
|
||||
FactoryBot.create_list(:garden, 10, owner: member)
|
||||
visit member_gardens_path(member_slug: member.slug)
|
||||
end
|
||||
|
||||
@@ -28,8 +28,8 @@ describe "Gardens#index", :js do
|
||||
end
|
||||
|
||||
context "with inactive gardens" do
|
||||
let!(:active_garden) { FactoryBot.create :garden, name: "My active garden", owner: member }
|
||||
let!(:inactive_garden) { FactoryBot.create :inactive_garden, name: "retired garden", owner: member }
|
||||
let!(:active_garden) { FactoryBot.create(:garden, name: "My active garden", owner: member) }
|
||||
let!(:inactive_garden) { FactoryBot.create(:inactive_garden, name: "retired garden", owner: member) }
|
||||
|
||||
before { visit member_gardens_path(member_slug: member.slug) }
|
||||
|
||||
@@ -55,10 +55,10 @@ describe "Gardens#index", :js do
|
||||
let(:tomato) { FactoryBot.create(:tomato) }
|
||||
|
||||
let!(:planting) do
|
||||
FactoryBot.create :planting, owner: member, crop: maize, garden: member.gardens.first
|
||||
FactoryBot.create(:planting, owner: member, crop: maize, garden: member.gardens.first)
|
||||
end
|
||||
let!(:finished_planting) do
|
||||
FactoryBot.create :finished_planting, owner: member, crop: tomato, garden: member.gardens.first
|
||||
FactoryBot.create(:finished_planting, owner: member, crop: tomato, garden: member.gardens.first)
|
||||
end
|
||||
|
||||
before do
|
||||
@@ -77,8 +77,8 @@ describe "Gardens#index", :js do
|
||||
|
||||
describe 'badges' do
|
||||
let(:garden) { member.gardens.first }
|
||||
let(:member) { FactoryBot.create :member, login_name: 'robbieburns' }
|
||||
let(:crop) { FactoryBot.create :crop }
|
||||
let(:member) { FactoryBot.create(:member, login_name: 'robbieburns') }
|
||||
let(:crop) { FactoryBot.create(:crop) }
|
||||
|
||||
before do
|
||||
# time to harvest = 50 day
|
||||
@@ -101,11 +101,11 @@ describe "Gardens#index", :js do
|
||||
|
||||
describe 'harvest still growing' do
|
||||
let!(:planting) do
|
||||
FactoryBot.create :planting,
|
||||
FactoryBot.create(:planting,
|
||||
crop:,
|
||||
owner: member,
|
||||
garden:,
|
||||
planted_at: Time.zone.today
|
||||
planted_at: Time.zone.today)
|
||||
end
|
||||
|
||||
it { expect(page).to have_link href: planting_path(planting) }
|
||||
@@ -116,10 +116,10 @@ describe "Gardens#index", :js do
|
||||
|
||||
describe 'harvesting now' do
|
||||
let!(:planting) do
|
||||
FactoryBot.create :planting,
|
||||
FactoryBot.create(:planting,
|
||||
crop:,
|
||||
owner: member, garden:,
|
||||
planted_at: 51.days.ago
|
||||
planted_at: 51.days.ago)
|
||||
end
|
||||
|
||||
it { expect(crop.median_days_to_first_harvest).to eq 50 }
|
||||
@@ -131,9 +131,9 @@ describe "Gardens#index", :js do
|
||||
|
||||
describe 'super late' do
|
||||
let!(:planting) do
|
||||
FactoryBot.create :planting,
|
||||
FactoryBot.create(:planting,
|
||||
crop:, owner: member,
|
||||
garden:, planted_at: 260.days.ago
|
||||
garden:, planted_at: 260.days.ago)
|
||||
end
|
||||
|
||||
it { expect(page).to have_text 'super late' }
|
||||
|
||||
@@ -5,13 +5,13 @@ require 'rails_helper'
|
||||
describe "browse harvests", :search do
|
||||
subject { page }
|
||||
|
||||
let!(:harvest) { create :harvest, owner: member }
|
||||
let!(:harvest) { create(:harvest, owner: member) }
|
||||
|
||||
context 'signed in' do
|
||||
include_context 'signed in member'
|
||||
|
||||
describe 'blank optional fields' do
|
||||
let!(:harvest) { create :harvest, :no_description, :reindex }
|
||||
let!(:harvest) { create(:harvest, :no_description, :reindex) }
|
||||
|
||||
before do
|
||||
Harvest.reindex
|
||||
@@ -24,7 +24,7 @@ describe "browse harvests", :search do
|
||||
end
|
||||
|
||||
describe "filled in optional fields" do
|
||||
let!(:harvest) { create :harvest, :long_description, :reindex }
|
||||
let!(:harvest) { create(:harvest, :long_description, :reindex) }
|
||||
|
||||
before do
|
||||
Harvest.reindex
|
||||
|
||||
@@ -6,8 +6,8 @@ require 'custom_matchers'
|
||||
describe "Harvesting a crop", :js, :search do
|
||||
context 'signed in' do
|
||||
include_context 'signed in member'
|
||||
let!(:maize) { create :maize }
|
||||
let!(:plant_part) { create :plant_part }
|
||||
let!(:maize) { create(:maize) }
|
||||
let!(:plant_part) { create(:plant_part) }
|
||||
|
||||
before { visit new_harvest_path }
|
||||
|
||||
@@ -65,7 +65,7 @@ describe "Harvesting a crop", :js, :search do
|
||||
end
|
||||
|
||||
describe "Harvesting from planting page" do
|
||||
let!(:planting) { create :planting, crop: maize, owner: member, garden: member.gardens.first }
|
||||
let!(:planting) { create(:planting, crop: maize, owner: member, garden: member.gardens.first) }
|
||||
|
||||
before do
|
||||
visit planting_path(planting)
|
||||
@@ -79,8 +79,8 @@ describe "Harvesting a crop", :js, :search do
|
||||
end
|
||||
|
||||
context "Editing a harvest" do
|
||||
let(:existing_harvest) { create :harvest, crop: maize, owner: member }
|
||||
let!(:other_plant_part) { create :plant_part, name: 'chocolate' }
|
||||
let(:existing_harvest) { create(:harvest, crop: maize, owner: member) }
|
||||
let!(:other_plant_part) { create(:plant_part, name: 'chocolate') }
|
||||
|
||||
before do
|
||||
visit harvest_path(existing_harvest)
|
||||
@@ -106,12 +106,12 @@ describe "Harvesting a crop", :js, :search do
|
||||
|
||||
context "Viewing a harvest" do
|
||||
let(:existing_harvest) do
|
||||
create :harvest, crop: maize, owner: member,
|
||||
harvested_at: Time.zone.today
|
||||
create(:harvest, crop: maize, owner: member,
|
||||
harvested_at: Time.zone.today)
|
||||
end
|
||||
let!(:existing_planting) do
|
||||
create :planting, crop: maize, owner: member,
|
||||
planted_at: Time.zone.yesterday
|
||||
create(:planting, crop: maize, owner: member,
|
||||
planted_at: Time.zone.yesterday)
|
||||
end
|
||||
|
||||
before do
|
||||
|
||||
@@ -5,18 +5,18 @@ require 'rails_helper'
|
||||
describe "home page", :search do
|
||||
subject { page }
|
||||
|
||||
let(:member) { FactoryBot.create :member }
|
||||
let(:member) { FactoryBot.create(:member) }
|
||||
|
||||
let(:photo) { FactoryBot.create :photo, owner: member }
|
||||
let(:crop) { FactoryBot.create :crop, created_at: 1.day.ago }
|
||||
let(:photo) { FactoryBot.create(:photo, owner: member) }
|
||||
let(:crop) { FactoryBot.create(:crop, created_at: 1.day.ago) }
|
||||
|
||||
let(:planting) { FactoryBot.create :planting, owner: member, crop: }
|
||||
let(:seed) { FactoryBot.create :tradable_seed, owner: member, crop: }
|
||||
let(:harvest) { FactoryBot.create :harvest, owner: member, crop: }
|
||||
let(:planting) { FactoryBot.create(:planting, owner: member, crop:) }
|
||||
let(:seed) { FactoryBot.create(:tradable_seed, owner: member, crop:) }
|
||||
let(:harvest) { FactoryBot.create(:harvest, owner: member, crop:) }
|
||||
|
||||
let!(:tradable_seed) { FactoryBot.create :tradable_seed, :reindex, finished: false }
|
||||
let!(:finished_seed) { FactoryBot.create :tradable_seed, :reindex, finished: true }
|
||||
let!(:untradable_seed) { FactoryBot.create :untradable_seed, :reindex }
|
||||
let!(:tradable_seed) { FactoryBot.create(:tradable_seed, :reindex, finished: false) }
|
||||
let!(:finished_seed) { FactoryBot.create(:tradable_seed, :reindex, finished: true) }
|
||||
let!(:untradable_seed) { FactoryBot.create(:untradable_seed, :reindex) }
|
||||
|
||||
before do
|
||||
# Add photos, so they can appear on home page
|
||||
|
||||
@@ -64,8 +64,8 @@ describe 'Likeable', :js, search: true do
|
||||
end
|
||||
|
||||
describe 'crops#show' do
|
||||
let(:crop) { FactoryBot.create :crop }
|
||||
let(:planting) { FactoryBot.create :planting, owner: member, crop: }
|
||||
let(:crop) { FactoryBot.create(:crop) }
|
||||
let(:planting) { FactoryBot.create(:planting, owner: member, crop:) }
|
||||
let(:path) { crop_path(crop) }
|
||||
|
||||
before { planting.photos << photo }
|
||||
|
||||
@@ -5,7 +5,7 @@ require 'rails_helper'
|
||||
describe "Changing locales", js: true do
|
||||
after { I18n.locale = :en }
|
||||
|
||||
let(:member) { FactoryBot.create :member }
|
||||
let(:member) { FactoryBot.create(:member) }
|
||||
|
||||
it "Locale can be set with a query param" do
|
||||
# Login then log out, to ensure we're now logged out
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe "members list" do
|
||||
let!(:spammer) { FactoryBot.create :member }
|
||||
let!(:admin) { FactoryBot.create :admin_member }
|
||||
let!(:spammer) { FactoryBot.create(:member) }
|
||||
let!(:admin) { FactoryBot.create(:admin_member) }
|
||||
|
||||
context 'logged in as admin' do
|
||||
include_context 'signed in admin'
|
||||
|
||||
@@ -128,7 +128,7 @@ describe "member deletion" do
|
||||
end
|
||||
|
||||
it "replaces comments on others' posts with deletion note, leaving post intact" do
|
||||
FactoryBot.create :comment, post: othermemberpost, author: member, body: 'i am deleting my account'
|
||||
FactoryBot.create(:comment, post: othermemberpost, author: member, body: 'i am deleting my account')
|
||||
|
||||
visit post_path(othermemberpost)
|
||||
expect(page).not_to have_content member.login_name
|
||||
@@ -156,11 +156,11 @@ describe "member deletion" do
|
||||
|
||||
context "for a crop wrangler" do
|
||||
let(:member) { FactoryBot.create(:crop_wrangling_member) }
|
||||
let!(:ex_wrangler) { FactoryBot.create(:crop_wrangling_member, login_name: "ex_wrangler") }
|
||||
let(:otherwrangler) { FactoryBot.create(:crop_wrangling_member) }
|
||||
let(:crop) { FactoryBot.create(:crop, creator: member) }
|
||||
before { FactoryBot.create(:cropbot) }
|
||||
|
||||
let!(:ex_wrangler) { FactoryBot.create(:crop_wrangling_member, login_name: "ex_wrangler") }
|
||||
before { FactoryBot.create(:cropbot) }
|
||||
|
||||
it "leaves crops behind" do
|
||||
login_as(otherwrangler)
|
||||
|
||||
@@ -4,7 +4,7 @@ require 'rails_helper'
|
||||
|
||||
describe "follows", :js do
|
||||
context "when signed out" do
|
||||
let(:member) { create :member }
|
||||
let(:member) { create(:member) }
|
||||
|
||||
it "follow buttons on member profile page" do
|
||||
visit member_path(member)
|
||||
@@ -15,7 +15,7 @@ describe "follows", :js do
|
||||
|
||||
context "when signed in" do
|
||||
include_context 'signed in member'
|
||||
let(:other_member) { create :member }
|
||||
let(:other_member) { create(:member) }
|
||||
|
||||
it "your profile doesn't have a follow button" do
|
||||
visit member_path(member)
|
||||
|
||||
@@ -4,12 +4,12 @@ require 'rails_helper'
|
||||
|
||||
describe "members list" do
|
||||
context "list all members" do
|
||||
let!(:member1) { create :member, login_name: "Archaeopteryx", confirmed_at: Time.zone.parse('2013-02-10') }
|
||||
let!(:member2) { create :member, login_name: "Zephyrosaurus", confirmed_at: Time.zone.parse('2014-01-11') }
|
||||
let!(:member3) { create :member, login_name: "Testingname", confirmed_at: Time.zone.parse('2014-05-09') }
|
||||
|
||||
subject { page.all("#maincontainer h4.login-name") }
|
||||
|
||||
let!(:member1) { create(:member, login_name: "Archaeopteryx", confirmed_at: Time.zone.parse('2013-02-10')) }
|
||||
let!(:member2) { create(:member, login_name: "Zephyrosaurus", confirmed_at: Time.zone.parse('2014-01-11')) }
|
||||
let!(:member3) { create(:member, login_name: "Testingname", confirmed_at: Time.zone.parse('2014-05-09')) }
|
||||
|
||||
before do
|
||||
visit members_path
|
||||
expect(page).to have_css "#sort"
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe "member profile", js: true do
|
||||
let(:member) { create :member }
|
||||
let(:other_member) { create :member }
|
||||
let(:admin_member) { create :admin_member }
|
||||
let(:crop_wrangler) { create :crop_wrangling_member }
|
||||
let(:member) { create(:member) }
|
||||
let(:other_member) { create(:member) }
|
||||
let(:admin_member) { create(:admin_member) }
|
||||
let(:crop_wrangler) { create(:crop_wrangling_member) }
|
||||
|
||||
shared_examples 'member details' do
|
||||
it "basic details on member profile page" do
|
||||
@@ -23,7 +23,7 @@ describe "member profile", js: true do
|
||||
|
||||
context "location" do
|
||||
it "member has set location" do
|
||||
london_member = create :london_member
|
||||
london_member = create(:london_member)
|
||||
visit member_path(london_member)
|
||||
expect(page).to have_content(london_member.location)
|
||||
expect(page).to have_css("#membermap")
|
||||
@@ -40,7 +40,7 @@ describe "member profile", js: true do
|
||||
|
||||
context "email privacy" do
|
||||
it "public email address" do
|
||||
public_member = create :public_member
|
||||
public_member = create(:public_member)
|
||||
visit member_path(public_member)
|
||||
expect(page).to have_content public_member.email
|
||||
end
|
||||
@@ -62,10 +62,10 @@ describe "member profile", js: true do
|
||||
end
|
||||
|
||||
context "with some activity" do
|
||||
let!(:planting) { FactoryBot.create :planting, owner: member }
|
||||
let!(:harvest) { FactoryBot.create :harvest, owner: member }
|
||||
let!(:seed) { FactoryBot.create :seed, owner: member }
|
||||
let!(:post) { FactoryBot.create :post, author: member }
|
||||
let!(:planting) { FactoryBot.create(:planting, owner: member) }
|
||||
let!(:harvest) { FactoryBot.create(:harvest, owner: member) }
|
||||
let!(:seed) { FactoryBot.create(:seed, owner: member) }
|
||||
let!(:post) { FactoryBot.create(:post, author: member) }
|
||||
|
||||
before { visit member_path(member) }
|
||||
|
||||
@@ -77,13 +77,13 @@ describe "member profile", js: true do
|
||||
end
|
||||
|
||||
it "twitter link" do
|
||||
twitter_auth = create :authentication, member: member
|
||||
twitter_auth = create(:authentication, member:)
|
||||
visit member_path(member)
|
||||
expect(page).to have_link twitter_auth.name, href: "https://twitter.com/#{twitter_auth.name}"
|
||||
end
|
||||
|
||||
it "flickr link" do
|
||||
flickr_auth = create :flickr_authentication, member: member
|
||||
flickr_auth = create(:flickr_authentication, member:)
|
||||
visit member_path(member)
|
||||
expect(page).to have_link flickr_auth.name, href: "https://flickr.com/photos/#{flickr_auth.uid}"
|
||||
end
|
||||
@@ -110,10 +110,10 @@ describe "member profile", js: true do
|
||||
|
||||
shared_examples 'member activity' do
|
||||
context 'member has plantings' do
|
||||
let!(:new_planting) { FactoryBot.create :planting, owner: member, planted_at: Time.zone.now }
|
||||
let!(:old_planting) { FactoryBot.create :planting, owner: member, planted_at: 3.years.ago }
|
||||
let!(:finished_planting) { FactoryBot.create :finished_planting, owner: member }
|
||||
let!(:no_planted_at_planting) { FactoryBot.create :planting, owner: member, planted_at: nil }
|
||||
let!(:new_planting) { FactoryBot.create(:planting, owner: member, planted_at: Time.zone.now) }
|
||||
let!(:old_planting) { FactoryBot.create(:planting, owner: member, planted_at: 3.years.ago) }
|
||||
let!(:finished_planting) { FactoryBot.create(:finished_planting, owner: member) }
|
||||
let!(:no_planted_at_planting) { FactoryBot.create(:planting, owner: member, planted_at: nil) }
|
||||
|
||||
before { visit member_path(member) }
|
||||
|
||||
@@ -124,7 +124,7 @@ describe "member profile", js: true do
|
||||
end
|
||||
|
||||
context 'member has seeds' do
|
||||
let!(:seed) { FactoryBot.create :seed, owner: member }
|
||||
let!(:seed) { FactoryBot.create(:seed, owner: member) }
|
||||
|
||||
before { visit member_path(member) }
|
||||
|
||||
@@ -132,7 +132,7 @@ describe "member profile", js: true do
|
||||
end
|
||||
|
||||
context 'member has harvests' do
|
||||
let!(:harvest) { FactoryBot.create :harvest, owner: member }
|
||||
let!(:harvest) { FactoryBot.create(:harvest, owner: member) }
|
||||
|
||||
before { visit member_path(member) }
|
||||
|
||||
@@ -140,7 +140,7 @@ describe "member profile", js: true do
|
||||
end
|
||||
|
||||
context 'member has posts' do
|
||||
let!(:post) { FactoryBot.create :post, author: member }
|
||||
let!(:post) { FactoryBot.create(:post, author: member) }
|
||||
|
||||
before { visit member_path(member) }
|
||||
|
||||
@@ -148,8 +148,8 @@ describe "member profile", js: true do
|
||||
end
|
||||
|
||||
context 'member has comments' do
|
||||
let(:post) { FactoryBot.create :post }
|
||||
let!(:comment) { FactoryBot.create :comment, post:, author: member }
|
||||
let(:post) { FactoryBot.create(:post) }
|
||||
let!(:comment) { FactoryBot.create(:comment, post:, author: member) }
|
||||
|
||||
before { visit member_path(member) }
|
||||
|
||||
@@ -158,8 +158,8 @@ describe "member profile", js: true do
|
||||
end
|
||||
|
||||
context 'photos' do
|
||||
let(:planting) { FactoryBot.create :planting, owner: member }
|
||||
let!(:photo) { FactoryBot.create :photo, owner: member, plantings: [planting] }
|
||||
let(:planting) { FactoryBot.create(:planting, owner: member) }
|
||||
let!(:photo) { FactoryBot.create(:photo, owner: member, plantings: [planting]) }
|
||||
|
||||
before { visit member_path(member) }
|
||||
|
||||
@@ -168,7 +168,25 @@ describe "member profile", js: true do
|
||||
end
|
||||
|
||||
context 'plantings' do
|
||||
let(:crop) { FactoryBot.create :crop }
|
||||
let(:crop) { FactoryBot.create(:crop) }
|
||||
let(:growing_planting) do
|
||||
FactoryBot.create(:planting,
|
||||
crop:,
|
||||
owner: member,
|
||||
planted_at: Time.zone.today)
|
||||
end
|
||||
let(:harvesting_planting) do
|
||||
FactoryBot.create(:planting,
|
||||
crop:,
|
||||
owner: member,
|
||||
planted_at: 51.days.ago)
|
||||
end
|
||||
let(:super_late_planting) do
|
||||
FactoryBot.create(:planting,
|
||||
crop:, owner: member,
|
||||
planted_at: 260.days.ago)
|
||||
end
|
||||
|
||||
before do
|
||||
# time to harvest = 50 day
|
||||
# time to finished = 90 days
|
||||
@@ -190,26 +208,6 @@ describe "member profile", js: true do
|
||||
visit member_path(member)
|
||||
end
|
||||
|
||||
let(:growing_planting) do
|
||||
FactoryBot.create :planting,
|
||||
crop:,
|
||||
owner: member,
|
||||
planted_at: Time.zone.today
|
||||
end
|
||||
|
||||
let(:harvesting_planting) do
|
||||
FactoryBot.create :planting,
|
||||
crop:,
|
||||
owner: member,
|
||||
planted_at: 51.days.ago
|
||||
end
|
||||
|
||||
let(:super_late_planting) do
|
||||
FactoryBot.create :planting,
|
||||
crop:, owner: member,
|
||||
planted_at: 260.days.ago
|
||||
end
|
||||
|
||||
it { expect(page).to have_link(href: planting_path(growing_planting)) }
|
||||
it { expect(page).to have_link(href: planting_path(harvesting_planting)) }
|
||||
it { expect(page).to have_link(href: planting_path(super_late_planting)) }
|
||||
|
||||
@@ -7,25 +7,25 @@ describe 'Test with visual testing', js: true, type: :feature do
|
||||
# on every run, so doesn't trigger percy to see changes
|
||||
before { Faker::Config.random = Random.new(42) }
|
||||
|
||||
let!(:member) { FactoryBot.create :member, login_name: 'percy', preferred_avatar_uri: gravatar }
|
||||
let!(:crop_wrangler) { FactoryBot.create :crop_wrangling_member, login_name: 'croppy', preferred_avatar_uri: gravatar2 }
|
||||
let!(:admin_user) { FactoryBot.create :admin_member, login_name: 'janitor', preferred_avatar_uri: gravatar3 }
|
||||
let!(:someone_else) { FactoryBot.create :edinburgh_member, login_name: 'ruby', preferred_avatar_uri: gravatar4 }
|
||||
let!(:member) { FactoryBot.create(:member, login_name: 'percy', preferred_avatar_uri: gravatar) }
|
||||
let!(:crop_wrangler) { FactoryBot.create(:crop_wrangling_member, login_name: 'croppy', preferred_avatar_uri: gravatar2) }
|
||||
let!(:admin_user) { FactoryBot.create(:admin_member, login_name: 'janitor', preferred_avatar_uri: gravatar3) }
|
||||
let!(:someone_else) { FactoryBot.create(:edinburgh_member, login_name: 'ruby', preferred_avatar_uri: gravatar4) }
|
||||
|
||||
let(:gravatar) { 'https://secure.gravatar.com/avatar/d021434aac03a7f7c7c0de60d07dad1c?size=150&default=identicon' }
|
||||
let(:gravatar2) { 'https://secure.gravatar.com/avatar/353d83d3677b142520987e1936fd093c?size=150&default=identicon' }
|
||||
let(:gravatar3) { 'https://secure.gravatar.com/avatar/622db62c7beab8d5d8b7a80aa6385b2f?size=150&default=identicon' }
|
||||
let(:gravatar4) { 'https://secure.gravatar.com/avatar/7fd767571ff5ceefc7a687a543b2c402?size=150&default=identicon' }
|
||||
|
||||
let!(:tomato) { FactoryBot.create :tomato, creator: someone_else }
|
||||
let(:plant_part) { FactoryBot.create :plant_part, name: 'fruit' }
|
||||
let!(:tomato) { FactoryBot.create(:tomato, creator: someone_else) }
|
||||
let(:plant_part) { FactoryBot.create(:plant_part, name: 'fruit') }
|
||||
|
||||
let(:tomato_photo) do
|
||||
FactoryBot.create :photo,
|
||||
FactoryBot.create(:photo,
|
||||
title: 'look at my tomatoes',
|
||||
owner: member,
|
||||
fullsize_url: 'https://farm1.staticflickr.com/177/432250619_2fe19d067d_z.jpg',
|
||||
thumbnail_url: 'https://farm1.staticflickr.com/177/432250619_2fe19d067d_q.jpg'
|
||||
thumbnail_url: 'https://farm1.staticflickr.com/177/432250619_2fe19d067d_q.jpg')
|
||||
end
|
||||
let(:post_body) do
|
||||
"So, um, watering's important. Yep. Very important.
|
||||
@@ -66,7 +66,7 @@ rest of the garden.
|
||||
[apple](crop)
|
||||
"
|
||||
end
|
||||
let(:post) { FactoryBot.create :post, author: member, subject: "Watering", body: post_body }
|
||||
let(:post) { FactoryBot.create(:post, author: member, subject: "Watering", body: post_body) }
|
||||
|
||||
before do
|
||||
# Freeze time, so we don't have variations in timestamps on the page
|
||||
@@ -80,23 +80,23 @@ rest of the garden.
|
||||
eggplant: 'https://farm8.staticflickr.com/7856/47068736892_1af9b8a4ba_q.jpg',
|
||||
maize: 'https://farm66.staticflickr.com/65535/46739264475_7cb55b2cbb_q.jpg'
|
||||
}.each do |crop_type, photo_url|
|
||||
crop = FactoryBot.create crop_type, creator: someone_else
|
||||
crop = FactoryBot.create(crop_type, creator: someone_else)
|
||||
crop.reindex
|
||||
owner = FactoryBot.create :interesting_member, login_name: crop_type.to_s.reverse, email: "#{crop.name}@example.com"
|
||||
planting = FactoryBot.create :planting, crop: crop, owner: owner, garden: owner.gardens.first
|
||||
owner = FactoryBot.create(:interesting_member, login_name: crop_type.to_s.reverse, email: "#{crop.name}@example.com")
|
||||
planting = FactoryBot.create(:planting, crop:, owner:, garden: owner.gardens.first)
|
||||
photo = FactoryBot.create(:photo, owner:,
|
||||
thumbnail_url: "#{photo_url}_q.jpg", fullsize_url: "#{photo_url}_z.jpg")
|
||||
planting.photos << photo
|
||||
|
||||
harvest = FactoryBot.create :harvest, crop: crop, owner: owner, plant_part: plant_part
|
||||
harvest = FactoryBot.create(:harvest, crop:, owner:, plant_part:)
|
||||
harvest.photos << photo
|
||||
FactoryBot.create :planting, crop: tomato,
|
||||
FactoryBot.create(:planting, crop: tomato,
|
||||
planted_at: 1.year.ago, finished_at: 2.months.ago,
|
||||
sunniness: 'sun', planted_from: 'seed'
|
||||
sunniness: 'sun', planted_from: 'seed')
|
||||
end
|
||||
|
||||
FactoryBot.create :seed, owner: member, tradable_to: 'nationally'
|
||||
FactoryBot.create :seed, owner: someone_else, tradable_to: 'nationally'
|
||||
FactoryBot.create(:seed, owner: member, tradable_to: 'nationally')
|
||||
FactoryBot.create(:seed, owner: someone_else, tradable_to: 'nationally')
|
||||
end
|
||||
|
||||
after { Timecop.return }
|
||||
@@ -111,16 +111,16 @@ rest of the garden.
|
||||
|
||||
describe 'crops' do
|
||||
it 'loads crops#show' do
|
||||
FactoryBot.create :planting, planted_at: 2.months.ago, sunniness: 'shade', planted_from: 'seedling'
|
||||
FactoryBot.create(:planting, planted_at: 2.months.ago, sunniness: 'shade', planted_from: 'seedling')
|
||||
|
||||
planting = FactoryBot.create :planting, planted_at: 1.year.ago, sunniness: 'sun', planted_from: 'seed', crop: tomato
|
||||
planting = FactoryBot.create(:planting, planted_at: 1.year.ago, sunniness: 'sun', planted_from: 'seed', crop: tomato)
|
||||
FactoryBot.create(:harvest,
|
||||
crop: tomato,
|
||||
plant_part: FactoryBot.create(:plant_part, name: 'berry'),
|
||||
planting:,
|
||||
harvested_at: 1.day.ago)
|
||||
|
||||
post = FactoryBot.create :post, subject: 'tomatoes are delicious'
|
||||
post = FactoryBot.create(:post, subject: 'tomatoes are delicious')
|
||||
tomato.posts << post
|
||||
|
||||
visit crop_path(tomato)
|
||||
@@ -141,7 +141,7 @@ rest of the garden.
|
||||
end
|
||||
|
||||
it 'load another member plantings#show' do
|
||||
planting = FactoryBot.create :planting, crop: tomato, owner: someone_else, garden: someone_else.gardens.first
|
||||
planting = FactoryBot.create(:planting, crop: tomato, owner: someone_else, garden: someone_else.gardens.first)
|
||||
visit planting_path(planting)
|
||||
page.percy_snapshot(page, name: "#{prefix}/plantings#show")
|
||||
end
|
||||
@@ -155,14 +155,14 @@ rest of the garden.
|
||||
|
||||
it 'gardens#show' do
|
||||
# a garden
|
||||
garden = FactoryBot.create :garden, name: 'paradise', owner: member
|
||||
garden = FactoryBot.create(:garden, name: 'paradise', owner: member)
|
||||
# with some lettuce (finished)
|
||||
FactoryBot.create(
|
||||
:planting, crop: FactoryBot.create(:crop, name: 'lettuce'),
|
||||
garden:, owner: member, finished_at: 2.weeks.ago
|
||||
)
|
||||
# tomato still growing
|
||||
tomato_planting = FactoryBot.create :planting, garden: garden, owner: member, crop: tomato
|
||||
tomato_planting = FactoryBot.create(:planting, garden:, owner: member, crop: tomato)
|
||||
tomato_photo.plantings << tomato_planting
|
||||
visit garden_path(garden)
|
||||
page.percy_snapshot(page, name: "#{prefix}/gardens#show")
|
||||
@@ -176,10 +176,10 @@ rest of the garden.
|
||||
end
|
||||
|
||||
it 'loads another members#show' do
|
||||
FactoryBot.create :planting, owner: someone_else, created_at: 30.days.ago, crop: tomato
|
||||
FactoryBot.create :planting, owner: someone_else, created_at: 24.days.ago, crop: tomato
|
||||
FactoryBot.create :post, author: someone_else, created_at: 4.days.ago, subject: 'waiting for my tomatoes'
|
||||
FactoryBot.create :harvest, owner: someone_else, created_at: 1.day.ago, crop: tomato
|
||||
FactoryBot.create(:planting, owner: someone_else, created_at: 30.days.ago, crop: tomato)
|
||||
FactoryBot.create(:planting, owner: someone_else, created_at: 24.days.ago, crop: tomato)
|
||||
FactoryBot.create(:post, author: someone_else, created_at: 4.days.ago, subject: 'waiting for my tomatoes')
|
||||
FactoryBot.create(:harvest, owner: someone_else, created_at: 1.day.ago, crop: tomato)
|
||||
|
||||
visit member_path(someone_else)
|
||||
page.percy_snapshot(page, name: "#{prefix}/members#show")
|
||||
@@ -188,18 +188,18 @@ rest of the garden.
|
||||
|
||||
describe 'posts' do
|
||||
it 'loads posts#show' do
|
||||
FactoryBot.create :comment, post: post
|
||||
FactoryBot.create :comment, post: post
|
||||
FactoryBot.create(:comment, post:)
|
||||
FactoryBot.create(:comment, post:)
|
||||
visit post_path(post)
|
||||
page.percy_snapshot(page, name: "#{prefix}/posts#show")
|
||||
end
|
||||
|
||||
it 'loads posts#index' do
|
||||
Member.all.limit(5).each do |member|
|
||||
FactoryBot.create_list :post, 12, author: member
|
||||
FactoryBot.create_list(:post, 12, author: member)
|
||||
end
|
||||
Post.all.order(id: :desc).limit(4) do |post|
|
||||
FactoryBot.create_list :comment, rand(1..5), post:
|
||||
FactoryBot.create_list(:comment, rand(1..5), post:)
|
||||
end
|
||||
visit posts_path
|
||||
page.percy_snapshot(page, name: "#{prefix}/posts#index")
|
||||
@@ -250,7 +250,7 @@ rest of the garden.
|
||||
include_examples 'visit pages'
|
||||
|
||||
it 'load my plantings#show' do
|
||||
planting = FactoryBot.create :planting, crop: tomato, owner: member, garden: member.gardens.first
|
||||
planting = FactoryBot.create(:planting, crop: tomato, owner: member, garden: member.gardens.first)
|
||||
visit planting_path(planting)
|
||||
page.percy_snapshot(page, name: "#{prefix}/self/plantings#show")
|
||||
end
|
||||
@@ -261,7 +261,7 @@ rest of the garden.
|
||||
end
|
||||
|
||||
it 'load my gardens#show' do
|
||||
garden = FactoryBot.create :garden, name: 'paradise', owner: member
|
||||
garden = FactoryBot.create(:garden, name: 'paradise', owner: member)
|
||||
visit garden_path(garden)
|
||||
page.percy_snapshot(page, name: "#{prefix}/self/gardens#show")
|
||||
end
|
||||
@@ -306,19 +306,19 @@ rest of the garden.
|
||||
|
||||
describe '#edit' do
|
||||
it 'loads gardens#edit' do
|
||||
garden = FactoryBot.create :garden, owner: member
|
||||
garden = FactoryBot.create(:garden, owner: member)
|
||||
visit edit_garden_path(garden)
|
||||
page.percy_snapshot(page, name: "#{prefix}/gardens#edit")
|
||||
end
|
||||
|
||||
it 'loads harvests#edit' do
|
||||
harvest = FactoryBot.create :harvest, owner: member
|
||||
harvest = FactoryBot.create(:harvest, owner: member)
|
||||
visit edit_harvest_path(harvest)
|
||||
page.percy_snapshot(page, name: "#{prefix}/harvests#edit")
|
||||
end
|
||||
|
||||
it 'loads planting#edit' do
|
||||
planting = FactoryBot.create :planting, owner: member
|
||||
planting = FactoryBot.create(:planting, owner: member)
|
||||
visit edit_planting_path(planting)
|
||||
page.percy_snapshot(page, name: "#{prefix}/plantings#edit")
|
||||
end
|
||||
@@ -350,7 +350,7 @@ rest of the garden.
|
||||
|
||||
context 'wrangling crops' do
|
||||
include_context 'signed in crop wrangler'
|
||||
let!(:candy) { FactoryBot.create :crop_request, name: 'candy' }
|
||||
let!(:candy) { FactoryBot.create(:crop_request, name: 'candy') }
|
||||
|
||||
it 'crop wrangling page' do
|
||||
visit wrangle_crops_path
|
||||
|
||||
@@ -6,7 +6,7 @@ describe "new photo page" do
|
||||
context "signed in member" do
|
||||
include_context 'signed in member'
|
||||
context "viewing a planting" do
|
||||
let(:planting) { FactoryBot.create :planting, owner: member }
|
||||
let(:planting) { FactoryBot.create(:planting, owner: member) }
|
||||
|
||||
it "add photo" do
|
||||
visit planting_path(planting)
|
||||
@@ -20,7 +20,7 @@ describe "new photo page" do
|
||||
end
|
||||
|
||||
context "viewing a harvest" do
|
||||
let(:harvest) { FactoryBot.create :harvest, owner: member }
|
||||
let(:harvest) { FactoryBot.create(:harvest, owner: member) }
|
||||
|
||||
it "add photo" do
|
||||
visit harvest_path(harvest)
|
||||
@@ -33,7 +33,7 @@ describe "new photo page" do
|
||||
end
|
||||
|
||||
context "viewing a garden" do
|
||||
let(:garden) { FactoryBot.create :garden, owner: member }
|
||||
let(:garden) { FactoryBot.create(:garden, owner: member) }
|
||||
|
||||
it "add photo" do
|
||||
visit garden_path(garden)
|
||||
@@ -46,7 +46,7 @@ describe "new photo page" do
|
||||
end
|
||||
|
||||
describe "viewing a seed" do
|
||||
let(:seed) { FactoryBot.create :seed, owner: member }
|
||||
let(:seed) { FactoryBot.create(:seed, owner: member) }
|
||||
|
||||
it "add photo" do
|
||||
visit seed_path(seed)
|
||||
|
||||
@@ -6,8 +6,8 @@ describe "show photo page" do
|
||||
context "signed in member" do
|
||||
include_context 'signed in member'
|
||||
context "linked to planting" do
|
||||
let(:planting) { create :planting }
|
||||
let(:photo) { create :photo, owner: planting.owner }
|
||||
let(:planting) { create(:planting) }
|
||||
let(:photo) { create(:photo, owner: planting.owner) }
|
||||
|
||||
context "shows linkback to planting" do
|
||||
before do
|
||||
@@ -25,8 +25,8 @@ describe "show photo page" do
|
||||
end
|
||||
|
||||
context "linked to harvest" do
|
||||
let(:photo) { create :photo, owner: harvest.owner }
|
||||
let(:harvest) { create :harvest }
|
||||
let(:photo) { create(:photo, owner: harvest.owner) }
|
||||
let(:harvest) { create(:harvest) }
|
||||
|
||||
context "shows linkback to harvest" do
|
||||
before do
|
||||
@@ -40,8 +40,8 @@ describe "show photo page" do
|
||||
end
|
||||
|
||||
context "linked to garden" do
|
||||
let(:photo) { create :photo, owner: garden.owner }
|
||||
let(:garden) { create :garden }
|
||||
let(:photo) { create(:photo, owner: garden.owner) }
|
||||
let(:garden) { create(:garden) }
|
||||
|
||||
context "shows linkback to garden" do
|
||||
before do
|
||||
@@ -55,8 +55,8 @@ describe "show photo page" do
|
||||
end
|
||||
|
||||
context "linked to seed" do
|
||||
let(:photo) { create :photo, owner: seed.owner }
|
||||
let(:seed) { create :seed }
|
||||
let(:photo) { create(:photo, owner: seed.owner) }
|
||||
let(:seed) { create(:seed) }
|
||||
|
||||
context "shows linkback to seed" do
|
||||
before do
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe "User searches" do
|
||||
let!(:located_member) { create :member, location: "Philippines" }
|
||||
let!(:maize) { create :maize }
|
||||
let(:garden) { create :garden, owner: located_member }
|
||||
let!(:seed1) { create :seed, owner: located_member }
|
||||
let!(:planting) { create :planting, garden:, owner: located_member, planted_at: Date.parse("2013-3-10") }
|
||||
let!(:located_member) { create(:member, location: "Philippines") }
|
||||
let!(:maize) { create(:maize) }
|
||||
let(:garden) { create(:garden, owner: located_member) }
|
||||
let!(:seed1) { create(:seed, owner: located_member) }
|
||||
let!(:planting) { create(:planting, garden:, owner: located_member, planted_at: Date.parse("2013-3-10")) }
|
||||
|
||||
describe "with a valid place" do
|
||||
before do
|
||||
|
||||
@@ -4,7 +4,7 @@ require 'rails_helper'
|
||||
require 'capybara/email/rspec'
|
||||
|
||||
describe "Planting reminder email", :js do
|
||||
let(:member) { create :member }
|
||||
let(:member) { create(:member) }
|
||||
let(:mail) { NotifierMailer.planting_reminder(member) }
|
||||
|
||||
# Unfortunately, we can't use the default url options for ActionMailer as configured in
|
||||
@@ -30,8 +30,8 @@ describe "Planting reminder email", :js do
|
||||
context "when member has some plantings" do
|
||||
# Bangs are used on the following 2 let blocks in order to ensure that the plantings are present
|
||||
# in the database before the email is generated: otherwise, they won't be present in the email.
|
||||
let!(:p1) { FactoryBot.create :predicatable_planting, planted_at: 10.days.ago, garden: member.gardens.first, owner: member }
|
||||
let!(:p2) { FactoryBot.create :predicatable_planting, planted_at: 30.days.ago, garden: member.gardens.first, owner: member }
|
||||
let!(:p1) { FactoryBot.create(:predicatable_planting, planted_at: 10.days.ago, garden: member.gardens.first, owner: member) }
|
||||
let!(:p2) { FactoryBot.create(:predicatable_planting, planted_at: 30.days.ago, garden: member.gardens.first, owner: member) }
|
||||
|
||||
describe "lists plantings" do
|
||||
it { expect(mail).to have_content "Progress report" }
|
||||
@@ -50,10 +50,10 @@ describe "Planting reminder email", :js do
|
||||
context "when member has some harvests" do
|
||||
# Bangs are used on the following 2 let blocks in order to ensure that the plantings are present
|
||||
# in the database before the spec is run.
|
||||
let!(:p1) { FactoryBot.create :predicatable_planting, garden: member.gardens.first, owner: member, planted_at: 20.days.ago }
|
||||
let!(:p2) { FactoryBot.create :predicatable_planting, garden: member.gardens.first, owner: member }
|
||||
let!(:h1) { FactoryBot.create :harvest, owner: member, planting: p1, harvested_at: 1.day.ago }
|
||||
let!(:h2) { FactoryBot.create :harvest, owner: member, planting: p2, harvested_at: 3.days.ago }
|
||||
let!(:p1) { FactoryBot.create(:predicatable_planting, garden: member.gardens.first, owner: member, planted_at: 20.days.ago) }
|
||||
let!(:p2) { FactoryBot.create(:predicatable_planting, garden: member.gardens.first, owner: member) }
|
||||
let!(:h1) { FactoryBot.create(:harvest, owner: member, planting: p1, harvested_at: 1.day.ago) }
|
||||
let!(:h2) { FactoryBot.create(:harvest, owner: member, planting: p2, harvested_at: 3.days.ago) }
|
||||
|
||||
describe "lists planting that are ready for harvest" do
|
||||
it { expect(mail).to have_content "Ready to harvest" }
|
||||
|
||||
@@ -4,10 +4,10 @@ require "rails_helper"
|
||||
require 'custom_matchers'
|
||||
|
||||
describe "Planting a crop", :js, :search do
|
||||
let!(:maize) { FactoryBot.create :maize }
|
||||
let(:garden) { FactoryBot.create :garden, owner: member, name: 'Orchard' }
|
||||
let!(:maize) { FactoryBot.create(:maize) }
|
||||
let(:garden) { FactoryBot.create(:garden, owner: member, name: 'Orchard') }
|
||||
let!(:planting) do
|
||||
FactoryBot.create :planting, garden:, owner: member, planted_at: Date.parse("2013-03-10")
|
||||
FactoryBot.create(:planting, garden:, owner: member, planted_at: Date.parse("2013-03-10"))
|
||||
end
|
||||
|
||||
before { Planting.reindex }
|
||||
|
||||
@@ -4,9 +4,9 @@ require "rails_helper"
|
||||
require 'custom_matchers'
|
||||
describe "Display a planting", :js do
|
||||
describe 'planting perennial' do
|
||||
let(:garden) { FactoryBot.create :garden, location: 'Edinburgh' }
|
||||
let(:garden) { FactoryBot.create(:garden, location: 'Edinburgh') }
|
||||
let(:crop) { FactoryBot.create(:crop, name: 'feijoa', perennial: true) }
|
||||
let(:planting) { FactoryBot.create :planting, crop:, garden:, owner: garden.owner }
|
||||
let(:planting) { FactoryBot.create(:planting, crop:, garden:, owner: garden.owner) }
|
||||
|
||||
describe 'no harvest to predict from' do
|
||||
before { visit planting_path(planting) }
|
||||
@@ -17,9 +17,9 @@ describe "Display a planting", :js do
|
||||
|
||||
describe 'harvests used to predict' do
|
||||
before do
|
||||
FactoryBot.create :harvest, planting: planting, crop: crop, harvested_at: '1 May 2019'
|
||||
FactoryBot.create :harvest, planting: planting, crop: crop, harvested_at: '18 June 2019'
|
||||
FactoryBot.create_list :harvest, 4, planting:, crop:, harvested_at: '18 August 2019'
|
||||
FactoryBot.create(:harvest, planting:, crop:, harvested_at: '1 May 2019')
|
||||
FactoryBot.create(:harvest, planting:, crop:, harvested_at: '18 June 2019')
|
||||
FactoryBot.create_list(:harvest, 4, planting:, crop:, harvested_at: '18 August 2019')
|
||||
end
|
||||
|
||||
before { visit planting_path(planting) }
|
||||
@@ -36,23 +36,23 @@ describe "Display a planting", :js do
|
||||
|
||||
before do
|
||||
# Near by planting with harvests
|
||||
nearby_garden = FactoryBot.create :garden, location: 'Greenwich, UK'
|
||||
nearby_planting = FactoryBot.create :planting, crop: crop,
|
||||
garden: nearby_garden, owner: nearby_garden.owner, planted_at: '1 January 2000'
|
||||
FactoryBot.create :harvest, planting: nearby_planting, crop: crop,
|
||||
harvested_at: '1 May 2019'
|
||||
FactoryBot.create :harvest, planting: nearby_planting, crop: crop,
|
||||
harvested_at: '18 June 2019'
|
||||
FactoryBot.create_list :harvest, 4, planting: nearby_planting, crop: crop,
|
||||
harvested_at: '18 August 2008'
|
||||
nearby_garden = FactoryBot.create(:garden, location: 'Greenwich, UK')
|
||||
nearby_planting = FactoryBot.create(:planting, crop:,
|
||||
garden: nearby_garden, owner: nearby_garden.owner, planted_at: '1 January 2000')
|
||||
FactoryBot.create(:harvest, planting: nearby_planting, crop:,
|
||||
harvested_at: '1 May 2019')
|
||||
FactoryBot.create(:harvest, planting: nearby_planting, crop:,
|
||||
harvested_at: '18 June 2019')
|
||||
FactoryBot.create_list(:harvest, 4, planting: nearby_planting, crop:,
|
||||
harvested_at: '18 August 2008')
|
||||
|
||||
# far away planting harvests
|
||||
faraway_garden = FactoryBot.create :garden, location: 'Amundsen-Scott Base, Antarctica'
|
||||
faraway_planting = FactoryBot.create :planting, garden: faraway_garden, crop: crop,
|
||||
owner: faraway_garden.owner, planted_at: '16 May 2001'
|
||||
faraway_garden = FactoryBot.create(:garden, location: 'Amundsen-Scott Base, Antarctica')
|
||||
faraway_planting = FactoryBot.create(:planting, garden: faraway_garden, crop:,
|
||||
owner: faraway_garden.owner, planted_at: '16 May 2001')
|
||||
|
||||
FactoryBot.create_list :harvest, 4, planting: faraway_planting, crop:,
|
||||
harvested_at: '18 December 2006'
|
||||
FactoryBot.create_list(:harvest, 4, planting: faraway_planting, crop:,
|
||||
harvested_at: '18 December 2006')
|
||||
end
|
||||
|
||||
before { visit planting_path(planting) }
|
||||
|
||||
@@ -8,25 +8,25 @@ describe "Display a planting", :js do
|
||||
before { visit planting_path(planting) }
|
||||
|
||||
context 'Perennial planted long ago' do
|
||||
let(:planting) { FactoryBot.create :perennial_planting }
|
||||
let(:planting) { FactoryBot.create(:perennial_planting) }
|
||||
|
||||
it { expect(page).to have_text 'Perennial' }
|
||||
end
|
||||
|
||||
context 'Perennial finished' do
|
||||
let(:planting) { FactoryBot.create :perennial_planting, planted_at: 6.years.ago, finished: true, finished_at: 1.year.ago }
|
||||
let(:planting) { FactoryBot.create(:perennial_planting, planted_at: 6.years.ago, finished: true, finished_at: 1.year.ago) }
|
||||
|
||||
it { expect(page).to have_text 'Perennial' }
|
||||
end
|
||||
|
||||
context 'Annual no predictions' do
|
||||
let(:planting) { FactoryBot.create :annual_planting }
|
||||
let(:planting) { FactoryBot.create(:annual_planting) }
|
||||
|
||||
it { expect(page).not_to have_text 'Finish expected' }
|
||||
end
|
||||
|
||||
context 'Annual with predicted finish' do
|
||||
let(:planting) { FactoryBot.create :predicatable_planting, planted_at: 2.weeks.ago }
|
||||
let(:planting) { FactoryBot.create(:predicatable_planting, planted_at: 2.weeks.ago) }
|
||||
|
||||
it { expect(page).to have_text '28%' }
|
||||
it { expect(page).to have_text '14/50 days' }
|
||||
@@ -35,7 +35,7 @@ describe "Display a planting", :js do
|
||||
end
|
||||
|
||||
context 'Annual finished' do
|
||||
let(:planting) { FactoryBot.create :annual_planting, planted_at: 100.days.ago, finished: true, finished_at: 1.day.ago }
|
||||
let(:planting) { FactoryBot.create(:annual_planting, planted_at: 100.days.ago, finished: true, finished_at: 1.day.ago) }
|
||||
|
||||
it { expect(page).to have_text "Planted #{I18n.l(planting.planted_at)}" }
|
||||
end
|
||||
@@ -48,7 +48,7 @@ describe "Display a planting", :js do
|
||||
|
||||
context 'Planting with harvest predictable' do
|
||||
let(:planting) do
|
||||
crop = FactoryBot.create :annual_crop
|
||||
crop = FactoryBot.create(:annual_crop)
|
||||
# 50 days to harvest
|
||||
FactoryBot.create(:harvest, harvested_at: 150.days.ago, crop:,
|
||||
planting: FactoryBot.create(:planting, planted_at: 200.days.ago, crop:))
|
||||
@@ -60,14 +60,14 @@ describe "Display a planting", :js do
|
||||
planting: FactoryBot.create(:planting, planted_at: 200.days.ago, crop:))
|
||||
crop.update_medians
|
||||
|
||||
FactoryBot.create :annual_planting, planted_at: 200.days.ago, crop:
|
||||
FactoryBot.create(:annual_planting, planted_at: 200.days.ago, crop:)
|
||||
end
|
||||
|
||||
it { expect(page).to have_text 'First harvest expected' }
|
||||
end
|
||||
|
||||
context 'with quantity' do
|
||||
let(:planting) { FactoryBot.create :planting, quantity: 100 }
|
||||
let(:planting) { FactoryBot.create(:planting, quantity: 100) }
|
||||
|
||||
it { expect(find('.plantingfact--quantity')).to have_text '100' }
|
||||
end
|
||||
@@ -78,8 +78,8 @@ describe "Display a planting", :js do
|
||||
before { visit planting_path(planting) }
|
||||
|
||||
context 'with matching seeds' do
|
||||
let(:seed) { FactoryBot.create :seed, saved_at: 1.month.ago, owner: member }
|
||||
let(:planting) { FactoryBot.create :planting, planted_at: 1.day.ago, crop: seed.crop, owner: member }
|
||||
let(:seed) { FactoryBot.create(:seed, saved_at: 1.month.ago, owner: member) }
|
||||
let(:planting) { FactoryBot.create(:planting, planted_at: 1.day.ago, crop: seed.crop, owner: member) }
|
||||
|
||||
it { expect(page).to have_text 'Is this from one of these plantings? ' }
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ describe 'Post a post' do
|
||||
end
|
||||
|
||||
context "editing a post" do
|
||||
let(:existing_post) { create :post, author: member }
|
||||
let(:existing_post) { create(:post, author: member) }
|
||||
|
||||
before do
|
||||
visit edit_post_path(existing_post)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe 'Members RSS feed' do
|
||||
let(:member) { create :member }
|
||||
let(:member) { create(:member) }
|
||||
|
||||
before { visit member_path(member, format: 'rss') }
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ require 'custom_matchers'
|
||||
describe "Seeds", :js, :search do
|
||||
context 'signed in' do
|
||||
include_context 'signed in member'
|
||||
let!(:maize) { create :maize }
|
||||
let!(:maize) { create(:maize) }
|
||||
|
||||
before { visit new_seed_path }
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ describe "seeds", js: true do
|
||||
context "signed in user" do
|
||||
include_context 'signed in member'
|
||||
xit "button on index to edit seed" do
|
||||
let!(:seed) { create :seed, owner: member }
|
||||
let!(:seed) { create(:seed, owner: member) }
|
||||
|
||||
before do
|
||||
visit seeds_path
|
||||
@@ -43,7 +43,7 @@ describe "seeds", js: true do
|
||||
# actually adding seeds is in spec/features/seeds_new_spec.rb
|
||||
|
||||
it "edit seeds" do
|
||||
seed = create :seed, owner: member
|
||||
seed = create(:seed, owner: member)
|
||||
visit seed_path(seed)
|
||||
click_link 'Actions'
|
||||
click_link 'Edit'
|
||||
@@ -54,7 +54,7 @@ describe "seeds", js: true do
|
||||
end
|
||||
|
||||
describe "delete seeds" do
|
||||
let(:seed) { FactoryBot.create :seed, owner: member }
|
||||
let(:seed) { FactoryBot.create(:seed, owner: member) }
|
||||
|
||||
before do
|
||||
visit seed_path(seed)
|
||||
@@ -71,25 +71,25 @@ describe "seeds", js: true do
|
||||
before { visit seed_path(seed) }
|
||||
|
||||
describe "view seeds with max and min days until maturity" do
|
||||
let(:seed) { FactoryBot.create :seed, days_until_maturity_min: 5, days_until_maturity_max: 7 }
|
||||
let(:seed) { FactoryBot.create(:seed, days_until_maturity_min: 5, days_until_maturity_max: 7) }
|
||||
|
||||
it { expect(find('.seedfacts--maturity')).to have_content("5–7") }
|
||||
end
|
||||
|
||||
describe "view seeds with only max days until maturity" do
|
||||
let(:seed) { FactoryBot.create :seed, days_until_maturity_max: 7 }
|
||||
let(:seed) { FactoryBot.create(:seed, days_until_maturity_max: 7) }
|
||||
|
||||
it { expect(find('.seedfacts--maturity')).to have_content("7") }
|
||||
end
|
||||
|
||||
describe "view seeds with only min days until maturity" do
|
||||
let(:seed) { FactoryBot.create :seed, days_until_maturity_min: 5 }
|
||||
let(:seed) { FactoryBot.create(:seed, days_until_maturity_min: 5) }
|
||||
|
||||
it { expect(find('.seedfacts--maturity')).to have_content("5") }
|
||||
end
|
||||
|
||||
describe "view seeds with neither max nor min days until maturity" do
|
||||
let(:seed) { FactoryBot.create :seed }
|
||||
let(:seed) { FactoryBot.create(:seed) }
|
||||
|
||||
it { expect(find('.seedfacts--maturity')).to have_content "unknown" }
|
||||
end
|
||||
|
||||
@@ -5,13 +5,13 @@ require 'custom_matchers'
|
||||
|
||||
describe "Seeds", :js do
|
||||
context 'signed in' do
|
||||
subject { page }
|
||||
|
||||
include_context 'signed in member'
|
||||
before { visit seed_path(seed) }
|
||||
|
||||
subject { page }
|
||||
|
||||
let(:member) { FactoryBot.create :member }
|
||||
let!(:seed) { FactoryBot.create :seed, owner: member }
|
||||
let(:member) { FactoryBot.create(:member) }
|
||||
let!(:seed) { FactoryBot.create(:seed, owner: member) }
|
||||
|
||||
it { is_expected.to have_content 'Add photo' }
|
||||
|
||||
@@ -21,7 +21,7 @@ describe "Seeds", :js do
|
||||
context 'has one photo' do
|
||||
before { seed.photos = [photo] }
|
||||
|
||||
let!(:photo) { FactoryBot.create :photo, title: 'hello photo' }
|
||||
let!(:photo) { FactoryBot.create(:photo, title: 'hello photo') }
|
||||
|
||||
it { is_expected.to have_xpath("//img[contains(@src,'#{photo.thumbnail_url}')]") }
|
||||
it { is_expected.to have_xpath("//a[contains(@href,'#{photo_path(photo)}')]") }
|
||||
@@ -30,7 +30,7 @@ describe "Seeds", :js do
|
||||
context 'has 50 photos' do
|
||||
before { seed.photos = photos }
|
||||
|
||||
let!(:photos) { FactoryBot.create_list :photo, 50 }
|
||||
let!(:photos) { FactoryBot.create_list(:photo, 50) }
|
||||
|
||||
it "shows newest photo" do
|
||||
expect(subject).to have_xpath("//img[contains(@src,'#{photos.last.thumbnail_url}')]")
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
require 'rails_helper'
|
||||
|
||||
shared_examples "crop suggest" do |resource|
|
||||
let!(:pea) { create :crop, name: 'pea' }
|
||||
let!(:pear) { create :pear }
|
||||
let!(:tomato) { create :tomato }
|
||||
let!(:roma) { create :roma }
|
||||
let!(:pea) { create(:crop, name: 'pea') }
|
||||
let!(:pear) { create(:pear) }
|
||||
let!(:tomato) { create(:tomato) }
|
||||
let!(:roma) { create(:roma) }
|
||||
|
||||
it "placeholder text in crop auto suggest field" do
|
||||
expect(page).to have_selector("input[placeholder='e.g. lettuce']")
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe "signin", js: true do
|
||||
let(:member) { FactoryBot.create :member }
|
||||
let(:recipient) { FactoryBot.create :member }
|
||||
let(:wrangler) { FactoryBot.create :crop_wrangling_member }
|
||||
let(:member) { FactoryBot.create(:member) }
|
||||
let(:recipient) { FactoryBot.create(:member) }
|
||||
let(:wrangler) { FactoryBot.create(:crop_wrangling_member) }
|
||||
|
||||
before do
|
||||
crop = FactoryBot.create :tomato
|
||||
crop = FactoryBot.create(:tomato)
|
||||
crop.reindex
|
||||
end
|
||||
|
||||
@@ -74,7 +74,7 @@ describe "signin", js: true do
|
||||
end
|
||||
|
||||
it "after crop wrangler signs in and crops await wrangling, show alert" do
|
||||
create :crop_request
|
||||
create(:crop_request)
|
||||
visit crops_path # some random page
|
||||
click_link 'Sign in'
|
||||
fill_in 'Login', with: wrangler.login_name
|
||||
@@ -88,7 +88,7 @@ describe "signin", js: true do
|
||||
# Ordinarily done by database_cleaner
|
||||
Member.where(login_name: 'tdawg').delete_all
|
||||
|
||||
create :member, login_name: 'tdawg', email: 'example.oauth.facebook@example.com'
|
||||
create(:member, login_name: 'tdawg', email: 'example.oauth.facebook@example.com')
|
||||
|
||||
# Start the test
|
||||
visit root_path
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe "signout" do
|
||||
let(:member) { create :member }
|
||||
let(:member) { create(:member) }
|
||||
|
||||
it "redirect to previous page after signout" do
|
||||
visit crops_path # some random page
|
||||
@@ -42,7 +42,7 @@ describe "signout" do
|
||||
end
|
||||
|
||||
it 'photos' do
|
||||
garden = FactoryBot.create :garden, owner: member
|
||||
garden = FactoryBot.create(:garden, owner: member)
|
||||
visit "/photos/new?id=#{garden.id}&type=garden"
|
||||
expect(page).to have_current_path new_member_session_path, ignore_query: true
|
||||
# expect(page).to have_http_status(200)
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe "timeline", js: true do
|
||||
let(:member) { FactoryBot.create :member }
|
||||
let(:friend1) { FactoryBot.create :member }
|
||||
let(:friend2) { FactoryBot.create :member }
|
||||
let(:member) { FactoryBot.create(:member) }
|
||||
let(:friend1) { FactoryBot.create(:member) }
|
||||
let(:friend2) { FactoryBot.create(:member) }
|
||||
|
||||
before do
|
||||
member.followed << friend1
|
||||
@@ -13,10 +13,10 @@ describe "timeline", js: true do
|
||||
end
|
||||
|
||||
describe 'visit timeline' do
|
||||
let!(:friend_planting) { FactoryBot.create :planting, owner: friend1, planted_at: 1.day.ago }
|
||||
let!(:friend_harvest) { FactoryBot.create :planting, owner: friend2, planted_at: 3.years.ago }
|
||||
let!(:finished_planting) { FactoryBot.create :finished_planting, owner: friend1 }
|
||||
let!(:no_planted_at_planting) { FactoryBot.create :planting, owner: friend2, planted_at: nil }
|
||||
let!(:friend_planting) { FactoryBot.create(:planting, owner: friend1, planted_at: 1.day.ago) }
|
||||
let!(:friend_harvest) { FactoryBot.create(:planting, owner: friend2, planted_at: 3.years.ago) }
|
||||
let!(:finished_planting) { FactoryBot.create(:finished_planting, owner: friend1) }
|
||||
let!(:no_planted_at_planting) { FactoryBot.create(:planting, owner: friend2, planted_at: nil) }
|
||||
|
||||
before do
|
||||
login_as(member)
|
||||
|
||||
@@ -4,8 +4,8 @@ require 'rails_helper'
|
||||
require 'capybara/email/rspec'
|
||||
|
||||
describe "unsubscribe" do
|
||||
let(:member) { create :member }
|
||||
let(:notification) { create :notification }
|
||||
let(:member) { create(:member) }
|
||||
let(:notification) { create(:notification) }
|
||||
|
||||
before { clear_emails }
|
||||
|
||||
|
||||
@@ -15,10 +15,10 @@ require 'rails_helper'
|
||||
RSpec.describe ButtonsHelper, type: :helper do
|
||||
before { allow(self).to receive(:can?).and_return(true) }
|
||||
|
||||
let(:garden) { FactoryBot.create :garden }
|
||||
let(:planting) { FactoryBot.create :planting }
|
||||
let(:harvest) { FactoryBot.create :harvest }
|
||||
let(:seed) { FactoryBot.create :seed }
|
||||
let(:garden) { FactoryBot.create(:garden) }
|
||||
let(:planting) { FactoryBot.create(:planting) }
|
||||
let(:harvest) { FactoryBot.create(:harvest) }
|
||||
let(:seed) { FactoryBot.create(:seed) }
|
||||
|
||||
describe 'add_photo_button' do
|
||||
it { expect(add_photo_button(garden)).to include "/photos/new?id=#{garden.id}&type=garden" }
|
||||
|
||||
@@ -5,8 +5,8 @@ require 'rails_helper'
|
||||
describe CropsHelper do
|
||||
describe "display_seed_availability" do
|
||||
before do
|
||||
@member = create :member
|
||||
@crop = create :tomato
|
||||
@member = create(:member)
|
||||
@crop = create(:tomato)
|
||||
end
|
||||
|
||||
context "with no seeds" do
|
||||
@@ -17,7 +17,7 @@ describe CropsHelper do
|
||||
|
||||
context "with an unknown quantity of seeds" do
|
||||
before do
|
||||
create :seed, crop: @crop, quantity: nil, owner: @member
|
||||
create(:seed, crop: @crop, quantity: nil, owner: @member)
|
||||
end
|
||||
|
||||
it 'renders' do
|
||||
@@ -29,12 +29,12 @@ describe CropsHelper do
|
||||
|
||||
context "with an quantity of seeds" do
|
||||
before do
|
||||
a_different_crop = create :apple
|
||||
a_different_crop = create(:apple)
|
||||
|
||||
create :seed, crop: @crop, quantity: 20, owner: @member
|
||||
create :seed, crop: @crop, quantity: 13, owner: @member
|
||||
create(:seed, crop: @crop, quantity: 20, owner: @member)
|
||||
create(:seed, crop: @crop, quantity: 13, owner: @member)
|
||||
|
||||
create :seed, crop: a_different_crop, quantity: 3, owner: @member
|
||||
create(:seed, crop: a_different_crop, quantity: 3, owner: @member)
|
||||
end
|
||||
|
||||
it 'renders' do
|
||||
|
||||
@@ -3,15 +3,15 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe EventHelper, type: :helper do
|
||||
let(:planting) { FactoryBot.create :planting }
|
||||
let(:harvest) { FactoryBot.create :harvest }
|
||||
let(:seed) { FactoryBot.create :seed }
|
||||
let(:post) { FactoryBot.create :post }
|
||||
let(:comment) { FactoryBot.create :comment }
|
||||
let(:photo) { FactoryBot.create :photo }
|
||||
|
||||
subject { resolve_model(event) }
|
||||
|
||||
let(:planting) { FactoryBot.create(:planting) }
|
||||
let(:harvest) { FactoryBot.create(:harvest) }
|
||||
let(:seed) { FactoryBot.create(:seed) }
|
||||
let(:post) { FactoryBot.create(:post) }
|
||||
let(:comment) { FactoryBot.create(:comment) }
|
||||
let(:photo) { FactoryBot.create(:photo) }
|
||||
|
||||
describe 'plantings' do
|
||||
let(:event) { OpenStruct.new(id: planting.id, event_type: 'planting') }
|
||||
|
||||
|
||||
@@ -3,16 +3,16 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe PhotosHelper do
|
||||
let(:crop) { FactoryBot.create :crop }
|
||||
let(:crop) { FactoryBot.create(:crop) }
|
||||
let(:crop_photo_of) { FactoryBot.create(:photo, source: 'openfarm') }
|
||||
let(:crop_photo_flickr) { FactoryBot.create(:photo, source: 'flickr') }
|
||||
|
||||
let(:garden) { FactoryBot.create :garden }
|
||||
let(:planting) { FactoryBot.create :planting, crop:, owner: garden.owner }
|
||||
let(:garden) { FactoryBot.create(:garden) }
|
||||
let(:planting) { FactoryBot.create(:planting, crop:, owner: garden.owner) }
|
||||
let(:planting_photo) { FactoryBot.create(:photo, owner: garden.owner) }
|
||||
let(:harvest) { FactoryBot.create :harvest, crop:, owner: garden.owner }
|
||||
let(:harvest) { FactoryBot.create(:harvest, crop:, owner: garden.owner) }
|
||||
let(:harvest_photo) { FactoryBot.create(:photo, owner: garden.owner) }
|
||||
let(:seed) { FactoryBot.create :seed, crop:, owner: garden.owner }
|
||||
let(:seed) { FactoryBot.create(:seed, crop:, owner: garden.owner) }
|
||||
let(:seed_photo) { FactoryBot.create(:photo, owner: garden.owner) }
|
||||
|
||||
describe "crops" do
|
||||
|
||||
@@ -76,9 +76,9 @@ describe 'Growstuff::OauthSignupAction' do
|
||||
@auth['info']['email'] = 'never.used.oauth@yahoo.com'
|
||||
|
||||
Member.where(email: @auth['info']['email']).delete_all
|
||||
@existing_member = create :member, email: @auth['info']['email'],
|
||||
@existing_member = create(:member, email: @auth['info']['email'],
|
||||
login_name: 'existing',
|
||||
preferred_avatar_uri: 'http://cl.jroo.me/z3/W/H/K/e/a.baa-very-cool-hat-you-.jpg'
|
||||
preferred_avatar_uri: 'http://cl.jroo.me/z3/W/H/K/e/a.baa-very-cool-hat-you-.jpg')
|
||||
|
||||
@member = @action.find_or_create_from_authorization(@auth)
|
||||
@authentication = @action.establish_authentication(@auth, @member)
|
||||
@@ -120,9 +120,9 @@ describe 'Growstuff::OauthSignupAction' do
|
||||
Member.where(email: @auth['info']['email']).delete_all
|
||||
Authentication.delete_all
|
||||
|
||||
@existing_member = create :member, email: @auth['info']['email'],
|
||||
@existing_member = create(:member, email: @auth['info']['email'],
|
||||
login_name: 'schrodingerscat',
|
||||
preferred_avatar_uri: 'http://cl.jroo.me/z3/W/H/K/e/a.baa-very-cool-hat-you-.jpg'
|
||||
preferred_avatar_uri: 'http://cl.jroo.me/z3/W/H/K/e/a.baa-very-cool-hat-you-.jpg')
|
||||
|
||||
@existing_authentication = @existing_member.authentications.create(provider: 'facebook',
|
||||
uid: '123545',
|
||||
|
||||
@@ -22,9 +22,9 @@ describe AlternateName do
|
||||
end
|
||||
|
||||
describe 'relationships' do
|
||||
let(:alternate_name) { FactoryBot.create :alternate_name, crop:, creator: member }
|
||||
let(:crop) { FactoryBot.create :crop }
|
||||
let(:member) { FactoryBot.create :member }
|
||||
let(:alternate_name) { FactoryBot.create(:alternate_name, crop:, creator: member) }
|
||||
let(:crop) { FactoryBot.create(:crop) }
|
||||
let(:member) { FactoryBot.create(:member) }
|
||||
|
||||
it { expect(alternate_name.crop).to eq crop }
|
||||
it { expect(alternate_name.creator).to eq member }
|
||||
|
||||
@@ -143,7 +143,7 @@ describe Crop do
|
||||
shared_examples 'has default photo' do
|
||||
it { expect(described_class.has_photos).to include(crop) }
|
||||
end
|
||||
let!(:crop) { FactoryBot.create :tomato }
|
||||
let!(:crop) { FactoryBot.create(:tomato) }
|
||||
|
||||
context 'with a planting photo' do
|
||||
let!(:photo) { FactoryBot.create(:photo, owner: planting.owner) }
|
||||
@@ -190,9 +190,9 @@ describe Crop do
|
||||
end
|
||||
|
||||
describe 'finding all photos' do
|
||||
let(:planting) { FactoryBot.create :planting, crop: }
|
||||
let(:harvest) { FactoryBot.create :harvest, crop: }
|
||||
let(:seed) { FactoryBot.create :seed, crop: }
|
||||
let(:planting) { FactoryBot.create(:planting, crop:) }
|
||||
let(:harvest) { FactoryBot.create(:harvest, crop:) }
|
||||
let(:seed) { FactoryBot.create(:seed, crop:) }
|
||||
|
||||
before do
|
||||
# Add photos to all
|
||||
@@ -302,7 +302,7 @@ describe Crop do
|
||||
let(:crop1_planting) { crop1.plantings.first }
|
||||
let(:crop2_planting) { crop2.plantings.first }
|
||||
|
||||
let(:member) { FactoryBot.create :member, login_name: 'pikachu' }
|
||||
let(:member) { FactoryBot.create(:member, login_name: 'pikachu') }
|
||||
|
||||
describe 'lists interesting crops' do
|
||||
before do
|
||||
|
||||
@@ -30,7 +30,7 @@ describe GardenType do
|
||||
end
|
||||
|
||||
describe "does not delete gardens when deleted" do
|
||||
before { FactoryBot.create :garden, garden_type: }
|
||||
before { FactoryBot.create(:garden, garden_type:) }
|
||||
|
||||
let(:garden_type) { FactoryBot.create(:garden_type, name: "Massive Flower Pot") }
|
||||
|
||||
|
||||
@@ -298,8 +298,8 @@ describe Harvest do
|
||||
end
|
||||
|
||||
it 'excludes deleted members' do
|
||||
member = FactoryBot.create :member
|
||||
harvest = FactoryBot.create :harvest, owner: member
|
||||
member = FactoryBot.create(:member)
|
||||
harvest = FactoryBot.create(:harvest, owner: member)
|
||||
expect(described_class.joins(:owner).all).to include(harvest)
|
||||
member.destroy
|
||||
expect(described_class.joins(:owner).all).not_to include(harvest)
|
||||
|
||||
@@ -5,7 +5,7 @@ require 'rails_helper'
|
||||
describe Like do
|
||||
let(:member) { FactoryBot.create(:member) }
|
||||
let(:post) { FactoryBot.create(:post) }
|
||||
let(:photo) { FactoryBot.create :photo }
|
||||
let(:photo) { FactoryBot.create(:photo) }
|
||||
|
||||
context 'existing like' do
|
||||
before do
|
||||
|
||||
@@ -35,7 +35,7 @@ describe Photo do
|
||||
it { expect(planting.crop.default_photo).to eq photo }
|
||||
|
||||
describe 'and someone likes the old photo' do
|
||||
before { FactoryBot.create :like, likeable: old_photo }
|
||||
before { FactoryBot.create(:like, likeable: old_photo) }
|
||||
|
||||
it { expect(planting.default_photo).to eq old_photo }
|
||||
it { expect(planting.crop.default_photo).to eq old_photo }
|
||||
@@ -185,17 +185,17 @@ describe Photo do
|
||||
end
|
||||
|
||||
describe 'assocations' do
|
||||
let(:harvest_crop) { FactoryBot.create :crop, name: 'harvest_crop' }
|
||||
let!(:harvest) { FactoryBot.create :harvest, owner: member, crop: harvest_crop }
|
||||
let!(:harvest_photo) { FactoryBot.create :photo, owner: member }
|
||||
let(:harvest_crop) { FactoryBot.create(:crop, name: 'harvest_crop') }
|
||||
let!(:harvest) { FactoryBot.create(:harvest, owner: member, crop: harvest_crop) }
|
||||
let!(:harvest_photo) { FactoryBot.create(:photo, owner: member) }
|
||||
|
||||
let(:planting_crop) { FactoryBot.create :crop, name: 'planting_crop' }
|
||||
let!(:planting) { FactoryBot.create :planting, owner: member, crop: planting_crop }
|
||||
let!(:planting_photo) { FactoryBot.create :photo, owner: member }
|
||||
let(:planting_crop) { FactoryBot.create(:crop, name: 'planting_crop') }
|
||||
let!(:planting) { FactoryBot.create(:planting, owner: member, crop: planting_crop) }
|
||||
let!(:planting_photo) { FactoryBot.create(:photo, owner: member) }
|
||||
|
||||
let(:seed_crop) { FactoryBot.create :crop, name: 'seed_crop' }
|
||||
let!(:seed) { FactoryBot.create :seed, owner: member, crop: seed_crop }
|
||||
let!(:seed_photo) { FactoryBot.create :photo, owner: member }
|
||||
let(:seed_crop) { FactoryBot.create(:crop, name: 'seed_crop') }
|
||||
let!(:seed) { FactoryBot.create(:seed, owner: member, crop: seed_crop) }
|
||||
let!(:seed_photo) { FactoryBot.create(:photo, owner: member) }
|
||||
|
||||
before do
|
||||
harvest.photos << harvest_photo
|
||||
@@ -239,7 +239,7 @@ describe Photo do
|
||||
|
||||
describe 'Elastic search indexing', search: true do
|
||||
let!(:planting) { FactoryBot.create(:planting, :reindex, owner: photo.owner) }
|
||||
let!(:crop) { FactoryBot.create :crop, :reindex }
|
||||
let!(:crop) { FactoryBot.create(:crop, :reindex) }
|
||||
|
||||
before do
|
||||
planting.photos << photo
|
||||
|
||||
@@ -11,7 +11,7 @@ describe Planting do
|
||||
describe 'planting lifespan predictions' do
|
||||
context 'no predications data yet' do
|
||||
describe 'planting planted, not finished' do
|
||||
let(:planting) { FactoryBot.create :planting, planted_at: 30.days.ago, finished_at: nil, finished: false }
|
||||
let(:planting) { FactoryBot.create(:planting, planted_at: 30.days.ago, finished_at: nil, finished: false) }
|
||||
|
||||
it { expect(planting.crop.median_lifespan).to be_nil }
|
||||
it { expect(planting.expected_lifespan).to be_nil }
|
||||
@@ -20,7 +20,7 @@ describe Planting do
|
||||
end
|
||||
|
||||
describe 'planting not planted yet' do
|
||||
let(:planting) { FactoryBot.create :planting, planted_at: nil, finished_at: nil, finished: false }
|
||||
let(:planting) { FactoryBot.create(:planting, planted_at: nil, finished_at: nil, finished: false) }
|
||||
|
||||
it { expect(planting.crop.median_lifespan).to be_nil }
|
||||
it { expect(planting.expected_lifespan).to be_nil }
|
||||
@@ -29,7 +29,7 @@ describe Planting do
|
||||
end
|
||||
|
||||
describe 'planting finished, no planted_at' do
|
||||
let(:planting) { FactoryBot.create :planting, planted_at: nil, finished_at: 1.day.ago, finished: true }
|
||||
let(:planting) { FactoryBot.create(:planting, planted_at: nil, finished_at: 1.day.ago, finished: true) }
|
||||
|
||||
it { expect(planting.crop.median_lifespan).to be_nil }
|
||||
it { expect(planting.expected_lifespan).to be_nil }
|
||||
@@ -38,7 +38,7 @@ describe Planting do
|
||||
end
|
||||
|
||||
describe 'planting all finished' do
|
||||
let(:planting) { FactoryBot.create :planting, planted_at: 30.days.ago, finished_at: 10.days.ago, finished: true }
|
||||
let(:planting) { FactoryBot.create(:planting, planted_at: 30.days.ago, finished_at: 10.days.ago, finished: true) }
|
||||
|
||||
it { expect(planting.crop.median_lifespan).to be_nil }
|
||||
it { expect(planting.expected_lifespan).to eq(20) }
|
||||
@@ -49,18 +49,18 @@ describe Planting do
|
||||
|
||||
context 'lots of data' do
|
||||
before do
|
||||
FactoryBot.create :planting, crop: planting.crop, planted_at: 10.days.ago
|
||||
FactoryBot.create :planting, crop: planting.crop, planted_at: 100.days.ago, finished_at: 50.days.ago
|
||||
FactoryBot.create :planting, crop: planting.crop, planted_at: 100.days.ago, finished_at: 51.days.ago
|
||||
FactoryBot.create :planting, crop: planting.crop, planted_at: 2.years.ago, finished_at: 50.days.ago
|
||||
FactoryBot.create :planting, crop: planting.crop, planted_at: 150.days.ago, finished_at: 100.days.ago
|
||||
FactoryBot.create(:planting, crop: planting.crop, planted_at: 10.days.ago)
|
||||
FactoryBot.create(:planting, crop: planting.crop, planted_at: 100.days.ago, finished_at: 50.days.ago)
|
||||
FactoryBot.create(:planting, crop: planting.crop, planted_at: 100.days.ago, finished_at: 51.days.ago)
|
||||
FactoryBot.create(:planting, crop: planting.crop, planted_at: 2.years.ago, finished_at: 50.days.ago)
|
||||
FactoryBot.create(:planting, crop: planting.crop, planted_at: 150.days.ago, finished_at: 100.days.ago)
|
||||
planting.crop.update_lifespan_medians
|
||||
end
|
||||
|
||||
it { expect(planting.crop.median_lifespan).to eq 50 }
|
||||
|
||||
describe 'planting 30 days ago, not finished' do
|
||||
let(:planting) { FactoryBot.create :planting, planted_at: 30.days.ago }
|
||||
let(:planting) { FactoryBot.create(:planting, planted_at: 30.days.ago) }
|
||||
|
||||
# 30 / 50 = 60%
|
||||
it { expect(planting.percentage_grown).to eq 60.0 }
|
||||
@@ -71,8 +71,8 @@ describe Planting do
|
||||
end
|
||||
|
||||
describe 'child crop uses parent data' do
|
||||
let(:child_crop) { FactoryBot.create :crop, parent: crop, name: 'child' }
|
||||
let(:child_planting) { FactoryBot.create :planting, crop: child_crop, planted_at: 30.days.ago }
|
||||
let(:child_crop) { FactoryBot.create(:crop, parent: crop, name: 'child') }
|
||||
let(:child_planting) { FactoryBot.create(:planting, crop: child_crop, planted_at: 30.days.ago) }
|
||||
|
||||
# not data for this crop
|
||||
it { expect(child_crop.median_lifespan).to be_nil }
|
||||
@@ -85,19 +85,19 @@ describe Planting do
|
||||
end
|
||||
|
||||
describe 'planting not planted yet' do
|
||||
let(:planting) { FactoryBot.create :planting, planted_at: nil, finished_at: nil }
|
||||
let(:planting) { FactoryBot.create(:planting, planted_at: nil, finished_at: nil) }
|
||||
|
||||
it { expect(planting.percentage_grown).to eq 0 }
|
||||
end
|
||||
|
||||
describe 'planting finished 10 days, but was never planted' do
|
||||
let(:planting) { FactoryBot.create :planting, planted_at: nil, finished_at: 10.days.ago }
|
||||
let(:planting) { FactoryBot.create(:planting, planted_at: nil, finished_at: 10.days.ago) }
|
||||
|
||||
it { expect(planting.percentage_grown).to eq 100 }
|
||||
end
|
||||
|
||||
describe 'planted 30 days ago, finished 10 days ago' do
|
||||
let(:planting) { FactoryBot.create :planting, planted_at: 30.days.ago, finished_at: 10.days.ago }
|
||||
let(:planting) { FactoryBot.create(:planting, planted_at: 30.days.ago, finished_at: 10.days.ago) }
|
||||
|
||||
it { expect(planting.age_in_days).to eq 20 }
|
||||
it { expect(planting.percentage_grown).to eq 100 }
|
||||
@@ -107,7 +107,7 @@ describe Planting do
|
||||
|
||||
describe 'planting first harvest preductions' do
|
||||
context 'no data' do
|
||||
let(:planting) { FactoryBot.create :planting }
|
||||
let(:planting) { FactoryBot.create(:planting) }
|
||||
|
||||
it { expect(planting.crop.median_days_to_first_harvest).to be_nil }
|
||||
it { expect(planting.crop.median_days_to_last_harvest).to be_nil }
|
||||
@@ -117,7 +117,7 @@ describe Planting do
|
||||
end
|
||||
|
||||
context 'lots of data' do
|
||||
let(:crop) { FactoryBot.create :crop }
|
||||
let(:crop) { FactoryBot.create(:crop) }
|
||||
# this is a method so it creates a new one each time
|
||||
|
||||
def one_hundred_day_old_planting
|
||||
@@ -142,20 +142,20 @@ describe Planting do
|
||||
it { expect(crop.median_days_to_first_harvest).to eq(20) }
|
||||
|
||||
describe 'sets median time to harvest' do
|
||||
let(:planting) { FactoryBot.create :planting, crop:, planted_at: Time.zone.today }
|
||||
let(:planting) { FactoryBot.create(:planting, crop:, planted_at: Time.zone.today) }
|
||||
|
||||
it { expect(planting.first_harvest_predicted_at).to eq(Time.zone.today + 20.days) }
|
||||
end
|
||||
|
||||
describe 'harvest still growing' do
|
||||
let(:planting) { FactoryBot.create :planting, crop:, planted_at: Time.zone.today }
|
||||
let(:planting) { FactoryBot.create(:planting, crop:, planted_at: Time.zone.today) }
|
||||
|
||||
it { expect(planting.before_harvest_time?).to be true }
|
||||
it { expect(planting.harvest_time?).to be false }
|
||||
end
|
||||
|
||||
describe 'harvesting ready now' do
|
||||
let(:planting) { FactoryBot.create :planting, crop:, planted_at: 21.days.ago }
|
||||
let(:planting) { FactoryBot.create(:planting, crop:, planted_at: 21.days.ago) }
|
||||
|
||||
it { expect(planting.first_harvest_predicted_at).to eq(1.day.ago.to_date) }
|
||||
it { expect(planting.before_harvest_time?).to be false }
|
||||
@@ -164,7 +164,7 @@ describe Planting do
|
||||
end
|
||||
|
||||
describe 'planting has no harvests' do
|
||||
let(:planting) { FactoryBot.create :planting }
|
||||
let(:planting) { FactoryBot.create(:planting) }
|
||||
|
||||
before do
|
||||
planting.update_harvest_days!
|
||||
@@ -176,7 +176,7 @@ describe Planting do
|
||||
end
|
||||
|
||||
describe 'planting has first harvest' do
|
||||
let(:planting) { FactoryBot.create :planting, planted_at: 100.days.ago }
|
||||
let(:planting) { FactoryBot.create(:planting, planted_at: 100.days.ago) }
|
||||
|
||||
before do
|
||||
FactoryBot.create(:harvest,
|
||||
@@ -194,11 +194,11 @@ describe Planting do
|
||||
end
|
||||
|
||||
describe 'planting has last harvest' do
|
||||
let(:planting) { FactoryBot.create :planting, planted_at: 100.days.ago, finished_at: 1.day.ago, finished: true }
|
||||
let(:planting) { FactoryBot.create(:planting, planted_at: 100.days.ago, finished_at: 1.day.ago, finished: true) }
|
||||
|
||||
before do
|
||||
FactoryBot.create :harvest, planting: planting, crop: planting.crop, harvested_at: 90.days.ago
|
||||
FactoryBot.create :harvest, planting: planting, crop: planting.crop, harvested_at: 10.days.ago
|
||||
FactoryBot.create(:harvest, planting:, crop: planting.crop, harvested_at: 90.days.ago)
|
||||
FactoryBot.create(:harvest, planting:, crop: planting.crop, harvested_at: 10.days.ago)
|
||||
planting.update_harvest_days!
|
||||
planting.crop.update_harvest_medians
|
||||
end
|
||||
@@ -221,9 +221,9 @@ describe Planting do
|
||||
|
||||
describe 'harvests used to predict' do
|
||||
before do
|
||||
FactoryBot.create :harvest, planting: planting, crop: crop, harvested_at: '1 May 2019'
|
||||
FactoryBot.create :harvest, planting: planting, crop: crop, harvested_at: '18 June 2019'
|
||||
FactoryBot.create_list :harvest, 4, planting:, crop:, harvested_at: '18 August 2019'
|
||||
FactoryBot.create(:harvest, planting:, crop:, harvested_at: '1 May 2019')
|
||||
FactoryBot.create(:harvest, planting:, crop:, harvested_at: '18 June 2019')
|
||||
FactoryBot.create_list(:harvest, 4, planting:, crop:, harvested_at: '18 August 2019')
|
||||
end
|
||||
|
||||
it { expect(planting.harvest_months).to eq(5 => 1, 6 => 1, 8 => 4) }
|
||||
@@ -231,30 +231,30 @@ describe Planting do
|
||||
|
||||
describe 'nearby plantings used to predict' do
|
||||
# Note the locations used need to be stubbed in geocoder
|
||||
let(:garden) { FactoryBot.create :garden, location: 'Edinburgh', owner: garden_owner }
|
||||
let(:garden) { FactoryBot.create(:garden, location: 'Edinburgh', owner: garden_owner) }
|
||||
|
||||
before do
|
||||
# Near by planting with harvests
|
||||
nearby_garden = FactoryBot.create :garden, location: 'Greenwich, UK'
|
||||
nearby_garden = FactoryBot.create(:garden, location: 'Greenwich, UK')
|
||||
nearby_planting = FactoryBot.create(:planting,
|
||||
crop:,
|
||||
garden: nearby_garden,
|
||||
owner: nearby_garden.owner,
|
||||
planted_at: '1 January 2000')
|
||||
FactoryBot.create :harvest, planting: nearby_planting, crop: crop,
|
||||
harvested_at: '1 May 2019'
|
||||
FactoryBot.create :harvest, planting: nearby_planting, crop: crop,
|
||||
harvested_at: '18 June 2019'
|
||||
FactoryBot.create_list :harvest, 4, planting: nearby_planting, crop: crop,
|
||||
harvested_at: '18 August 2008'
|
||||
FactoryBot.create(:harvest, planting: nearby_planting, crop:,
|
||||
harvested_at: '1 May 2019')
|
||||
FactoryBot.create(:harvest, planting: nearby_planting, crop:,
|
||||
harvested_at: '18 June 2019')
|
||||
FactoryBot.create_list(:harvest, 4, planting: nearby_planting, crop:,
|
||||
harvested_at: '18 August 2008')
|
||||
|
||||
# far away planting harvests
|
||||
faraway_garden = FactoryBot.create :garden, location: 'Amundsen-Scott Base, Antarctica'
|
||||
faraway_planting = FactoryBot.create :planting, garden: faraway_garden, crop: crop,
|
||||
owner: faraway_garden.owner, planted_at: '16 May 2001'
|
||||
faraway_garden = FactoryBot.create(:garden, location: 'Amundsen-Scott Base, Antarctica')
|
||||
faraway_planting = FactoryBot.create(:planting, garden: faraway_garden, crop:,
|
||||
owner: faraway_garden.owner, planted_at: '16 May 2001')
|
||||
|
||||
FactoryBot.create_list :harvest, 4, planting: faraway_planting, crop:,
|
||||
harvested_at: '18 December 2006'
|
||||
FactoryBot.create_list(:harvest, 4, planting: faraway_planting, crop:,
|
||||
harvested_at: '18 December 2006')
|
||||
end
|
||||
|
||||
it { expect(planting.harvest_months).to eq(5 => 1, 6 => 1, 8 => 4) }
|
||||
@@ -280,17 +280,17 @@ describe Planting do
|
||||
|
||||
describe '#planted?' do
|
||||
it "is false for future plantings" do
|
||||
planting = FactoryBot.create :planting, planted_at: Time.zone.today + 1
|
||||
planting = FactoryBot.create(:planting, planted_at: Time.zone.today + 1)
|
||||
expect(planting.planted?).to be(false)
|
||||
end
|
||||
|
||||
it "is false for never planted" do
|
||||
planting = FactoryBot.create :planting, planted_at: nil
|
||||
planting = FactoryBot.create(:planting, planted_at: nil)
|
||||
expect(planting.planted?).to be(false)
|
||||
end
|
||||
|
||||
it "is true for past plantings" do
|
||||
planting = FactoryBot.create :planting, planted_at: Time.zone.today - 1
|
||||
planting = FactoryBot.create(:planting, planted_at: Time.zone.today - 1)
|
||||
expect(planting.planted?).to be(true)
|
||||
end
|
||||
end
|
||||
@@ -520,8 +520,8 @@ describe Planting do
|
||||
end
|
||||
|
||||
context 'ancestry' do
|
||||
let(:parent_seed) { FactoryBot.create :seed }
|
||||
let(:planting) { FactoryBot.create :planting, parent_seed: }
|
||||
let(:parent_seed) { FactoryBot.create(:seed) }
|
||||
let(:planting) { FactoryBot.create(:planting, parent_seed:) }
|
||||
|
||||
it "planting has a parent seed" do
|
||||
expect(planting.parent_seed).to eq(parent_seed)
|
||||
@@ -532,7 +532,7 @@ describe Planting do
|
||||
end
|
||||
|
||||
describe 'grandchildren' do
|
||||
let(:grandchild_seed) { FactoryBot.create :seed, parent_planting: planting }
|
||||
let(:grandchild_seed) { FactoryBot.create(:seed, parent_planting: planting) }
|
||||
|
||||
it { expect(grandchild_seed.parent_planting).to eq planting }
|
||||
it { expect(grandchild_seed.parent_planting.parent_seed).to eq parent_seed }
|
||||
@@ -540,12 +540,12 @@ describe Planting do
|
||||
end
|
||||
|
||||
describe 'active scope' do
|
||||
let(:member) { FactoryBot.create :member }
|
||||
let(:member) { FactoryBot.create(:member) }
|
||||
let!(:planting) do
|
||||
FactoryBot.create :planting, owner: member, garden: member.gardens.first
|
||||
FactoryBot.create(:planting, owner: member, garden: member.gardens.first)
|
||||
end
|
||||
let!(:finished_planting) do
|
||||
FactoryBot.create :finished_planting, owner: member, garden: member.gardens.first
|
||||
FactoryBot.create(:finished_planting, owner: member, garden: member.gardens.first)
|
||||
end
|
||||
|
||||
it { expect(member.plantings.active).to include(planting) }
|
||||
@@ -553,14 +553,14 @@ describe Planting do
|
||||
end
|
||||
|
||||
describe 'homepage', :search do
|
||||
let!(:interesting_planting) { FactoryBot.create :planting, :reindex, :with_photo }
|
||||
let!(:finished_interesting_planting) { FactoryBot.create :finished_planting, :reindex, :with_photo }
|
||||
let!(:planting) { FactoryBot.create :planting, :reindex }
|
||||
subject { described_class.homepage_records(100) }
|
||||
|
||||
let!(:interesting_planting) { FactoryBot.create(:planting, :reindex, :with_photo) }
|
||||
let!(:finished_interesting_planting) { FactoryBot.create(:finished_planting, :reindex, :with_photo) }
|
||||
let!(:planting) { FactoryBot.create(:planting, :reindex) }
|
||||
|
||||
before { described_class.reindex }
|
||||
|
||||
subject { described_class.homepage_records(100) }
|
||||
|
||||
it { expect(subject.count).to eq 2 }
|
||||
it { expect(subject.map(&:id)).to eq([interesting_planting.id.to_s, finished_interesting_planting.id.to_s]) }
|
||||
end
|
||||
|
||||
@@ -174,7 +174,7 @@ describe Post do
|
||||
end
|
||||
|
||||
it 'excludes deleted members' do
|
||||
post = FactoryBot.create :post, author: member
|
||||
post = FactoryBot.create(:post, author: member)
|
||||
expect(described_class.joins(:author).all).to include(post)
|
||||
member.destroy
|
||||
expect(described_class.joins(:author).all).not_to include(post)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe Seed do
|
||||
let(:owner) { FactoryBot.create :owner, login_name: 'tamateapokaiwhenua' }
|
||||
let(:owner) { FactoryBot.create(:owner, login_name: 'tamateapokaiwhenua') }
|
||||
let(:seed) { FactoryBot.build(:seed, owner:) }
|
||||
|
||||
it 'saves a basic seed' do
|
||||
@@ -153,7 +153,7 @@ describe Seed do
|
||||
end
|
||||
|
||||
context 'photos' do
|
||||
let(:seed) { FactoryBot.create :seed }
|
||||
let(:seed) { FactoryBot.create(:seed) }
|
||||
|
||||
before { seed.photos << FactoryBot.create(:photo, owner: seed.owner) }
|
||||
|
||||
@@ -163,8 +163,8 @@ describe Seed do
|
||||
end
|
||||
|
||||
context 'ancestry' do
|
||||
let(:parent_planting) { FactoryBot.create :planting }
|
||||
let(:seed) { FactoryBot.create :seed, parent_planting:, owner: parent_planting.owner }
|
||||
let(:parent_planting) { FactoryBot.create(:planting) }
|
||||
let(:seed) { FactoryBot.create(:seed, parent_planting:, owner: parent_planting.owner) }
|
||||
|
||||
it "seed has a parent planting" do
|
||||
expect(seed.parent_planting).to eq(parent_planting)
|
||||
@@ -200,14 +200,14 @@ describe Seed do
|
||||
end
|
||||
|
||||
describe 'homepage', :search do
|
||||
let!(:tradable_seed) { FactoryBot.create :tradable_seed, :reindex, finished: false }
|
||||
let!(:finished_seed) { FactoryBot.create :tradable_seed, :reindex, finished: true }
|
||||
let!(:untradable_seed) { FactoryBot.create :untradable_seed, :reindex }
|
||||
subject { described_class.homepage_records(100) }
|
||||
|
||||
let!(:tradable_seed) { FactoryBot.create(:tradable_seed, :reindex, finished: false) }
|
||||
let!(:finished_seed) { FactoryBot.create(:tradable_seed, :reindex, finished: true) }
|
||||
let!(:untradable_seed) { FactoryBot.create(:untradable_seed, :reindex) }
|
||||
|
||||
before { described_class.reindex }
|
||||
|
||||
subject { described_class.homepage_records(100) }
|
||||
|
||||
it { expect(subject.count).to eq 1 }
|
||||
it { expect(subject.first.id).to eq tradable_seed.id.to_s }
|
||||
end
|
||||
|
||||
@@ -6,7 +6,7 @@ RSpec.describe 'Crops', type: :request do
|
||||
subject { JSON.parse response.body }
|
||||
|
||||
let(:headers) { { 'Accept' => 'application/vnd.api+json' } }
|
||||
let!(:crop) { FactoryBot.create :crop }
|
||||
let!(:crop) { FactoryBot.create(:crop) }
|
||||
let(:crop_encoded_as_json_api) do
|
||||
{ "id" => crop.id.to_s,
|
||||
"type" => "crops",
|
||||
|
||||
@@ -6,7 +6,7 @@ RSpec.describe 'Gardens', type: :request do
|
||||
subject { JSON.parse response.body }
|
||||
|
||||
let(:headers) { { 'Accept' => 'application/vnd.api+json' } }
|
||||
let!(:garden) { FactoryBot.create :garden }
|
||||
let!(:garden) { FactoryBot.create(:garden) }
|
||||
let(:garden_encoded_as_json_api) do
|
||||
{ "id" => garden.id.to_s,
|
||||
"type" => "gardens",
|
||||
|
||||
@@ -6,7 +6,7 @@ RSpec.describe 'Harvests', type: :request do
|
||||
subject { JSON.parse response.body }
|
||||
|
||||
let(:headers) { { 'Accept' => 'application/vnd.api+json' } }
|
||||
let!(:harvest) { FactoryBot.create :harvest }
|
||||
let!(:harvest) { FactoryBot.create(:harvest) }
|
||||
let(:harvest_encoded_as_json_api) do
|
||||
{ "id" => harvest.id.to_s,
|
||||
"type" => "harvests",
|
||||
|
||||
@@ -6,7 +6,7 @@ RSpec.describe 'Members', type: :request do
|
||||
subject { JSON.parse response.body }
|
||||
|
||||
let(:headers) { { 'Accept' => 'application/vnd.api+json' } }
|
||||
let!(:member) { FactoryBot.create :member }
|
||||
let!(:member) { FactoryBot.create(:member) }
|
||||
let(:member_encoded_as_json_api) do
|
||||
{ "id" => member.id.to_s,
|
||||
"type" => "members",
|
||||
|
||||
@@ -6,7 +6,7 @@ RSpec.describe 'Photos', type: :request do
|
||||
subject { JSON.parse response.body }
|
||||
|
||||
let(:headers) { { 'Accept' => 'application/vnd.api+json' } }
|
||||
let!(:photo) { FactoryBot.create :photo }
|
||||
let!(:photo) { FactoryBot.create(:photo) }
|
||||
let(:photo_encoded_as_json_api) do
|
||||
{ "id" => photo.id.to_s,
|
||||
"type" => "photos",
|
||||
|
||||
@@ -6,7 +6,7 @@ RSpec.describe 'Plantings', type: :request do
|
||||
subject { JSON.parse response.body }
|
||||
|
||||
let(:headers) { { 'Accept' => 'application/vnd.api+json' } }
|
||||
let!(:planting) { FactoryBot.create :planting }
|
||||
let!(:planting) { FactoryBot.create(:planting) }
|
||||
let(:planting_encoded_as_json_api) do
|
||||
{ "id" => planting.id.to_s,
|
||||
"type" => "plantings",
|
||||
|
||||
@@ -6,7 +6,7 @@ RSpec.describe 'Photos', type: :request do
|
||||
subject { JSON.parse response.body }
|
||||
|
||||
let(:headers) { { 'Accept' => 'application/vnd.api+json' } }
|
||||
let!(:seed) { FactoryBot.create :seed }
|
||||
let!(:seed) { FactoryBot.create(:seed) }
|
||||
let(:seed_encoded_as_json_api) do
|
||||
{ "id" => seed.id.to_s,
|
||||
"type" => "seeds",
|
||||
|
||||
@@ -17,9 +17,9 @@ RSpec.describe CropSearchService, type: :service do
|
||||
|
||||
before do
|
||||
# Alternate name
|
||||
FactoryBot.create :alternate_name, name: 'fungus', crop: mushroom
|
||||
FactoryBot.create(:alternate_name, name: 'fungus', crop: mushroom)
|
||||
# scientific name
|
||||
FactoryBot.create :scientific_name, name: 'Agaricus bisporus', crop: mushroom
|
||||
FactoryBot.create(:scientific_name, name: 'Agaricus bisporus', crop: mushroom)
|
||||
|
||||
# Requested and rejected
|
||||
FactoryBot.create(:rejected_crop, name: 'rejected mushroom')
|
||||
@@ -47,20 +47,20 @@ RSpec.describe CropSearchService, type: :service do
|
||||
|
||||
describe 'biased' do
|
||||
# Make some crops with planting counts
|
||||
let!(:mushroom_parent) { FactoryBot.create :crop, name: 'mushroom' }
|
||||
let!(:oyster) { FactoryBot.create :crop, name: 'oyster mushroom', parent: mushroom_parent }
|
||||
let!(:shitake) { FactoryBot.create :crop, name: 'shitake mushroom', parent: mushroom_parent }
|
||||
let!(:common) { FactoryBot.create :crop, name: 'common mushroom', parent: mushroom_parent }
|
||||
let!(:brown) { FactoryBot.create :crop, name: 'brown mushroom', parent: mushroom_parent }
|
||||
let!(:white) { FactoryBot.create :crop, name: 'white mushroom', parent: mushroom_parent }
|
||||
let!(:mushroom_parent) { FactoryBot.create(:crop, name: 'mushroom') }
|
||||
let!(:oyster) { FactoryBot.create(:crop, name: 'oyster mushroom', parent: mushroom_parent) }
|
||||
let!(:shitake) { FactoryBot.create(:crop, name: 'shitake mushroom', parent: mushroom_parent) }
|
||||
let!(:common) { FactoryBot.create(:crop, name: 'common mushroom', parent: mushroom_parent) }
|
||||
let!(:brown) { FactoryBot.create(:crop, name: 'brown mushroom', parent: mushroom_parent) }
|
||||
let!(:white) { FactoryBot.create(:crop, name: 'white mushroom', parent: mushroom_parent) }
|
||||
|
||||
describe 'biased to higher planting counts' do
|
||||
subject { search('mushroom') }
|
||||
|
||||
before do
|
||||
# Having plantings should bring these crops to the top of the search results
|
||||
FactoryBot.create_list :planting, 10, crop: white
|
||||
FactoryBot.create_list :planting, 4, crop: shitake
|
||||
FactoryBot.create_list(:planting, 10, crop: white)
|
||||
FactoryBot.create_list(:planting, 4, crop: shitake)
|
||||
Crop.reindex
|
||||
end
|
||||
|
||||
@@ -71,13 +71,13 @@ RSpec.describe CropSearchService, type: :service do
|
||||
describe "biased to crops you've planted" do
|
||||
subject { described_class.search('mushroom', current_member: owner).map(&:name) }
|
||||
|
||||
let(:owner) { FactoryBot.create :member }
|
||||
let(:owner) { FactoryBot.create(:member) }
|
||||
|
||||
before do
|
||||
FactoryBot.create_list :planting, 10, crop: brown
|
||||
FactoryBot.create :planting, crop: oyster, owner: owner
|
||||
FactoryBot.create :planting, crop: oyster, owner: owner
|
||||
FactoryBot.create :planting, crop: shitake, owner: owner
|
||||
FactoryBot.create_list(:planting, 10, crop: brown)
|
||||
FactoryBot.create(:planting, crop: oyster, owner:)
|
||||
FactoryBot.create(:planting, crop: oyster, owner:)
|
||||
FactoryBot.create(:planting, crop: shitake, owner:)
|
||||
Crop.reindex
|
||||
end
|
||||
|
||||
|
||||
@@ -3,20 +3,20 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe TimelineService do
|
||||
let(:member) { FactoryBot.create :member }
|
||||
let(:friend) { FactoryBot.create :member }
|
||||
let(:member) { FactoryBot.create(:member) }
|
||||
let(:friend) { FactoryBot.create(:member) }
|
||||
|
||||
let!(:friend_planting) { FactoryBot.create :planting, owner: friend, planted_at: 1.day.ago }
|
||||
let!(:friend_harvest) { FactoryBot.create :harvest, owner: friend, harvested_at: 2.days.ago }
|
||||
let!(:friend_planting) { FactoryBot.create(:planting, owner: friend, planted_at: 1.day.ago) }
|
||||
let!(:friend_harvest) { FactoryBot.create(:harvest, owner: friend, harvested_at: 2.days.ago) }
|
||||
|
||||
let!(:my_seeds) { FactoryBot.create :seed, owner: member, created_at: 4.days.ago }
|
||||
let!(:my_post) { FactoryBot.create :post, author: member, created_at: 3.months.ago }
|
||||
let!(:my_seeds) { FactoryBot.create(:seed, owner: member, created_at: 4.days.ago) }
|
||||
let!(:my_post) { FactoryBot.create(:post, author: member, created_at: 3.months.ago) }
|
||||
|
||||
describe 'a friend you followed' do
|
||||
before { friend.followers << member }
|
||||
|
||||
subject { TimelineService.followed_query(member) }
|
||||
|
||||
before { friend.followers << member }
|
||||
|
||||
it { expect(subject.first.id).to eq friend_planting.id }
|
||||
it { expect(subject.first.event_type).to eq 'planting' }
|
||||
it { expect(subject.second.id).to eq friend_harvest.id }
|
||||
|
||||
@@ -13,15 +13,15 @@ module FeatureHelpers
|
||||
end
|
||||
|
||||
shared_context 'signed in member' do
|
||||
let(:member) { FactoryBot.create :member }
|
||||
let(:member) { FactoryBot.create(:member) }
|
||||
include_examples 'sign in'
|
||||
end
|
||||
shared_context 'signed in crop wrangler' do
|
||||
let(:member) { FactoryBot.create :crop_wrangling_member }
|
||||
let(:member) { FactoryBot.create(:crop_wrangling_member) }
|
||||
include_examples 'sign in'
|
||||
end
|
||||
shared_context 'signed in admin' do
|
||||
let(:member) { FactoryBot.create :admin_member }
|
||||
let(:member) { FactoryBot.create(:admin_member) }
|
||||
include_examples 'sign in'
|
||||
end
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ describe "crops/show" do
|
||||
@member = FactoryBot.create(:crop_wrangling_member)
|
||||
sign_in @member
|
||||
@current_member = @member
|
||||
@harvest = FactoryBot.create :harvest, owner: @member
|
||||
@harvest = FactoryBot.create(:harvest, owner: @member)
|
||||
controller.stub(:current_user) { @member }
|
||||
end
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ describe "gardens/show" do
|
||||
controller.stub(:current_user) { @owner }
|
||||
@garden = FactoryBot.create(:garden, owner: @owner)
|
||||
@planting = FactoryBot.create(:planting, garden: @garden, owner: @garden.owner)
|
||||
@suggested_companions = FactoryBot.create_list :crop, 4
|
||||
@suggested_companions = FactoryBot.create_list(:crop, 4)
|
||||
assign(:garden, @garden)
|
||||
assign(:current_plantings, [@planting])
|
||||
assign(:finished_plantings, [])
|
||||
|
||||
@@ -8,9 +8,9 @@ describe 'harvests/index.rss.haml', :search do
|
||||
@member = FactoryBot.create(:member)
|
||||
@tomato = FactoryBot.create(:tomato)
|
||||
|
||||
@harvest1 = FactoryBot.create :harvest, crop: @tomato
|
||||
@harvest2 = FactoryBot.create :harvest, crop: @tomato
|
||||
@harvest3 = FactoryBot.create :harvest, crop: @tomato
|
||||
@harvest1 = FactoryBot.create(:harvest, crop: @tomato)
|
||||
@harvest2 = FactoryBot.create(:harvest, crop: @tomato)
|
||||
@harvest3 = FactoryBot.create(:harvest, crop: @tomato)
|
||||
|
||||
Harvest.searchkick_index.refresh
|
||||
assign(:harvests, Harvest.search(load: false))
|
||||
|
||||
@@ -3,20 +3,19 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe "photos/show" do
|
||||
let(:photo) { FactoryBot.create :photo, owner: member }
|
||||
let(:crops) { FactoryBot.create_list :crop, 2 }
|
||||
let(:photo) { FactoryBot.create(:photo, owner: member) }
|
||||
let(:member) { FactoryBot.create(:member) }
|
||||
let(:harvest) { FactoryBot.create(:harvest, owner: member) }
|
||||
let(:planting) { FactoryBot.create(:planting, owner: member) }
|
||||
let(:seed) { FactoryBot.create(:seed, owner: member) }
|
||||
let(:garden) { FactoryBot.create(:garden, owner: member) }
|
||||
let(:crops) { FactoryBot.create_list(:crop, 2) }
|
||||
|
||||
before do
|
||||
@photo = photo
|
||||
@crops = crops
|
||||
end
|
||||
|
||||
let(:member) { FactoryBot.create :member }
|
||||
|
||||
let(:harvest) { FactoryBot.create :harvest, owner: member }
|
||||
let(:planting) { FactoryBot.create :planting, owner: member }
|
||||
let(:seed) { FactoryBot.create :seed, owner: member }
|
||||
let(:garden) { FactoryBot.create :garden, owner: member }
|
||||
|
||||
shared_examples "photo data renders" do
|
||||
it "shows the image" do
|
||||
assert_select "img[src='#{@photo.fullsize_url}']"
|
||||
@@ -68,7 +67,7 @@ describe "photos/show" do
|
||||
|
||||
context "signed in as another member" do
|
||||
before do
|
||||
controller.stub(:current_user) { FactoryBot.create :member }
|
||||
controller.stub(:current_user) { FactoryBot.create(:member) }
|
||||
render
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user