From 1e81dac699974cc9e7585725314def23e7770a70 Mon Sep 17 00:00:00 2001 From: Brenda Wallace Date: Mon, 23 Oct 2017 16:36:25 +1300 Subject: [PATCH 01/13] All crop photos; crops-> photos route --- app/controllers/photos_controller.rb | 8 +++++++- app/views/crops/_photos.html.haml | 3 ++- app/views/photos/index.html.haml | 8 +++++--- config/routes.rb | 4 +++- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/app/controllers/photos_controller.rb b/app/controllers/photos_controller.rb index aa71c8805..4662a28c4 100644 --- a/app/controllers/photos_controller.rb +++ b/app/controllers/photos_controller.rb @@ -6,7 +6,13 @@ class PhotosController < ApplicationController responders :flash def index - @photos = Photo.paginate(page: params[:page]) + if params[:crop_id] + @crop = Crop.find params[:crop_id] + @photos = @crop.photos + else + @photos = Photo.all + end + @photos = @photos.order(:created_at).paginate(page: params[:page]) respond_with(@photos) end diff --git a/app/views/crops/_photos.html.haml b/app/views/crops/_photos.html.haml index ed49e312a..309fcb66e 100644 --- a/app/views/crops/_photos.html.haml +++ b/app/views/crops/_photos.html.haml @@ -1,5 +1,6 @@ .row - unless crop.photos.empty? - - crop.photos.first(3).each do |p| + - crop.photos.includes(:owner).first(3).each do |p| .col-md-4 = render partial: "photos/thumbnail", locals: { photo: p } + = link_to "more photos", crop_photos_path(crop_id: crop.id) diff --git a/app/views/photos/index.html.haml b/app/views/photos/index.html.haml index 1e95a1ec5..79bd2f4f9 100644 --- a/app/views/photos/index.html.haml +++ b/app/views/photos/index.html.haml @@ -1,13 +1,17 @@ - content_for :title, "Photos" +- if @crop + %h2= @crop.name + %p Most recent photos added to #{ENV['GROWSTUFF_SITE_NAME']}. .pagination = page_entries_info @photos = will_paginate @photos + .row - - @photos.each do |p| + - @photos.includes(:owner).each do |p| .col-md-2.six-across .thumbnail{ style: 'height: 220px' } = link_to image_tag(p.thumbnail_url, alt: p.title, class: 'img'), p @@ -19,5 +23,3 @@ .pagination = page_entries_info @photos = will_paginate @photos - - diff --git a/config/routes.rb b/config/routes.rb index e999510e7..72a3d5e19 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -48,7 +48,9 @@ Growstuff::Application.routes.draw do get 'crops/wrangle' => 'crops#wrangle', :as => 'wrangle_crops' get 'crops/hierarchy' => 'crops#hierarchy', :as => 'crops_hierarchy' get 'crops/search' => 'crops#search', :as => 'crops_search' - resources :crops + resources :crops do + get 'photos' => 'photos#index' + end resources :comments resources :roles From f3e88f5aae905c0d1087342b3489b581d369325e Mon Sep 17 00:00:00 2001 From: Brenda Wallace Date: Mon, 23 Oct 2017 18:49:19 +1300 Subject: [PATCH 02/13] Include harvest photos on crop page --- app/controllers/photos_controller.rb | 2 +- app/models/crop.rb | 4 ++++ app/views/crops/_photos.html.haml | 13 +++++++++++-- app/views/photos/index.html.haml | 2 +- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/app/controllers/photos_controller.rb b/app/controllers/photos_controller.rb index 4662a28c4..0dd3a275d 100644 --- a/app/controllers/photos_controller.rb +++ b/app/controllers/photos_controller.rb @@ -12,7 +12,7 @@ class PhotosController < ApplicationController else @photos = Photo.all end - @photos = @photos.order(:created_at).paginate(page: params[:page]) + @photos = @photos.includes(:owner).order(:created_at).paginate(page: params[:page]) respond_with(@photos) end diff --git a/app/models/crop.rb b/app/models/crop.rb index 5f5eae30c..132920ea0 100644 --- a/app/models/crop.rb +++ b/app/models/crop.rb @@ -106,6 +106,10 @@ class Crop < ActiveRecord::Base end end + def harvest_photos + Photo.joins(:harvests).where("harvests.crop_id": id) + end + def as_indexed_json(_options = {}) as_json( only: [:id, :name, :approval_status], diff --git a/app/views/crops/_photos.html.haml b/app/views/crops/_photos.html.haml index 309fcb66e..8bd6cf169 100644 --- a/app/views/crops/_photos.html.haml +++ b/app/views/crops/_photos.html.haml @@ -1,6 +1,15 @@ +%h2 Photos of #{crop.name} harvests +.row + - unless crop.harvest_photos.empty? + - crop.harvest_photos.includes(:owner).first(3).each do |p| + .col-md-4 + = render "photos/thumbnail", photo: p + +%h2 Photos of #{crop.name} plants .row - unless crop.photos.empty? - crop.photos.includes(:owner).first(3).each do |p| .col-md-4 - = render partial: "photos/thumbnail", locals: { photo: p } - = link_to "more photos", crop_photos_path(crop_id: crop.id) + = render "photos/thumbnail", photo: p +.row + = link_to "more photos", crop_photos_path(crop_id: crop.id) diff --git a/app/views/photos/index.html.haml b/app/views/photos/index.html.haml index 79bd2f4f9..6cdf7e2dd 100644 --- a/app/views/photos/index.html.haml +++ b/app/views/photos/index.html.haml @@ -11,7 +11,7 @@ .row - - @photos.includes(:owner).each do |p| + - @photos.each do |p| .col-md-2.six-across .thumbnail{ style: 'height: 220px' } = link_to image_tag(p.thumbnail_url, alt: p.title, class: 'img'), p From d9aa9df7fe0ed7a525d7ad2d6335334157351784 Mon Sep 17 00:00:00 2001 From: deppbot Date: Thu, 26 Oct 2017 00:11:11 +0800 Subject: [PATCH 03/13] Bundle Update on 2017-10-26 --- Gemfile.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 79918a163..906cbd29c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -31,7 +31,7 @@ GEM activejob (4.2.10) activesupport (= 4.2.10) globalid (>= 0.3.0) - activemerchant (1.73.0) + activemerchant (1.74.0) activesupport (>= 3.2.14, < 6.x) builder (>= 2.1.2, < 4.0.0) i18n (>= 0.6.9) @@ -173,10 +173,10 @@ GEM erubis (2.7.0) excon (0.59.0) execjs (2.7.0) - factory_girl (4.8.1) + factory_girl (4.9.0) activesupport (>= 3.0.0) - factory_girl_rails (4.8.0) - factory_girl (~> 4.8.0) + factory_girl_rails (4.9.0) + factory_girl (~> 4.9.0) railties (>= 3.0.0) faraday (0.12.2) multipart-post (>= 1.2, < 3) @@ -193,7 +193,7 @@ GEM gibbon (1.2.1) httparty multi_json (>= 1.9.0) - globalid (0.4.0) + globalid (0.4.1) activesupport (>= 4.2.0) gravatar-ultimate (2.0.0) activesupport (>= 2.3.14) @@ -417,7 +417,7 @@ GEM thor (>= 0.18.1, < 2.0) rainbow (2.1.0) raindrops (0.19.0) - rake (12.1.0) + rake (12.2.1) rb-fsevent (0.10.2) rb-inotify (0.9.10) ffi (>= 0.5.0, < 2) From f7b75157e7119a03058295dd089ddd002d28f113 Mon Sep 17 00:00:00 2001 From: Brenda Wallace Date: Fri, 27 Oct 2017 23:34:37 +1300 Subject: [PATCH 04/13] Feature spec for harvest photos --- spec/features/crops/crop_photos_spec.rb | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/spec/features/crops/crop_photos_spec.rb b/spec/features/crops/crop_photos_spec.rb index eeae455e5..f1fcb15da 100644 --- a/spec/features/crops/crop_photos_spec.rb +++ b/spec/features/crops/crop_photos_spec.rb @@ -4,10 +4,22 @@ feature "crop detail page", js: true do let(:crop) { create :crop, plantings: [planting], harvests: [harvest] } let(:planting) { create :planting, owner: member, photos: [photo1, photo2] } let(:harvest) { create :harvest, owner: member, photos: [photo3, photo4] } - let(:photo1) { create(:photo, owner: member, title: 'photo 1', fullsize_url: 'photo1.jpg', thumbnail_url: 'thumb1.jpg') } - let(:photo2) { create(:photo, owner: member, title: 'photo 2', fullsize_url: 'photo2.jpg', thumbnail_url: 'thumb2.jpg') } - let(:photo3) { create(:photo, owner: member, title: 'photo 3', fullsize_url: 'photo3.jpg', thumbnail_url: 'thumb3.jpg') } - let(:photo4) { create(:photo, owner: member, title: 'photo 4', fullsize_url: 'photo4.jpg', thumbnail_url: 'thumb4.jpg') } + let(:photo1) do + create(:photo, owner: member, title: 'photo 1', + fullsize_url: 'photo1.jpg', thumbnail_url: 'thumb1.jpg') + end + let(:photo2) do + create(:photo, owner: member, title: 'photo 2', + fullsize_url: 'photo2.jpg', thumbnail_url: 'thumb2.jpg') + end + let(:photo3) do + create(:photo, owner: member, title: 'photo 3', + fullsize_url: 'photo3.jpg', thumbnail_url: 'thumb3.jpg') + end + let(:photo4) do + create(:photo, owner: member, title: 'photo 4', + fullsize_url: 'photo4.jpg', thumbnail_url: 'thumb4.jpg') + end before { visit crop_path(crop) } From e42ec4f8aecbc71b34e9c110a2cee783b790ab65 Mon Sep 17 00:00:00 2001 From: Brenda Wallace Date: Fri, 27 Oct 2017 23:43:23 +1300 Subject: [PATCH 05/13] Test crop photo display when not signed in --- spec/features/crops/crop_photos_spec.rb | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/spec/features/crops/crop_photos_spec.rb b/spec/features/crops/crop_photos_spec.rb index f1fcb15da..59eba8f38 100644 --- a/spec/features/crops/crop_photos_spec.rb +++ b/spec/features/crops/crop_photos_spec.rb @@ -1,6 +1,7 @@ require 'rails_helper' feature "crop detail page", js: true do + let(:member) { create :member } let(:crop) { create :crop, plantings: [planting], harvests: [harvest] } let(:planting) { create :planting, owner: member, photos: [photo1, photo2] } let(:harvest) { create :harvest, owner: member, photos: [photo3, photo4] } @@ -22,12 +23,9 @@ feature "crop detail page", js: true do end before { visit crop_path(crop) } + subject { page } - context "when signed in member" do - let(:member) { create :member } - background { login_as(member) } - subject { page } - + shared_examples "shows photos" do describe "show planting photos" do it { is_expected.to have_xpath("//img[contains(@src,'#{photo1.thumbnail_url}')]") } it { is_expected.to have_xpath("//img[contains(@src,'#{photo2.thumbnail_url}')]") } @@ -40,4 +38,16 @@ feature "crop detail page", js: true do it { is_expected.to have_link "more photos" } end end + + context "when signed in" do + background { login_as(create(:member)) } + include_examples "shows photos" + end + context "when signed in as photos owner" do + background { login_as(member) } + include_examples "shows photos" + end + context "when not signed in " do + include_examples "shows photos" + end end From 96b4742e7875cd987b9f6a5da902dd08f6a08100 Mon Sep 17 00:00:00 2001 From: Brenda Wallace Date: Sat, 21 Oct 2017 11:35:48 +1300 Subject: [PATCH 06/13] Dev is almost always on port 3000 --- config/environments/development.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/environments/development.rb b/config/environments/development.rb index 5ed32833a..d3242353e 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -44,7 +44,7 @@ Growstuff::Application.configure do # config.action_view.raise_on_missing_translations = true # Growstuff config - config.action_mailer.default_url_options = { host: 'localhost:8080' } + config.action_mailer.default_url_options = { host: 'localhost:3000' } config.action_mailer.delivery_method = :letter_opener config.action_mailer.smtp_settings = { @@ -55,7 +55,7 @@ Growstuff::Application.configure do authentication: :login } - config.host = 'localhost:8080' + config.host = 'localhost:3000' config.analytics_code = '' # this config variable cannot be put in application.yml as it is needed From 2946dca5fc8d5f7f63275fd247a24938ce530408 Mon Sep 17 00:00:00 2001 From: deppbot Date: Sun, 29 Oct 2017 04:10:59 +0800 Subject: [PATCH 07/13] Bundle Update on 2017-10-29 --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 906cbd29c..dab9744ce 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -462,7 +462,7 @@ GEM ruby_parser (3.10.1) sexp_processor (~> 4.9) rubyzip (1.2.1) - sass (3.5.2) + sass (3.5.3) sass-listen (~> 4.0.0) sass-listen (4.0.0) rb-fsevent (~> 0.9, >= 0.9.4) @@ -510,7 +510,7 @@ GEM timecop (0.9.1) tins (1.15.0) trollop (1.16.2) - tzinfo (1.2.3) + tzinfo (1.2.4) thread_safe (~> 0.1) uglifier (3.2.0) execjs (>= 0.3.0, < 3) From fce6395d212508063d3a1da149f70ce9be905b1c Mon Sep 17 00:00:00 2001 From: Brenda Wallace Date: Wed, 1 Nov 2017 13:20:20 +1300 Subject: [PATCH 08/13] Stop hound and codeclimate fighing over delimiter styles --- .rubocop.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.rubocop.yml b/.rubocop.yml index 7a011b223..8bea347fe 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -19,6 +19,13 @@ Style/FileName: Style/StringLiterals: Enabled: false +# Stop hound and codeclimate fighting +Style/PercentLiteralDelimiters: + PreferredDelimiters: + default: () + '%i': () + '%w': () + Style/MultilineMethodCallIndentation: EnforcedStyle: indented From 4b445907d5dcbb45eb20c4bc34838fd2157cca73 Mon Sep 17 00:00:00 2001 From: deppbot Date: Wed, 1 Nov 2017 08:12:54 +0800 Subject: [PATCH 09/13] Bundle Update on 2017-11-01 --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index dab9744ce..8ffe37d88 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -143,7 +143,7 @@ GEM d3-rails (3.5.17) railties (>= 3.1) dalli (2.7.6) - database_cleaner (1.6.1) + database_cleaner (1.6.2) debug_inspector (0.0.3) devise (4.3.0) bcrypt (~> 3.0) From 10a8df47a9f1c719e9a893875ab87db1a811d0ef Mon Sep 17 00:00:00 2001 From: Logan Gingerich Date: Wed, 1 Nov 2017 09:03:31 -0600 Subject: [PATCH 10/13] Factorygirl to factorybot - fixes #1413 (#1425) * FactoryGirl Changed to FactoryBot file fix changes based on comments received Bundle Update on 2017-10-29 style update to align hash literal added package-lock * indentation fixes with rubocop * name added to contributors --- CONTRIBUTORS.md | 1 + Gemfile | 2 +- Gemfile.lock | 9 +- app/models/member.rb | 2 +- config/factory_bot.rb | 9 + config/factory_girl.rb | 9 - package-lock.json | 1414 +++++++++++++++++ spec/controllers/accounts_controller_spec.rb | 2 +- .../admin/orders_controller_spec.rb | 2 +- spec/controllers/admin_controller_spec.rb | 2 +- .../authentications_controller_spec.rb | 4 +- spec/controllers/comments_controller_spec.rb | 30 +- spec/controllers/gardens_controller_spec.rb | 2 +- spec/controllers/harvests_controller_spec.rb | 26 +- spec/controllers/likes_controller_spec.rb | 12 +- spec/controllers/member_controller_spec.rb | 10 +- .../notifications_controller_spec.rb | 18 +- .../order_items_controller_spec.rb | 18 +- spec/controllers/orders_controller_spec.rb | 8 +- .../photo_associations_controller_spec.rb | 8 +- spec/controllers/photos_controller_spec.rb | 28 +- spec/controllers/places_controller_spec.rb | 4 +- spec/controllers/plantings_controller_spec.rb | 32 +- spec/controllers/posts_controller_spec.rb | 2 +- .../registrations_controller_spec.rb | 6 +- .../scientific_names_controller_spec.rb | 2 +- spec/controllers/seeds_controller_spec.rb | 2 +- spec/controllers/shop_controller_spec.rb | 8 +- spec/factories/account_types.rb | 4 +- spec/factories/accounts.rb | 4 +- spec/factories/alternate_names.rb | 4 +- spec/factories/authentications.rb | 4 +- spec/factories/comments.rb | 2 +- spec/factories/crop.rb | 2 +- spec/factories/follows.rb | 2 +- spec/factories/forums.rb | 4 +- spec/factories/garden.rb | 2 +- spec/factories/harvests.rb | 4 +- spec/factories/like.rb | 2 +- spec/factories/member.rb | 6 +- spec/factories/notifications.rb | 6 +- spec/factories/order_items.rb | 4 +- spec/factories/orders.rb | 4 +- spec/factories/photos.rb | 4 +- spec/factories/plant_parts.rb | 4 +- spec/factories/planting.rb | 2 +- spec/factories/post.rb | 2 +- spec/factories/products.rb | 4 +- spec/factories/roles.rb | 4 +- spec/factories/scientific_name.rb | 2 +- spec/factories/seeds.rb | 4 +- spec/features/gardens/adding_gardens_spec.rb | 2 +- spec/features/likeable_spec.rb | 6 +- spec/features/members/deletion_spec.rb | 38 +- spec/features/notifications_spec.rb | 2 +- spec/helpers/application_helper_spec.rb | 4 +- spec/helpers/gardens_helper_spec.rb | 32 +- spec/helpers/harvests_helper_spec.rb | 14 +- spec/helpers/notifications_helper_spec.rb | 6 +- spec/helpers/plantings_helper_spec.rb | 26 +- spec/helpers/seeds_helper_spec.rb | 8 +- .../lib/haml/filters/escaped_markdown_spec.rb | 2 +- .../haml/filters/growstuff_markdown_spec.rb | 22 +- spec/mailers/notifier_spec.rb | 16 +- spec/models/ability_spec.rb | 46 +- spec/models/account_spec.rb | 8 +- spec/models/alternate_name_spec.rb | 2 +- spec/models/authentication_spec.rb | 2 +- spec/models/comment_spec.rb | 22 +- spec/models/crop_spec.rb | 198 +-- spec/models/follow_spec.rb | 4 +- spec/models/forum_spec.rb | 10 +- spec/models/garden_spec.rb | 110 +- spec/models/harvest_spec.rb | 150 +- spec/models/like_spec.rb | 4 +- spec/models/member_spec.rb | 136 +- spec/models/notification_spec.rb | 18 +- spec/models/order_item_spec.rb | 14 +- spec/models/order_spec.rb | 62 +- spec/models/photo_spec.rb | 10 +- spec/models/plant_part_spec.rb | 20 +- spec/models/planting_spec.rb | 116 +- spec/models/post_spec.rb | 70 +- spec/models/product_spec.rb | 2 +- spec/models/role_spec.rb | 8 +- spec/models/scientific_name_spec.rb | 2 +- spec/models/seed_spec.rb | 62 +- spec/rails_helper.rb | 4 +- spec/support/controller_macros.rb | 2 +- spec/support/is_likeable.rb | 10 +- .../account_types/index.html.haml_spec.rb | 2 +- spec/views/accounts/edit.html.haml_spec.rb | 2 +- spec/views/accounts/index.html.haml_spec.rb | 2 +- spec/views/accounts/new.html.haml_spec.rb | 2 +- spec/views/accounts/show.html.haml_spec.rb | 2 +- spec/views/admin/index_spec.rb | 2 +- spec/views/admin/newsletter_spec.rb | 4 +- spec/views/admin/orders/index_spec.rb | 2 +- spec/views/comments/edit.html.haml_spec.rb | 2 +- spec/views/comments/index.html.haml_spec.rb | 4 +- spec/views/comments/index.rss.haml_spec.rb | 8 +- spec/views/comments/new.html.haml_spec.rb | 4 +- spec/views/comments/show.html.haml_spec.rb | 2 +- spec/views/crops/_grown_for.html.haml_spec.rb | 6 +- .../crops/_planting_advice.html.haml_spec.rb | 24 +- spec/views/crops/_popover.html.haml_spec.rb | 6 +- spec/views/crops/edit.html.haml_spec.rb | 4 +- spec/views/crops/hierarchy.html.haml_spec.rb | 4 +- spec/views/crops/index.html.haml_spec.rb | 10 +- spec/views/crops/index.rss.haml_spec.rb | 6 +- spec/views/crops/new.html.haml_spec.rb | 4 +- spec/views/crops/wrangle.html.haml_spec.rb | 6 +- .../mailer/confirmation_instructions_spec.rb | 2 +- .../devise/mailer/unlock_instructions_spec.rb | 2 +- spec/views/devise/registrations/edit_spec.rb | 6 +- spec/views/forums/index.html.haml_spec.rb | 10 +- spec/views/forums/new.html.haml_spec.rb | 2 +- spec/views/forums/show.html.haml_spec.rb | 4 +- spec/views/gardens/edit.html.haml_spec.rb | 4 +- spec/views/gardens/new.html.haml_spec.rb | 4 +- spec/views/gardens/show.html.haml_spec.rb | 6 +- spec/views/harvests/edit.html.haml_spec.rb | 2 +- spec/views/harvests/index.html.haml_spec.rb | 12 +- spec/views/harvests/new.html.haml_spec.rb | 2 +- spec/views/harvests/show.html.haml_spec.rb | 4 +- spec/views/home/_crops.html.haml_spec.rb | 6 +- spec/views/home/_members.html.haml_spec.rb | 4 +- spec/views/home/_seeds.html.haml_spec.rb | 4 +- spec/views/home/index_spec.rb | 10 +- spec/views/layouts/_header_spec.rb | 4 +- .../views/members/_location.html.haml_spec.rb | 4 +- spec/views/members/index.html.haml_spec.rb | 2 +- spec/views/members/show.rss.haml_spec.rb | 6 +- .../notifications/index.html.haml_spec.rb | 10 +- .../views/notifications/new.html.haml_spec.rb | 6 +- .../notifications/show.html.haml_spec.rb | 4 +- spec/views/notifier/notify.html.haml_spec.rb | 2 +- spec/views/orders/index.html.haml_spec.rb | 6 +- spec/views/orders/show.html.haml_spec.rb | 10 +- spec/views/photos/index.html.haml_spec.rb | 4 +- spec/views/photos/new.html.haml_spec.rb | 4 +- spec/views/photos/show.html.haml_spec.rb | 18 +- spec/views/places/show.html.haml_spec.rb | 4 +- .../views/plant_parts/index.html.haml_spec.rb | 2 +- spec/views/plant_parts/show.html.haml_spec.rb | 4 +- spec/views/plantings/_form.html.haml_spec.rb | 10 +- spec/views/plantings/edit.html.haml_spec.rb | 12 +- spec/views/plantings/index.html.haml_spec.rb | 14 +- spec/views/plantings/index.rss.haml_spec.rb | 8 +- spec/views/plantings/new.html.haml_spec.rb | 12 +- spec/views/plantings/show.html.haml_spec.rb | 16 +- spec/views/posts/_single.html.haml_spec.rb | 38 +- spec/views/posts/edit.html.haml_spec.rb | 8 +- spec/views/posts/index.html.haml_spec.rb | 6 +- spec/views/posts/index.rss.haml_spec.rb | 6 +- spec/views/posts/new.html.haml_spec.rb | 8 +- spec/views/posts/show.html.haml_spec.rb | 38 +- spec/views/posts/show.rss.haml_spec.rb | 8 +- spec/views/products/index.html.haml_spec.rb | 2 +- spec/views/products/show.html.haml_spec.rb | 2 +- .../scientific_names/edit.html.haml_spec.rb | 4 +- .../scientific_names/index.html.haml_spec.rb | 6 +- .../scientific_names/new.html.haml_spec.rb | 4 +- .../scientific_names/show.html.haml_spec.rb | 4 +- spec/views/seeds/edit.html.haml_spec.rb | 6 +- spec/views/seeds/index.rss.haml_spec.rb | 6 +- spec/views/seeds/new.html.haml_spec.rb | 8 +- spec/views/seeds/show.html.haml_spec.rb | 12 +- spec/views/shop/index_spec.rb | 10 +- 169 files changed, 2483 insertions(+), 1069 deletions(-) create mode 100644 config/factory_bot.rb delete mode 100644 config/factory_girl.rb create mode 100644 package-lock.json diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 6dc25e0a5..69c9fd2e4 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -81,6 +81,7 @@ submit the change with your pull request. - Arun Kumar / [arun1595](https://github.com/arun1595) - Harry Brodsky / [hbrodsk1](https://github.com/hbrodsk1) - Jeff Kingswood / [ancyentmariner](https://github.com/ancyentmariner) +- Logan Gingerich / [logangingerich](https://github.com/logangingerich) ## Bots diff --git a/Gemfile b/Gemfile index ed5d1ca8f..78636cf78 100644 --- a/Gemfile +++ b/Gemfile @@ -124,7 +124,7 @@ group :development, :test do gem 'capybara-screenshot' # for test debugging gem 'coveralls', require: false # coverage analysis gem 'database_cleaner' - gem 'factory_girl_rails' # for creating test data + gem 'factory_bot_rails' # for creating test data gem 'haml-i18n-extractor' gem 'haml-rails' # HTML templating language gem 'haml_lint' # Checks haml files for goodness diff --git a/Gemfile.lock b/Gemfile.lock index 8ffe37d88..e06468efe 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -173,10 +173,10 @@ GEM erubis (2.7.0) excon (0.59.0) execjs (2.7.0) - factory_girl (4.9.0) + factory_bot (4.8.2) activesupport (>= 3.0.0) - factory_girl_rails (4.9.0) - factory_girl (~> 4.9.0) + factory_bot_rails (4.8.2) + factory_bot (~> 4.8.2) railties (>= 3.0.0) faraday (0.12.2) multipart-post (>= 1.2, < 3) @@ -567,7 +567,7 @@ DEPENDENCIES elasticsearch-api (~> 2.0.0) elasticsearch-model elasticsearch-rails - factory_girl_rails + factory_bot_rails figaro flickraw font-awesome-sass @@ -622,7 +622,6 @@ DEPENDENCIES will_paginate xmlrpc - RUBY VERSION ruby 2.4.1p111 diff --git a/app/models/member.rb b/app/models/member.rb index 9a05d6206..06bcaeb2c 100644 --- a/app/models/member.rb +++ b/app/models/member.rb @@ -91,7 +91,7 @@ class Member < ActiveRecord::Base # and an account record (for paid accounts etc) # we use find_or_create to avoid accidentally creating a second one, - # which can happen sometimes especially with FactoryGirl associations + # which can happen sometimes especially with FactoryBot associations after_create { |member| Account.find_or_create_by(member_id: member.id) } after_save :update_newsletter_subscription diff --git a/config/factory_bot.rb b/config/factory_bot.rb new file mode 100644 index 000000000..43d50d52f --- /dev/null +++ b/config/factory_bot.rb @@ -0,0 +1,9 @@ +ActionDispatch::Callbacks.after do + # Reload the factories + return unless Rails.env.development? || Rails.env.test? + + if FactoryBot.factories.present? # first init will load factories, this should only run on subsequent reloads + FactoryBot.factories.clear + FactoryBot.find_definitions + end +end diff --git a/config/factory_girl.rb b/config/factory_girl.rb deleted file mode 100644 index dc0ab40b4..000000000 --- a/config/factory_girl.rb +++ /dev/null @@ -1,9 +0,0 @@ -ActionDispatch::Callbacks.after do - # Reload the factories - return unless Rails.env.development? || Rails.env.test? - - unless FactoryGirl.factories.blank? # first init will load factories, this should only run on subsequent reloads - FactoryGirl.factories.clear - FactoryGirl.find_definitions - end -end diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..fc703767c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1414 @@ +{ + "name": "growstuff", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "acorn": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.2.1.tgz", + "integrity": "sha512-jG0u7c4Ly+3QkkW18V+NRDN+4bWHdln30NL1ZL2AvFZZmQe/BfopYCtghCKKVBUSetZ4QKcyA0pY6/4Gw8Pv8w==", + "dev": true + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "3.3.0" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "ajv-keywords": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", + "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=", + "dev": true + }, + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "1.0.3" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "requires": { + "callsites": "0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, + "cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", + "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", + "dev": true, + "requires": { + "exit": "0.1.2", + "glob": "7.1.2" + } + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "1.0.1" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "coffee-script": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.11.1.tgz", + "integrity": "sha1-vxxHrWREOg2V0S3ysUfMCk2q1uk=", + "dev": true + }, + "coffeelint": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/coffeelint/-/coffeelint-1.16.0.tgz", + "integrity": "sha1-g9jtHa/eOmd95E57ihi+YHdh5tg=", + "dev": true, + "requires": { + "coffee-script": "1.11.1", + "glob": "7.1.2", + "ignore": "3.3.7", + "optimist": "0.6.1", + "resolve": "0.6.3", + "strip-json-comments": "1.0.4" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" + } + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "0.1.4" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "csslint": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/csslint/-/csslint-1.0.5.tgz", + "integrity": "sha1-Gcw+2jIhYP0/cjKvHLKjYOiYouk=", + "dev": true, + "requires": { + "clone": "2.1.1", + "parserlib": "1.1.1" + } + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, + "requires": { + "es5-ext": "0.10.35" + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.2" + } + }, + "doctrine": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", + "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", + "dev": true, + "requires": { + "esutils": "2.0.2", + "isarray": "1.0.0" + } + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dev": true, + "requires": { + "domelementtype": "1.1.3", + "entities": "1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", + "dev": true + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", + "dev": true + } + } + }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "dev": true + }, + "domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "dev": true, + "requires": { + "domelementtype": "1.3.0" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } + }, + "entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", + "dev": true + }, + "es5-ext": { + "version": "0.10.35", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.35.tgz", + "integrity": "sha1-GO6FjOajxFx9eekcFfzKnsVoSU8=", + "dev": true, + "requires": { + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.35", + "es6-symbol": "3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.35", + "es6-iterator": "2.0.3", + "es6-set": "0.1.5", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.35", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.35" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.35", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "dev": true, + "requires": { + "es6-map": "0.1.5", + "es6-weak-map": "2.0.2", + "esrecurse": "4.2.0", + "estraverse": "4.2.0" + } + }, + "eslint": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz", + "integrity": "sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "chalk": "1.1.3", + "concat-stream": "1.6.0", + "debug": "2.6.9", + "doctrine": "2.0.0", + "escope": "3.6.0", + "espree": "3.5.1", + "esquery": "1.0.0", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "glob": "7.1.2", + "globals": "9.18.0", + "ignore": "3.3.7", + "imurmurhash": "0.1.4", + "inquirer": "0.12.0", + "is-my-json-valid": "2.16.1", + "is-resolvable": "1.0.0", + "js-yaml": "3.10.0", + "json-stable-stringify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "1.2.1", + "progress": "1.1.8", + "require-uncached": "1.0.3", + "shelljs": "0.7.8", + "strip-bom": "3.0.0", + "strip-json-comments": "2.0.1", + "table": "3.8.3", + "text-table": "0.2.0", + "user-home": "2.0.0" + }, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + } + } + }, + "espree": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.1.tgz", + "integrity": "sha1-DJiLirRttTEAoZVK5LqZXd0n2H4=", + "dev": true, + "requires": { + "acorn": "5.2.1", + "acorn-jsx": "3.0.1" + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "esquery": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", + "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", + "dev": true, + "requires": { + "estraverse": "4.2.0" + } + }, + "esrecurse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", + "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "dev": true, + "requires": { + "estraverse": "4.2.0", + "object-assign": "4.1.1" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.35" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.1" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "1.3.0", + "object-assign": "4.1.1" + } + }, + "flat-cache": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "dev": true, + "requires": { + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", + "dev": true + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true, + "requires": { + "is-property": "1.0.2" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", + "dev": true, + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.0.0", + "readable-stream": "1.1.14" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "ignore": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", + "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "inquirer": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", + "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", + "dev": true, + "requires": { + "ansi-escapes": "1.4.0", + "ansi-regex": "2.1.1", + "chalk": "1.1.3", + "cli-cursor": "1.0.2", + "cli-width": "2.2.0", + "figures": "1.7.0", + "lodash": "4.17.4", + "readline2": "1.0.1", + "run-async": "0.1.0", + "rx-lite": "3.1.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "through": "2.3.8" + } + }, + "interpret": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.4.tgz", + "integrity": "sha1-ggzdWIuGj/sZGoCVBtbJyPISsbA=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-my-json-valid": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz", + "integrity": "sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==", + "dev": true, + "requires": { + "generate-function": "2.0.0", + "generate-object-property": "1.2.0", + "jsonpointer": "4.0.1", + "xtend": "4.0.1" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "dev": true, + "requires": { + "is-path-inside": "1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", + "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", + "dev": true, + "requires": { + "path-is-inside": "1.0.2" + } + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "is-resolvable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", + "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", + "dev": true, + "requires": { + "tryit": "1.0.3" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "4.0.0" + } + }, + "jshint": { + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.5.tgz", + "integrity": "sha1-HnJSkVzmgbQIJ+4UJIxG006apiw=", + "dev": true, + "requires": { + "cli": "1.0.1", + "console-browserify": "1.1.0", + "exit": "0.1.2", + "htmlparser2": "3.8.3", + "lodash": "3.7.0", + "minimatch": "3.0.4", + "shelljs": "0.3.0", + "strip-json-comments": "1.0.4" + }, + "dependencies": { + "lodash": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz", + "integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=", + "dev": true + }, + "shelljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", + "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", + "dev": true + } + } + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "mute-stream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", + "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.10", + "wordwrap": "0.0.3" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" + }, + "dependencies": { + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + } + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "parserlib": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/parserlib/-/parserlib-1.1.1.tgz", + "integrity": "sha1-pkz6ckBiQ0/fw1HJpOwtkrlMBvQ=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "pluralize": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", + "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + }, + "progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", + "dev": true + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "readline2": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", + "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "mute-stream": "0.0.5" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "1.5.0" + }, + "dependencies": { + "resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + } + } + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "requires": { + "caller-path": "0.1.0", + "resolve-from": "1.0.1" + } + }, + "resolve": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", + "integrity": "sha1-3ZV5gufnNt699TtYpN2RdUV13UY=", + "dev": true + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "1.1.1", + "onetime": "1.1.0" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "run-async": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", + "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", + "dev": true, + "requires": { + "once": "1.4.0" + } + }, + "rx-lite": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", + "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=", + "dev": true + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "shelljs": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", + "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", + "dev": true, + "requires": { + "glob": "7.1.2", + "interpret": "1.0.4", + "rechoir": "0.6.2" + } + }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "table": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", + "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=", + "dev": true, + "requires": { + "ajv": "4.11.8", + "ajv-keywords": "1.5.1", + "chalk": "1.1.3", + "lodash": "4.17.4", + "slice-ansi": "0.0.4", + "string-width": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "tryit": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", + "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "user-home": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", + "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", + "dev": true, + "requires": { + "os-homedir": "1.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "0.5.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } +} diff --git a/spec/controllers/accounts_controller_spec.rb b/spec/controllers/accounts_controller_spec.rb index 66375b292..d159f4114 100644 --- a/spec/controllers/accounts_controller_spec.rb +++ b/spec/controllers/accounts_controller_spec.rb @@ -24,7 +24,7 @@ describe AccountsController do # member; creating them manually will just cause errors as only one is # allowed. This method has been left here in case it's useful in # future. - member = FactoryGirl.create(:member) + member = FactoryBot.create(:member) member.account end end diff --git a/spec/controllers/admin/orders_controller_spec.rb b/spec/controllers/admin/orders_controller_spec.rb index ed0a5b4b6..a81875427 100644 --- a/spec/controllers/admin/orders_controller_spec.rb +++ b/spec/controllers/admin/orders_controller_spec.rb @@ -17,7 +17,7 @@ describe Admin::OrdersController do describe "GET search" do it "assigns @orders" do - order = FactoryGirl.create(:order) + order = FactoryBot.create(:order) get :search, search_by: 'order_id', search_text: order.id assigns(:orders).should eq([order]) end diff --git a/spec/controllers/admin_controller_spec.rb b/spec/controllers/admin_controller_spec.rb index 0b36fe583..6e97245d1 100644 --- a/spec/controllers/admin_controller_spec.rb +++ b/spec/controllers/admin_controller_spec.rb @@ -23,7 +23,7 @@ describe AdminController do end it 'assigns @members' do - m = FactoryGirl.create(:newsletter_recipient_member) + m = FactoryBot.create(:newsletter_recipient_member) get :newsletter assigns(:members).should eq [m] end diff --git a/spec/controllers/authentications_controller_spec.rb b/spec/controllers/authentications_controller_spec.rb index 47be30487..fe7eaa61f 100644 --- a/spec/controllers/authentications_controller_spec.rb +++ b/spec/controllers/authentications_controller_spec.rb @@ -14,10 +14,10 @@ require 'rails_helper' describe AuthenticationsController do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member controller.stub(:current_member) { @member } - @auth = FactoryGirl.create(:authentication, member: @member) + @auth = FactoryBot.create(:authentication, member: @member) request.env['omniauth.auth'] = { 'provider' => 'foo', 'uid' => 'bar', diff --git a/spec/controllers/comments_controller_spec.rb b/spec/controllers/comments_controller_spec.rb index 43e911bb3..e65a24544 100644 --- a/spec/controllers/comments_controller_spec.rb +++ b/spec/controllers/comments_controller_spec.rb @@ -14,13 +14,13 @@ require 'rails_helper' describe CommentsController do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member controller.stub(:current_member) { @member } end def valid_attributes - @post = FactoryGirl.create(:post) + @post = FactoryBot.create(:post) { post_id: @post.id, body: "some text" } end @@ -34,7 +34,7 @@ describe CommentsController do end describe "GET new" do - let(:post) { FactoryGirl.create(:post) } + let(:post) { FactoryBot.create(:post) } describe "with valid params" do before { get :new, post_id: post.id } @@ -43,7 +43,7 @@ describe CommentsController do assigns(:post).should eq(post) end - let(:old_comment) { FactoryGirl.create(:comment, post: post) } + let(:old_comment) { FactoryBot.create(:comment, post: post) } it "assigns the old comments as @comments" do assigns(:comments).should eq [old_comment] end @@ -56,19 +56,19 @@ describe CommentsController do end describe "GET edit" do - let(:post) { FactoryGirl.create(:post) } + let(:post) { FactoryBot.create(:post) } before { get :edit, id: comment.to_param } describe "my comment" do - let!(:comment) { FactoryGirl.create :comment, author: @member, post: post } - let!(:old_comment) { FactoryGirl.create(:comment, post: post, created_at: Time.zone.yesterday) } + let!(:comment) { FactoryBot.create :comment, author: @member, post: post } + let!(:old_comment) { FactoryBot.create(:comment, post: post, created_at: Time.zone.yesterday) } it "assigns previous comments as @comments" do assigns(:comments).should eq([comment, old_comment]) end end describe "not my comment" do - let(:comment) { FactoryGirl.create :comment, post: post } + let(:comment) { FactoryBot.create :comment, post: post } it { expect(response).not_to be_success } end end @@ -77,20 +77,20 @@ describe CommentsController do before { put :update, id: comment.to_param, comment: valid_attributes } describe "my comment" do - let(:comment) { FactoryGirl.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) end end describe "not my comment" do - let(:comment) { FactoryGirl.create :comment } + let(:comment) { FactoryBot.create :comment } it { expect(response).not_to be_success } end describe "attempting to change post_id" do - let(:post) { FactoryGirl.create :post, subject: 'our post' } - let(:other_post) { FactoryGirl.create :post, subject: 'the other 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) { FactoryGirl.create :comment, author: @member, post: post } + let(:comment) { FactoryBot.create :comment, author: @member, post: post } it "does not change post_id" do comment.reload expect(comment.post_id).to eq(post.id) @@ -102,14 +102,14 @@ describe CommentsController do before { delete :destroy, id: comment.to_param } describe "my comment" do - let(:comment) { FactoryGirl.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) end end describe "not my comment" do - let(:comment) { FactoryGirl.create :comment } + let(:comment) { FactoryBot.create :comment } it { expect(response).not_to be_success } end end diff --git a/spec/controllers/gardens_controller_spec.rb b/spec/controllers/gardens_controller_spec.rb index d22c549b1..5fef6e210 100644 --- a/spec/controllers/gardens_controller_spec.rb +++ b/spec/controllers/gardens_controller_spec.rb @@ -53,7 +53,7 @@ RSpec.describe GardensController, type: :controller do context "when signed in" do before(:each) { sign_in member } - let!(:member) { FactoryGirl.create(:member) } + let!(:member) { FactoryBot.create(:member) } describe "for another member's garden" do let(:not_my_garden) { double('garden') } diff --git a/spec/controllers/harvests_controller_spec.rb b/spec/controllers/harvests_controller_spec.rb index a197e0a17..a42d11f69 100644 --- a/spec/controllers/harvests_controller_spec.rb +++ b/spec/controllers/harvests_controller_spec.rb @@ -18,19 +18,19 @@ describe HarvestsController do def valid_attributes { owner_id: subject.current_member.id, - crop_id: FactoryGirl.create(:crop).id, - plant_part_id: FactoryGirl.create(:plant_part).id + crop_id: FactoryBot.create(:crop).id, + plant_part_id: FactoryBot.create(:plant_part).id } end describe "GET index" do before do - @member1 = FactoryGirl.create(:member) - @member2 = FactoryGirl.create(:member) - @tomato = FactoryGirl.create(:tomato) - @maize = FactoryGirl.create(:maize) - @harvest1 = FactoryGirl.create(:harvest, owner_id: @member1.id, crop_id: @tomato.id) - @harvest2 = FactoryGirl.create(:harvest, owner_id: @member2.id, crop_id: @maize.id) + @member1 = FactoryBot.create(:member) + @member2 = FactoryBot.create(:member) + @tomato = FactoryBot.create(:tomato) + @maize = FactoryBot.create(:maize) + @harvest1 = FactoryBot.create(:harvest, owner_id: @member1.id, crop_id: @tomato.id) + @harvest2 = FactoryBot.create(:harvest, owner_id: @member2.id, crop_id: @maize.id) end it "assigns all harvests as @harvests" do @@ -104,7 +104,7 @@ describe HarvestsController do end it "links to planting" do - planting = FactoryGirl.create(:planting, owner_id: member.id) + planting = FactoryBot.create(:planting, owner_id: member.id) post :create, harvest: valid_attributes.merge(planting_id: planting.id) expect(Harvest.last.planting.id).to eq(planting.id) end @@ -126,8 +126,8 @@ describe HarvestsController do end describe "not my planting" do - let(:not_my_planting) { FactoryGirl.create(:planting) } - let(:harvest) { FactoryGirl.create(:harvest) } + let(:not_my_planting) { FactoryBot.create(:planting) } + let(:harvest) { FactoryBot.create(:harvest) } it "does not save planting_id" do allow(Harvest).to receive(:new).and_return(harvest) post :create, harvest: valid_attributes.merge(planting_id: not_my_planting.id) @@ -178,8 +178,8 @@ describe HarvestsController do end describe "not my planting" do - let(:not_my_planting) { FactoryGirl.create(:planting) } - let(:harvest) { FactoryGirl.create(:harvest) } + let(:not_my_planting) { FactoryBot.create(:planting) } + let(:harvest) { FactoryBot.create(:harvest) } it "does not save planting_id" do put :update, id: harvest.to_param, harvest: valid_attributes.merge(planting_id: not_my_planting.id) diff --git a/spec/controllers/likes_controller_spec.rb b/spec/controllers/likes_controller_spec.rb index 670c51f35..6f43760c1 100644 --- a/spec/controllers/likes_controller_spec.rb +++ b/spec/controllers/likes_controller_spec.rb @@ -1,10 +1,10 @@ require 'rails_helper' describe LikesController do - let(:like) { FactoryGirl.create :like, member: member } - let(:member) { FactoryGirl.create(:member) } - let(:blogpost) { FactoryGirl.create(:post) } - let(:mypost) { FactoryGirl.create(:post, author: member) } + let(:like) { FactoryBot.create :like, member: member } + let(:member) { FactoryBot.create(:member) } + let(:blogpost) { FactoryBot.create(:post) } + let(:mypost) { FactoryBot.create(:post, author: member) } before { sign_in member } @@ -20,7 +20,7 @@ describe LikesController do end describe "Liking your own post" do - let(:blogpost) { FactoryGirl.create(:post, author: member) } + let(:blogpost) { FactoryBot.create(:post, author: member) } end end @@ -34,7 +34,7 @@ describe LikesController do end describe "Deleting someone else's like" do - let(:like) { FactoryGirl.create :like } + let(:like) { FactoryBot.create :like } it { expect(response.code).to eq('403') } it { JSON.parse(response.body)["error"] == "Unable to like" } end diff --git a/spec/controllers/member_controller_spec.rb b/spec/controllers/member_controller_spec.rb index 6db742c04..866507f5f 100644 --- a/spec/controllers/member_controller_spec.rb +++ b/spec/controllers/member_controller_spec.rb @@ -14,10 +14,10 @@ require 'rails_helper' describe MembersController do before :each do - @member = FactoryGirl.create(:member) - @posts = [FactoryGirl.create(:post, author: @member)] - @twitter_auth = FactoryGirl.create(:authentication, member: @member) - @flickr_auth = FactoryGirl.create(:flickr_authentication, member: @member) + @member = FactoryBot.create(:member) + @posts = [FactoryBot.create(:post, author: @member)] + @twitter_auth = FactoryBot.create(:authentication, member: @member) + @flickr_auth = FactoryBot.create(:flickr_authentication, member: @member) end describe "GET index" do @@ -60,7 +60,7 @@ describe MembersController do end it "doesn't show unconfirmed members" do - @member2 = FactoryGirl.create(:unconfirmed_member) + @member2 = FactoryBot.create(:unconfirmed_member) lambda { get :show, id: @member2.id }.should raise_error(ActiveRecord::RecordNotFound) end end diff --git a/spec/controllers/notifications_controller_spec.rb b/spec/controllers/notifications_controller_spec.rb index e9f32efc9..0619a6707 100644 --- a/spec/controllers/notifications_controller_spec.rb +++ b/spec/controllers/notifications_controller_spec.rb @@ -18,7 +18,7 @@ describe NotificationsController do def valid_attributes { "recipient_id" => subject.current_member.id, - "sender_id" => FactoryGirl.create(:member).id, + "sender_id" => FactoryBot.create(:member).id, "subject" => 'test' } end @@ -31,7 +31,7 @@ describe NotificationsController do def valid_attributes_for_sender { "sender_id" => subject.current_member.id, - "recipient_id" => FactoryGirl.create(:member).id, + "recipient_id" => FactoryBot.create(:member).id, "subject" => 'test' } end @@ -42,7 +42,7 @@ describe NotificationsController do describe "GET index" do it "assigns all notifications as @notifications" do - notification = FactoryGirl.create(:notification, recipient_id: subject.current_member.id) + notification = FactoryBot.create(:notification, recipient_id: subject.current_member.id) get :index, {} assigns(:notifications).should eq([notification]) end @@ -50,13 +50,13 @@ describe NotificationsController do describe "GET show" do it "assigns the requested notification as @notification" do - notification = FactoryGirl.create(:notification, recipient_id: subject.current_member.id) + notification = FactoryBot.create(:notification, recipient_id: subject.current_member.id) get :show, id: notification.to_param assigns(:notification).should eq(notification) end it "assigns the reply link for a post comment" do - notification = FactoryGirl.create(:notification, recipient_id: subject.current_member.id) + notification = FactoryBot.create(:notification, recipient_id: subject.current_member.id) get :show, id: notification.to_param assigns(:reply_link).should_not be_nil @@ -66,7 +66,7 @@ describe NotificationsController do end it "marks notifications as read" do - notification = FactoryGirl.create(:notification, recipient_id: subject.current_member.id) + notification = FactoryBot.create(:notification, recipient_id: subject.current_member.id) get :show, id: notification.to_param # we need to fetch it from the db again, can't test against the old one n = Notification.find(notification.id) @@ -76,7 +76,7 @@ describe NotificationsController do describe "GET reply" do it "marks notifications as read" do - notification = FactoryGirl.create(:notification, recipient_id: subject.current_member.id) + notification = FactoryBot.create(:notification, recipient_id: subject.current_member.id) get :reply, id: notification.to_param # we need to fetch it from the db again, can't test against the old one n = Notification.find(notification.id) @@ -86,7 +86,7 @@ describe NotificationsController do describe "GET new" do it "assigns a recipient" do - @recipient = FactoryGirl.create(:member) + @recipient = FactoryBot.create(:member) get :new, recipient_id: @recipient.id assigns(:recipient).should be_an_instance_of(Member) end @@ -95,7 +95,7 @@ describe NotificationsController do describe "POST create" do describe "with valid params" do it "redirects to the recipient's profile" do - @recipient = FactoryGirl.create(:member) + @recipient = FactoryBot.create(:member) post :create, notification: { recipient_id: @recipient.id, subject: 'foo' } response.should redirect_to(notifications_path) end diff --git a/spec/controllers/order_items_controller_spec.rb b/spec/controllers/order_items_controller_spec.rb index 8c5581e92..0c1b50706 100644 --- a/spec/controllers/order_items_controller_spec.rb +++ b/spec/controllers/order_items_controller_spec.rb @@ -16,11 +16,11 @@ describe OrderItemsController do login_member(:admin_member) before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member - @product = FactoryGirl.create(:product) - @order = FactoryGirl.create(:order, member: @member) - @order_item = FactoryGirl.create(:order_item, + @product = FactoryBot.create(:product) + @order = FactoryBot.create(:order, member: @member) + @order_item = FactoryBot.create(:order_item, order: @order, product: @product, price: @product.min_price) @@ -28,7 +28,7 @@ describe OrderItemsController do describe "POST create" do it "redirects to order" do - @order = FactoryGirl.create(:order, member: @member) + @order = FactoryBot.create(:order, member: @member) post :create, order_item: { order_id: @order.id, product_id: @product.id, @@ -38,9 +38,9 @@ describe OrderItemsController do end it 'creates an order for you' do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member - @product = FactoryGirl.create(:product) + @product = FactoryBot.create(:product) expect { post :create, order_item: { product_id: @product.id, @@ -52,8 +52,8 @@ describe OrderItemsController do describe "with non-int price" do it "converts 3.33 to 333 cents" do - @order = FactoryGirl.create(:order, member: @member) - @product = FactoryGirl.create(:product, min_price: 1) + @order = FactoryBot.create(:order, member: @member) + @product = FactoryBot.create(:product, min_price: 1) expect { post :create, order_item: { order_id: @order.id, diff --git a/spec/controllers/orders_controller_spec.rb b/spec/controllers/orders_controller_spec.rb index 36477d032..d02fc6e27 100644 --- a/spec/controllers/orders_controller_spec.rb +++ b/spec/controllers/orders_controller_spec.rb @@ -25,7 +25,7 @@ describe OrdersController do describe "GET checkout" do it 'sets the referral_code' do - member = FactoryGirl.create(:member) + member = FactoryBot.create(:member) sign_in member order = Order.create!(member_id: member.id) get :checkout, id: order.to_param, referral_code: 'FOOBAR' @@ -34,7 +34,7 @@ describe OrdersController do end it "redirects to Paypal" do - member = FactoryGirl.create(:member) + member = FactoryBot.create(:member) sign_in member order = Order.create!(member_id: member.id) get :checkout, id: order.to_param @@ -45,7 +45,7 @@ describe OrdersController do describe "GET complete" do it "assigns the requested order as @order" do - member = FactoryGirl.create(:member) + member = FactoryBot.create(:member) sign_in member order = Order.create!(member_id: member.id) get :complete, id: order.to_param @@ -55,7 +55,7 @@ describe OrdersController do describe "DELETE destroy" do it "redirects to the shop" do - member = FactoryGirl.create(:member) + member = FactoryBot.create(:member) sign_in member order = Order.create!(member_id: member.id) delete :destroy, id: order.id diff --git a/spec/controllers/photo_associations_controller_spec.rb b/spec/controllers/photo_associations_controller_spec.rb index bee2fddaf..a15d2143d 100644 --- a/spec/controllers/photo_associations_controller_spec.rb +++ b/spec/controllers/photo_associations_controller_spec.rb @@ -15,8 +15,8 @@ describe PhotoAssociationsController do before { photo.harvests << harvest } describe "my harvest my photo" do - let(:harvest) { FactoryGirl.create :harvest, owner: member } - let(:photo) { FactoryGirl.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, valid_params }.to change { photo.harvests.count }.by(-1) @@ -24,8 +24,8 @@ describe PhotoAssociationsController do end describe "another member's harvest from another member's photo" do - let(:harvest) { FactoryGirl.create :harvest } - let(:photo) { FactoryGirl.create :photo } + let(:harvest) { FactoryBot.create :harvest } + let(:photo) { FactoryBot.create :photo } it do expect do begin diff --git a/spec/controllers/photos_controller_spec.rb b/spec/controllers/photos_controller_spec.rb index 0197e2009..7c935422c 100644 --- a/spec/controllers/photos_controller_spec.rb +++ b/spec/controllers/photos_controller_spec.rb @@ -17,7 +17,7 @@ describe PhotosController do login_member def valid_attributes - member = FactoryGirl.create(:member) + member = FactoryBot.create(:member) { "owner_id" => member.id, "flickr_photo_id" => 1, @@ -35,7 +35,7 @@ describe PhotosController do describe "GET new" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member @member.stub(:flickr_photos) { [[], 0] } @member.stub(:flickr_sets) { { "foo" => "bar" } } @@ -43,7 +43,7 @@ describe PhotosController do end it "assigns the flickr auth as @flickr_auth" do - @auth = FactoryGirl.create(:flickr_authentication, member: @member) + @auth = FactoryBot.create(:flickr_authentication, member: @member) get :new, {} assigns(:flickr_auth).should be_an_instance_of(Authentication) end @@ -86,11 +86,11 @@ describe PhotosController do link_url: "http://example.com") end - let(:member) { FactoryGirl.create(:member) } - let(:garden) { FactoryGirl.create(:garden, owner: member) } - let(:planting) { FactoryGirl.create(:planting, garden: garden, owner: member) } - let(:harvest) { FactoryGirl.create(:harvest, owner: member) } - let(:photo) { FactoryGirl.create(:photo, owner: member) } + let(:member) { FactoryBot.create(:member) } + let(:garden) { FactoryBot.create(:garden, owner: member) } + let(:planting) { FactoryBot.create(:planting, garden: garden, owner: member) } + let(:harvest) { FactoryBot.create(:harvest, owner: member) } + let(:photo) { FactoryBot.create(:photo, owner: member) } describe "with valid params" do before { controller.stub(:current_member) { member } } it "attaches the photo to a planting" do @@ -120,7 +120,7 @@ describe PhotosController do end it "doesn't attach photo to a comment" do - comment = FactoryGirl.create(:comment) + comment = FactoryBot.create(:comment) post :create, photo: { flickr_photo_id: photo.flickr_photo_id }, type: "comment", id: comment.id expect(flash[:alert]).to be_present end @@ -140,8 +140,8 @@ describe PhotosController do describe "with matching owners" do before { controller.stub(:current_member) { member } } it "creates the planting/photo link" do - planting = FactoryGirl.create(:planting, garden: garden, owner: member) - photo = FactoryGirl.create(:photo, owner: member) + planting = FactoryBot.create(:planting, garden: garden, owner: member) + photo = FactoryBot.create(:photo, owner: member) post :create, photo: { flickr_photo_id: photo.flickr_photo_id }, type: "planting", id: planting.id expect(flash[:alert]).not_to be_present Photo.last.plantings.first.should eq planting @@ -155,10 +155,10 @@ describe PhotosController do end describe "with mismatched owners" do - let(:photo) { FactoryGirl.create(:photo) } + let(:photo) { FactoryBot.create(:photo) } it "does not create the planting/photo link" do # members will be auto-created, and different - another_planting = FactoryGirl.create(:planting) + another_planting = FactoryBot.create(:planting) post :create, photo: { flickr_photo_id: photo.flickr_photo_id }, type: "planting", id: another_planting.id expect(flash[:alert]).to be_present Photo.last.plantings.first.should_not eq another_planting @@ -166,7 +166,7 @@ describe PhotosController do it "does not create the harvest/photo link" do # members will be auto-created, and different - another_harvest = FactoryGirl.create(:harvest) + another_harvest = FactoryBot.create(:harvest) post :create, photo: { flickr_photo_id: photo.flickr_photo_id }, type: "harvest", id: another_harvest.id expect(flash[:alert]).to be_present Photo.last.harvests.first.should_not eq another_harvest diff --git a/spec/controllers/places_controller_spec.rb b/spec/controllers/places_controller_spec.rb index 390b5d77e..79c1dc623 100644 --- a/spec/controllers/places_controller_spec.rb +++ b/spec/controllers/places_controller_spec.rb @@ -19,8 +19,8 @@ describe PlacesController do describe "GET show" do before(:each) do - @member_london = FactoryGirl.create(:london_member) - @member_south_pole = FactoryGirl.create(:south_pole_member) + @member_london = FactoryBot.create(:london_member) + @member_south_pole = FactoryBot.create(:south_pole_member) end it "assigns place name" do diff --git a/spec/controllers/plantings_controller_spec.rb b/spec/controllers/plantings_controller_spec.rb index 068084e86..e9ce41369 100644 --- a/spec/controllers/plantings_controller_spec.rb +++ b/spec/controllers/plantings_controller_spec.rb @@ -17,19 +17,19 @@ describe PlantingsController do def valid_attributes { - garden_id: FactoryGirl.create(:garden, owner: subject.current_member).id, - crop_id: FactoryGirl.create(:crop).id + garden_id: FactoryBot.create(:garden, owner: subject.current_member).id, + crop_id: FactoryBot.create(:crop).id } end describe "GET index" do before do - @member1 = FactoryGirl.create(:member) - @member2 = FactoryGirl.create(:member) - @tomato = FactoryGirl.create(:tomato) - @maize = FactoryGirl.create(:maize) - @planting1 = FactoryGirl.create(:planting, crop: @tomato, owner: @member1) - @planting2 = FactoryGirl.create(:planting, crop: @maize, owner: @member2) + @member1 = FactoryBot.create(:member) + @member2 = FactoryBot.create(:member) + @tomato = FactoryBot.create(:tomato) + @maize = FactoryBot.create(:maize) + @planting1 = FactoryBot.create(:planting, crop: @tomato, owner: @member1) + @planting2 = FactoryBot.create(:planting, crop: @maize, owner: @member2) end it "assigns all plantings as @plantings" do @@ -52,7 +52,7 @@ describe PlantingsController do describe "GET new" do it "picks up crop from params" do - crop = FactoryGirl.create(:crop) + crop = FactoryBot.create(:crop) get :new, crop_id: crop.id assigns(:crop).should eq(crop) end @@ -63,28 +63,28 @@ describe PlantingsController do end it "picks up member's garden from params" do - garden = FactoryGirl.create(:garden, owner: member) + garden = FactoryBot.create(:garden, owner: member) get :new, garden_id: garden.id assigns(:garden).should eq(garden) end it "Doesn't display another member's garden on planting form" do - member = FactoryGirl.create(:member) # over-riding member from login_member() - garden = FactoryGirl.create(:garden, owner: member) + member = FactoryBot.create(:member) # over-riding member from login_member() + garden = FactoryBot.create(:garden, owner: member) get :new, garden_id: garden.id assigns(:garden).should_not eq(garden) end it "Doesn't display un-approved crops on planting form" do - crop = FactoryGirl.create(:crop, approval_status: 'pending') - FactoryGirl.create(:garden, owner: member) + crop = FactoryBot.create(:crop, approval_status: 'pending') + FactoryBot.create(:garden, owner: member) get :new, crop_id: crop.id assigns(:crop).should_not eq(crop) end it "Doesn't display rejected crops on planting form" do - crop = FactoryGirl.create(:crop, approval_status: 'rejected', reason_for_rejection: 'nope') - FactoryGirl.create(:garden, owner: member) + crop = FactoryBot.create(:crop, approval_status: 'rejected', reason_for_rejection: 'nope') + FactoryBot.create(:garden, owner: member) get :new, crop_id: crop.id assigns(:crop).should_not eq(crop) end diff --git a/spec/controllers/posts_controller_spec.rb b/spec/controllers/posts_controller_spec.rb index bb7adeb83..4cd61d242 100644 --- a/spec/controllers/posts_controller_spec.rb +++ b/spec/controllers/posts_controller_spec.rb @@ -16,7 +16,7 @@ describe PostsController do login_member def valid_attributes - member = FactoryGirl.create(:member) + member = FactoryBot.create(:member) { author_id: member.id, subject: "blah", body: "blah blah" } end diff --git a/spec/controllers/registrations_controller_spec.rb b/spec/controllers/registrations_controller_spec.rb index 56d277b75..c69144fd6 100644 --- a/spec/controllers/registrations_controller_spec.rb +++ b/spec/controllers/registrations_controller_spec.rb @@ -14,7 +14,7 @@ require 'rails_helper' describe RegistrationsController do before :each do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member controller.stub(:current_user) { @member } controller.stub(:devise_mapping).and_return(Devise.mappings[:member]) @@ -27,13 +27,13 @@ describe RegistrationsController do end it "picks up the twitter auth" do - @auth = FactoryGirl.create(:authentication, member: @member) + @auth = FactoryBot.create(:authentication, member: @member) get :edit assigns(:twitter_auth).should eq @auth end it "picks up the flickr auth" do - @auth = FactoryGirl.create(:flickr_authentication, member: @member) + @auth = FactoryBot.create(:flickr_authentication, member: @member) get :edit assigns(:flickr_auth).should eq @auth end diff --git a/spec/controllers/scientific_names_controller_spec.rb b/spec/controllers/scientific_names_controller_spec.rb index 0f10784f8..64b1e97fe 100644 --- a/spec/controllers/scientific_names_controller_spec.rb +++ b/spec/controllers/scientific_names_controller_spec.rb @@ -16,7 +16,7 @@ describe ScientificNamesController do login_member(:crop_wrangling_member) before(:each) do - @crop = FactoryGirl.create(:tomato) + @crop = FactoryBot.create(:tomato) end def valid_attributes diff --git a/spec/controllers/seeds_controller_spec.rb b/spec/controllers/seeds_controller_spec.rb index 1686bd28b..9ae6af1e2 100644 --- a/spec/controllers/seeds_controller_spec.rb +++ b/spec/controllers/seeds_controller_spec.rb @@ -15,7 +15,7 @@ require 'rails_helper' describe SeedsController do describe "GET index" do it "picks up owner from params" do - owner = FactoryGirl.create(:member) + owner = FactoryBot.create(:member) get :index, owner: owner.slug assigns(:owner).should eq(owner) end diff --git a/spec/controllers/shop_controller_spec.rb b/spec/controllers/shop_controller_spec.rb index 82b07a4b4..4a438ea76 100644 --- a/spec/controllers/shop_controller_spec.rb +++ b/spec/controllers/shop_controller_spec.rb @@ -14,8 +14,8 @@ require 'rails_helper' describe ShopController do before :each do - @product1 = FactoryGirl.create(:product) - @product2 = FactoryGirl.create(:product) + @product1 = FactoryBot.create(:product) + @product2 = FactoryBot.create(:product) end describe "GET index" do @@ -35,9 +35,9 @@ describe ShopController do end it "assigns @order as current_order if there is one" do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member - @order = FactoryGirl.create(:order, member: @member) + @order = FactoryBot.create(:order, member: @member) get :index, {} assigns(:order).should eq @order end diff --git a/spec/factories/account_types.rb b/spec/factories/account_types.rb index 0187a9e3d..a983e24e4 100644 --- a/spec/factories/account_types.rb +++ b/spec/factories/account_types.rb @@ -1,6 +1,6 @@ -# Read about factories at https://github.com/thoughtbot/factory_girl +# Read about factories at https://github.com/thoughtbot/factory_bot -FactoryGirl.define do +FactoryBot.define do factory :account_type do name "Free" is_paid false diff --git a/spec/factories/accounts.rb b/spec/factories/accounts.rb index 069c8e850..fb4805964 100644 --- a/spec/factories/accounts.rb +++ b/spec/factories/accounts.rb @@ -1,6 +1,6 @@ -# Read about factories at https://github.com/thoughtbot/factory_girl +# Read about factories at https://github.com/thoughtbot/factory_bot -FactoryGirl.define do +FactoryBot.define do # never do this directly. # create a member then look at member.account_detail instead. # (because it's auto-created, and there can only be one.) diff --git a/spec/factories/alternate_names.rb b/spec/factories/alternate_names.rb index 1c14d60ac..32c609cc3 100644 --- a/spec/factories/alternate_names.rb +++ b/spec/factories/alternate_names.rb @@ -1,6 +1,6 @@ -# Read about factories at https://github.com/thoughtbot/factory_girl +# Read about factories at https://github.com/thoughtbot/factory_bot -FactoryGirl.define do +FactoryBot.define do factory :alternate_name do name "alternate name" crop diff --git a/spec/factories/authentications.rb b/spec/factories/authentications.rb index 8b26549f0..0f385f680 100644 --- a/spec/factories/authentications.rb +++ b/spec/factories/authentications.rb @@ -1,6 +1,6 @@ -# Read about factories at https://github.com/thoughtbot/factory_girl +# Read about factories at https://github.com/thoughtbot/factory_bot -FactoryGirl.define do +FactoryBot.define do factory :authentication do member provider 'twitter' diff --git a/spec/factories/comments.rb b/spec/factories/comments.rb index 85dca1b4c..5b726bd41 100644 --- a/spec/factories/comments.rb +++ b/spec/factories/comments.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do factory :comment do post author diff --git a/spec/factories/crop.rb b/spec/factories/crop.rb index 6467cb813..c6f095354 100644 --- a/spec/factories/crop.rb +++ b/spec/factories/crop.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do factory :crop do name "magic bean" en_wikipedia_url "http://en.wikipedia.org/wiki/Magic_bean" diff --git a/spec/factories/follows.rb b/spec/factories/follows.rb index f54acc0e8..a6c609e48 100644 --- a/spec/factories/follows.rb +++ b/spec/factories/follows.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do factory :follow do follower followed diff --git a/spec/factories/forums.rb b/spec/factories/forums.rb index 0d8cff596..5636981fb 100644 --- a/spec/factories/forums.rb +++ b/spec/factories/forums.rb @@ -1,6 +1,6 @@ -# Read about factories at https://github.com/thoughtbot/factory_girl +# Read about factories at https://github.com/thoughtbot/factory_bot -FactoryGirl.define do +FactoryBot.define do factory :forum do name "Permaculture" description "*Everything* about permaculture!" diff --git a/spec/factories/garden.rb b/spec/factories/garden.rb index 8d6429e2a..1f3d7461d 100644 --- a/spec/factories/garden.rb +++ b/spec/factories/garden.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do factory :garden do name 'Springfield Community Garden' description "This is a **totally** cool garden" diff --git a/spec/factories/harvests.rb b/spec/factories/harvests.rb index 20a3affcd..3c89296a2 100644 --- a/spec/factories/harvests.rb +++ b/spec/factories/harvests.rb @@ -1,6 +1,6 @@ -# Read about factories at https://github.com/thoughtbot/factory_girl +# Read about factories at https://github.com/thoughtbot/factory_bot -FactoryGirl.define do +FactoryBot.define do factory :harvest do crop plant_part diff --git a/spec/factories/like.rb b/spec/factories/like.rb index 51f44665a..bf19554bb 100644 --- a/spec/factories/like.rb +++ b/spec/factories/like.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do factory :like do member association :likeable, factory: "post" diff --git a/spec/factories/member.rb b/spec/factories/member.rb index 0888edabb..b3380e628 100644 --- a/spec/factories/member.rb +++ b/spec/factories/member.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do sequence(:email) { |n| "member#{n}@example.com" } sequence(:login_name) { |n| "member#{n}" } @@ -60,11 +60,11 @@ FactoryGirl.define do end factory :admin_member do - roles { [FactoryGirl.create(:admin)] } + roles { [FactoryBot.create(:admin)] } end factory :crop_wrangling_member do - roles { [FactoryGirl.create(:crop_wrangler)] } + roles { [FactoryBot.create(:crop_wrangler)] } sequence(:login_name) { |n| "wrangler#{n}" } end diff --git a/spec/factories/notifications.rb b/spec/factories/notifications.rb index 4d6deac12..b893fcc1b 100644 --- a/spec/factories/notifications.rb +++ b/spec/factories/notifications.rb @@ -1,6 +1,6 @@ -# Read about factories at https://github.com/thoughtbot/factory_girl +# Read about factories at https://github.com/thoughtbot/factory_bot -FactoryGirl.define do +FactoryBot.define do factory :notification, aliases: [:message] do sender recipient @@ -10,7 +10,7 @@ FactoryGirl.define do post factory :no_email_notification do - recipient { FactoryGirl.create(:no_email_notifications_member) } + recipient { FactoryBot.create(:no_email_notifications_member) } end end end diff --git a/spec/factories/order_items.rb b/spec/factories/order_items.rb index f3b6f04ef..5dfba00ab 100644 --- a/spec/factories/order_items.rb +++ b/spec/factories/order_items.rb @@ -1,6 +1,6 @@ -# Read about factories at https://github.com/thoughtbot/factory_girl +# Read about factories at https://github.com/thoughtbot/factory_bot -FactoryGirl.define do +FactoryBot.define do factory :order_item do order product diff --git a/spec/factories/orders.rb b/spec/factories/orders.rb index a2183e732..514eb4a22 100644 --- a/spec/factories/orders.rb +++ b/spec/factories/orders.rb @@ -1,6 +1,6 @@ -# Read about factories at https://github.com/thoughtbot/factory_girl +# Read about factories at https://github.com/thoughtbot/factory_bot -FactoryGirl.define do +FactoryBot.define do factory :order do member factory :completed_order do diff --git a/spec/factories/photos.rb b/spec/factories/photos.rb index 70c1fb4fb..aef506bf0 100644 --- a/spec/factories/photos.rb +++ b/spec/factories/photos.rb @@ -1,6 +1,6 @@ -# Read about factories at https://github.com/thoughtbot/factory_girl +# Read about factories at https://github.com/thoughtbot/factory_bot -FactoryGirl.define do +FactoryBot.define do factory :photo do owner flickr_photo_id 1 diff --git a/spec/factories/plant_parts.rb b/spec/factories/plant_parts.rb index c0d6c53aa..695bf7542 100644 --- a/spec/factories/plant_parts.rb +++ b/spec/factories/plant_parts.rb @@ -1,6 +1,6 @@ -# Read about factories at https://github.com/thoughtbot/factory_girl +# Read about factories at https://github.com/thoughtbot/factory_bot -FactoryGirl.define do +FactoryBot.define do factory :plant_part do name "pollen" end diff --git a/spec/factories/planting.rb b/spec/factories/planting.rb index 32e0a6483..473930567 100644 --- a/spec/factories/planting.rb +++ b/spec/factories/planting.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do factory :planting do garden owner diff --git a/spec/factories/post.rb b/spec/factories/post.rb index 562912214..d53f33100 100644 --- a/spec/factories/post.rb +++ b/spec/factories/post.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do factory :post do subject "A Post" body "This is some text." diff --git a/spec/factories/products.rb b/spec/factories/products.rb index e34dedac8..444c8597d 100644 --- a/spec/factories/products.rb +++ b/spec/factories/products.rb @@ -1,6 +1,6 @@ -# Read about factories at https://github.com/thoughtbot/factory_girl +# Read about factories at https://github.com/thoughtbot/factory_bot -FactoryGirl.define do +FactoryBot.define do factory :product do name "annual subscription" description "paid membership, renewing yearly, *hurrah*" diff --git a/spec/factories/roles.rb b/spec/factories/roles.rb index d2f7ba262..fed5e5e00 100644 --- a/spec/factories/roles.rb +++ b/spec/factories/roles.rb @@ -1,6 +1,6 @@ -# Read about factories at https://github.com/thoughtbot/factory_girl +# Read about factories at https://github.com/thoughtbot/factory_bot -FactoryGirl.define do +FactoryBot.define do factory :role do name "Moderator" description "These people moderate the forums" diff --git a/spec/factories/scientific_name.rb b/spec/factories/scientific_name.rb index 4584cebf8..aa0911504 100644 --- a/spec/factories/scientific_name.rb +++ b/spec/factories/scientific_name.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do factory :scientific_name do association :crop, factory: :crop name "Beanus Magicus" diff --git a/spec/factories/seeds.rb b/spec/factories/seeds.rb index 323cdf2f2..41b3d404f 100644 --- a/spec/factories/seeds.rb +++ b/spec/factories/seeds.rb @@ -1,6 +1,6 @@ -# Read about factories at https://github.com/thoughtbot/factory_girl +# Read about factories at https://github.com/thoughtbot/factory_bot -FactoryGirl.define do +FactoryBot.define do factory :seed do owner crop diff --git a/spec/features/gardens/adding_gardens_spec.rb b/spec/features/gardens/adding_gardens_spec.rb index da2bd0481..c3f78dd18 100644 --- a/spec/features/gardens/adding_gardens_spec.rb +++ b/spec/features/gardens/adding_gardens_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' require 'custom_matchers' feature "Gardens", :js do - let(:member) { FactoryGirl.create :member } + let(:member) { FactoryBot.create :member } background do login_as member diff --git a/spec/features/likeable_spec.rb b/spec/features/likeable_spec.rb index 75294ee2d..f0bfd15a8 100644 --- a/spec/features/likeable_spec.rb +++ b/spec/features/likeable_spec.rb @@ -1,9 +1,9 @@ require 'rails_helper' feature 'Likeable', js: true do - let(:member) { FactoryGirl.create(:member) } - let(:another_member) { FactoryGirl.create(:london_member) } - let(:post) { FactoryGirl.create(:post) } + let(:member) { FactoryBot.create(:member) } + let(:another_member) { FactoryBot.create(:london_member) } + let(:post) { FactoryBot.create(:post) } context 'logged in member' do background do diff --git a/spec/features/members/deletion_spec.rb b/spec/features/members/deletion_spec.rb index 1d99c3570..3009f51be 100644 --- a/spec/features/members/deletion_spec.rb +++ b/spec/features/members/deletion_spec.rb @@ -2,16 +2,16 @@ require 'rails_helper' feature "member deletion" do context "with activity and followers" do - let(:member) { FactoryGirl.create(:member) } - let(:other_member) { FactoryGirl.create(:member) } - let(:memberpost) { FactoryGirl.create(:post, author: member) } - let(:othermemberpost) { FactoryGirl.create(:post, author: other_member) } - let!(:planting) { FactoryGirl.create(:planting, owner: member) } - let!(:harvest) { FactoryGirl.create(:harvest, owner: member) } - let!(:seed) { FactoryGirl.create(:seed, owner: member) } - let!(:secondgarden) { FactoryGirl.create(:garden, owner: member) } - let!(:order) { FactoryGirl.create(:order, member: member, completed_at: Time.zone.now) } - let(:admin) { FactoryGirl.create(:admin_member) } + let(:member) { FactoryBot.create(:member) } + let(:other_member) { FactoryBot.create(:member) } + let(:memberpost) { FactoryBot.create(:post, author: member) } + let(:othermemberpost) { FactoryBot.create(:post, author: other_member) } + let!(:planting) { FactoryBot.create(:planting, owner: member) } + let!(:harvest) { FactoryBot.create(:harvest, owner: member) } + let!(:seed) { FactoryBot.create(:seed, owner: member) } + let!(:secondgarden) { FactoryBot.create(:garden, owner: member) } + let!(:order) { FactoryBot.create(:order, member: member, completed_at: Time.zone.now) } + let(:admin) { FactoryBot.create(:admin_member) } background do login_as(member) visit member_path(other_member) @@ -22,12 +22,12 @@ feature "member deletion" do click_link 'Follow' logout login_as(member) - FactoryGirl.create(:comment, author: member, post: othermemberpost) - FactoryGirl.create(:comment, author: other_member, post: memberpost, body: "Fun comment-y thing") + FactoryBot.create(:comment, author: member, post: othermemberpost) + FactoryBot.create(:comment, author: other_member, post: memberpost, body: "Fun comment-y thing") # deletion breaks if no wranglers exist - FactoryGirl.create(:cropbot) + FactoryBot.create(:cropbot) # deletion breaks if ex_member doesn't exist - FactoryGirl.create(:member, login_name: "ex_member") + FactoryBot.create(:member, login_name: "ex_member") end scenario "has option to delete on member profile page" do @@ -143,11 +143,11 @@ feature "member deletion" do end context "for a crop wrangler" do - let(:member) { FactoryGirl.create(:crop_wrangling_member) } - let(:otherwrangler) { FactoryGirl.create(:crop_wrangling_member) } - let(:crop) { FactoryGirl.create(:crop, creator: member) } - FactoryGirl.create(:cropbot) - let!(:ex_wrangler) { FactoryGirl.create(:crop_wrangling_member, login_name: "ex_wrangler") } + let(:member) { FactoryBot.create(:crop_wrangling_member) } + let(:otherwrangler) { FactoryBot.create(:crop_wrangling_member) } + let(:crop) { FactoryBot.create(:crop, creator: member) } + FactoryBot.create(:cropbot) + let!(:ex_wrangler) { FactoryBot.create(:crop_wrangling_member, login_name: "ex_wrangler") } scenario "leaves crops behind" do login_as(otherwrangler) diff --git a/spec/features/notifications_spec.rb b/spec/features/notifications_spec.rb index 28436a3b2..feaf5d351 100644 --- a/spec/features/notifications_spec.rb +++ b/spec/features/notifications_spec.rb @@ -31,7 +31,7 @@ feature "Notifications", :js do describe 'pagination' do before do - 34.times { FactoryGirl.create :notification, recipient: recipient } + 34.times { FactoryBot.create :notification, recipient: recipient } login_as recipient visit notifications_path end diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb index 346cf722a..fe390bbc0 100644 --- a/spec/helpers/application_helper_spec.rb +++ b/spec/helpers/application_helper_spec.rb @@ -23,7 +23,7 @@ describe ApplicationHelper do describe '#avatar_uri' do context 'with a normal user' do before :each do - @member = FactoryGirl.build(:member, email: 'example@example.com', preferred_avatar_uri: nil) + @member = FactoryBot.build(:member, email: 'example@example.com', preferred_avatar_uri: nil) end it 'should render a gravatar uri' do expect(avatar_uri(@member)).to eq 'http://www.gravatar.com/avatar/23463b99b62a72f26ed677cc556c44e8?size=150&default=identicon' @@ -36,7 +36,7 @@ describe ApplicationHelper do context 'with a user who specified a preferred avatar uri' do before :each do - @member = FactoryGirl.build(:member, email: 'example@example.com', preferred_avatar_uri: 'http://media.catmoji.com/post/ujg/cat-in-hat.jpg') + @member = FactoryBot.build(:member, email: 'example@example.com', preferred_avatar_uri: 'http://media.catmoji.com/post/ujg/cat-in-hat.jpg') end it 'should render a the specified uri' do expect(avatar_uri(@member)).to eq 'http://media.catmoji.com/post/ujg/cat-in-hat.jpg' diff --git a/spec/helpers/gardens_helper_spec.rb b/spec/helpers/gardens_helper_spec.rb index d4c508c14..c22b51b79 100644 --- a/spec/helpers/gardens_helper_spec.rb +++ b/spec/helpers/gardens_helper_spec.rb @@ -3,28 +3,28 @@ require 'rails_helper' describe GardensHelper do describe "garden description" do it "is missing" do - garden = FactoryGirl.create(:garden, + garden = FactoryBot.create(:garden, description: nil) result = helper.display_garden_description(garden) expect(result).to eq "no description provided." end it "is less than 130 characters long" do - garden = FactoryGirl.create(:garden, + garden = FactoryBot.create(:garden, description: 'a' * 20) result = helper.display_garden_description(garden) expect(result).to eq 'a' * 20 end it "is 130 characters long" do - garden = FactoryGirl.create(:garden, + garden = FactoryBot.create(:garden, description: 'a' * 130) result = helper.display_garden_description(garden) expect(result).to eq 'a' * 130 end it "is more than 130 characters long" do - garden = FactoryGirl.create(:garden, + garden = FactoryBot.create(:garden, description: 'a' * 140) result = helper.display_garden_description(garden) expect(result).to eq 'a' * 126 + '...' + ' ' + link_to("Read more", garden_path(garden)) @@ -38,8 +38,8 @@ describe GardensHelper do end it "has 1 planting" do - crop = FactoryGirl.create(:crop) - plantings = [FactoryGirl.create(:planting, quantity: 10, crop: crop)] + crop = FactoryBot.create(:crop) + plantings = [FactoryBot.create(:planting, quantity: 10, crop: crop)] result = helper.display_garden_plantings(plantings) output = '
  • ' @@ -52,11 +52,11 @@ describe GardensHelper do it "has 2 plantings" do plantings = [] - crop1 = FactoryGirl.create(:crop) - plantings << FactoryGirl.create(:planting, quantity: 10, crop: crop1) + crop1 = FactoryBot.create(:crop) + plantings << FactoryBot.create(:planting, quantity: 10, crop: crop1) - crop2 = FactoryGirl.create(:crop) - plantings << FactoryGirl.create(:planting, quantity: 10, crop: crop2) + crop2 = FactoryBot.create(:crop) + plantings << FactoryBot.create(:planting, quantity: 10, crop: crop2) result = helper.display_garden_plantings(plantings.first(2)) @@ -74,14 +74,14 @@ describe GardensHelper do it "has 3 plantings" do plantings = [] - crop1 = FactoryGirl.create(:crop) - plantings << FactoryGirl.create(:planting, quantity: 10, crop: crop1) + crop1 = FactoryBot.create(:crop) + plantings << FactoryBot.create(:planting, quantity: 10, crop: crop1) - crop2 = FactoryGirl.create(:crop) - plantings << FactoryGirl.create(:planting, quantity: 10, crop: crop2) + crop2 = FactoryBot.create(:crop) + plantings << FactoryBot.create(:planting, quantity: 10, crop: crop2) - crop3 = FactoryGirl.create(:crop) - plantings << FactoryGirl.create(:planting, quantity: 10, crop: crop3) + crop3 = FactoryBot.create(:crop) + plantings << FactoryBot.create(:planting, quantity: 10, crop: crop3) result = helper.display_garden_plantings(plantings.first(2)) diff --git a/spec/helpers/harvests_helper_spec.rb b/spec/helpers/harvests_helper_spec.rb index 04dcc9dd8..1ba63810d 100644 --- a/spec/helpers/harvests_helper_spec.rb +++ b/spec/helpers/harvests_helper_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' describe HarvestsHelper do describe "display_quantity" do it "blank" do - harvest = FactoryGirl.create(:harvest, + harvest = FactoryBot.create(:harvest, quantity: nil, weight_quantity: nil) result = helper.display_quantity(harvest) @@ -11,7 +11,7 @@ describe HarvestsHelper do end it '3 individual' do - harvest = FactoryGirl.create(:harvest, + harvest = FactoryBot.create(:harvest, quantity: 3, unit: 'individual', weight_quantity: nil) @@ -20,7 +20,7 @@ describe HarvestsHelper do end it '1 bunch' do - harvest = FactoryGirl.create(:harvest, + harvest = FactoryBot.create(:harvest, quantity: 1, unit: 'bunch', weight_quantity: nil) @@ -29,7 +29,7 @@ describe HarvestsHelper do end it '3 bunches' do - harvest = FactoryGirl.create(:harvest, + harvest = FactoryBot.create(:harvest, quantity: 3, unit: 'bunch', weight_quantity: nil) @@ -38,7 +38,7 @@ describe HarvestsHelper do end it '3 kg' do - harvest = FactoryGirl.create(:harvest, + harvest = FactoryBot.create(:harvest, quantity: nil, unit: nil, weight_quantity: 3, @@ -48,7 +48,7 @@ describe HarvestsHelper do end it '3 individual weighing 3 kg' do - harvest = FactoryGirl.create(:harvest, + harvest = FactoryBot.create(:harvest, quantity: 3, unit: 'individual', weight_quantity: 3, @@ -58,7 +58,7 @@ describe HarvestsHelper do end it '3 bunches weighing 3 kg' do - harvest = FactoryGirl.create(:harvest, + harvest = FactoryBot.create(:harvest, quantity: 3, unit: 'bunch', weight_quantity: 3, diff --git a/spec/helpers/notifications_helper_spec.rb b/spec/helpers/notifications_helper_spec.rb index 152791034..a00dabff3 100644 --- a/spec/helpers/notifications_helper_spec.rb +++ b/spec/helpers/notifications_helper_spec.rb @@ -2,17 +2,17 @@ require 'rails_helper' describe NotificationsHelper do describe "reply_link" do - let(:member) { FactoryGirl.create(:member) } + let(:member) { FactoryBot.create(:member) } it "replies to PMs with PMs" do - notification = FactoryGirl.create(:notification, recipient_id: member.id, post_id: nil) + notification = FactoryBot.create(:notification, recipient_id: member.id, post_id: nil) link = helper.reply_link(notification) link.should_not be_nil link.should eq reply_notification_url(notification) end it "replies to post comments with post comments" do - notification = FactoryGirl.create(:notification, recipient_id: member.id) + notification = FactoryBot.create(:notification, recipient_id: member.id) link = helper.reply_link(notification) link.should_not be_nil diff --git a/spec/helpers/plantings_helper_spec.rb b/spec/helpers/plantings_helper_spec.rb index abbf74bd4..368f5e185 100644 --- a/spec/helpers/plantings_helper_spec.rb +++ b/spec/helpers/plantings_helper_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' describe PlantingsHelper do describe "display_days_before_maturity" do it "handles nil planted_at, nil finished_at, non-nil days_until_maturity" do - planting = FactoryGirl.build(:planting, + planting = FactoryBot.build(:planting, quantity: 5, planted_at: nil, finished_at: nil, @@ -13,7 +13,7 @@ describe PlantingsHelper do end it "handles non-nil planted_at and d_b_m, nil finished_at" do - planting = FactoryGirl.build(:planting, + planting = FactoryBot.build(:planting, quantity: 5, planted_at: Date.current, finished_at: nil, @@ -23,13 +23,13 @@ describe PlantingsHelper do end it "handles completed plantings" do - planting = FactoryGirl.build(:planting, finished: true) + planting = FactoryBot.build(:planting, finished: true) result = helper.display_days_before_maturity(planting) expect(result).to eq "0" end it "handles plantings that should have finished" do - planting = FactoryGirl.build(:planting, + planting = FactoryBot.build(:planting, quantity: 5, planted_at: Date.new(0, 1, 1), finished_at: nil, @@ -39,7 +39,7 @@ describe PlantingsHelper do end it "handles nil d_b_m and nil finished_at" do - planting = FactoryGirl.build(:planting, + planting = FactoryBot.build(:planting, quantity: 5, planted_at: Date.new(2012, 5, 12), finished_at: nil, @@ -49,7 +49,7 @@ describe PlantingsHelper do end it "handles finished_at dates in the future" do - planting = FactoryGirl.build(:planting, + planting = FactoryBot.build(:planting, quantity: 5, planted_at: Date.current, finished_at: Date.current + 5, @@ -60,10 +60,10 @@ describe PlantingsHelper do end describe "display_planting" do - let!(:member) { FactoryGirl.build(:member, login_name: 'crop_lady') } + let!(:member) { FactoryBot.build(:member, login_name: 'crop_lady') } it "does not have a quantity nor a planted from value provided" do - planting = FactoryGirl.build(:planting, + planting = FactoryBot.build(:planting, quantity: nil, planted_from: '', owner: member) @@ -72,7 +72,7 @@ describe PlantingsHelper do end it "does not have a quantity provided" do - planting = FactoryGirl.build(:planting, + planting = FactoryBot.build(:planting, quantity: nil, planted_from: 'seed', owner: member) @@ -82,7 +82,7 @@ describe PlantingsHelper do context "when quantity is greater than 1" do it "does not have a planted from value provided" do - planting = FactoryGirl.build(:planting, + planting = FactoryBot.build(:planting, quantity: 10, planted_from: '', owner: member) @@ -91,7 +91,7 @@ describe PlantingsHelper do end it "does have a planted from value provided" do - planting = FactoryGirl.build(:planting, + planting = FactoryBot.build(:planting, quantity: 5, planted_from: 'seed', owner: member) @@ -102,7 +102,7 @@ describe PlantingsHelper do context "when quantity is 1" do it "does not have a planted from value provided" do - planting = FactoryGirl.build(:planting, + planting = FactoryBot.build(:planting, quantity: 1, planted_from: '', owner: member) @@ -111,7 +111,7 @@ describe PlantingsHelper do end it "does have a planted from value provided" do - planting = FactoryGirl.build(:planting, + planting = FactoryBot.build(:planting, quantity: 1, planted_from: 'seed', owner: member) diff --git a/spec/helpers/seeds_helper_spec.rb b/spec/helpers/seeds_helper_spec.rb index 4b8330e10..3d559058e 100644 --- a/spec/helpers/seeds_helper_spec.rb +++ b/spec/helpers/seeds_helper_spec.rb @@ -3,28 +3,28 @@ require 'rails_helper' describe SeedsHelper do describe "seed description" do it "is missing" do - seed = FactoryGirl.create(:seed, + seed = FactoryBot.create(:seed, description: nil) result = helper.display_seed_description(seed) expect(result).to eq "no description provided." end it "is less than 130 characters long" do - seed = FactoryGirl.create(:seed, + seed = FactoryBot.create(:seed, description: 'a' * 20) result = helper.display_seed_description(seed) expect(result).to eq 'a' * 20 end it "is 130 characters long" do - seed = FactoryGirl.create(:seed, + seed = FactoryBot.create(:seed, description: 'a' * 130) result = helper.display_seed_description(seed) expect(result).to eq 'a' * 130 end it "is more than 130 characters long" do - seed = FactoryGirl.create(:seed, + seed = FactoryBot.create(:seed, description: 'a' * 140) result = helper.display_seed_description(seed) expect(result).to eq 'a' * 126 + '...' + ' ' + link_to("Read more", seed_path(seed)) diff --git a/spec/lib/haml/filters/escaped_markdown_spec.rb b/spec/lib/haml/filters/escaped_markdown_spec.rb index 46e6b10ea..5afac0a04 100644 --- a/spec/lib/haml/filters/escaped_markdown_spec.rb +++ b/spec/lib/haml/filters/escaped_markdown_spec.rb @@ -15,7 +15,7 @@ describe 'Haml::Filters::Escaped_Markdown' do end it 'converts quick crop links' do - @crop = FactoryGirl.create(:crop) + @crop = FactoryBot.create(:crop) rendered = Haml::Filters::EscapedMarkdown.render("[#{@crop.name}](crop)") rendered.should match(/<a href="/) end diff --git a/spec/lib/haml/filters/growstuff_markdown_spec.rb b/spec/lib/haml/filters/growstuff_markdown_spec.rb index 287b3146e..bc1b66b66 100644 --- a/spec/lib/haml/filters/growstuff_markdown_spec.rb +++ b/spec/lib/haml/filters/growstuff_markdown_spec.rb @@ -29,7 +29,7 @@ describe 'Haml::Filters::Growstuff_Markdown' do end it 'converts quick crop links' do - @crop = FactoryGirl.create(:crop) + @crop = FactoryBot.create(:crop) rendered = Haml::Filters::GrowstuffMarkdown.render(input_link(@crop.name)) expect(rendered).to match(/#{output_link(@crop)}/) end @@ -40,14 +40,14 @@ describe 'Haml::Filters::Growstuff_Markdown' do end it "doesn't convert escaped crop links" do - @crop = FactoryGirl.create(:crop) + @crop = FactoryBot.create(:crop) rendered = Haml::Filters::GrowstuffMarkdown.render("\\" << input_link(@crop.name)) expect(rendered).to match(/\[#{@crop.name}\]\(crop\)/) end it "handles multiple crop links" do - tomato = FactoryGirl.create(:tomato) - maize = FactoryGirl.create(:maize) + tomato = FactoryBot.create(:tomato) + maize = FactoryBot.create(:maize) string = "#{input_link(tomato)} #{input_link(maize)}" rendered = Haml::Filters::GrowstuffMarkdown.render(string) expect(rendered).to match(/#{output_link(tomato)} #{output_link(maize)}/) @@ -60,13 +60,13 @@ describe 'Haml::Filters::Growstuff_Markdown' do end it "finds crops case insensitively" do - @crop = FactoryGirl.create(:crop, name: 'tomato') + @crop = FactoryBot.create(:crop, name: 'tomato') rendered = Haml::Filters::GrowstuffMarkdown.render(input_link('ToMaTo')) expect(rendered).to match(/#{output_link(@crop, 'ToMaTo')}/) end it "fixes PT bug #78615258 (Markdown rendering bug with URLs and crops in same text)" do - tomato = FactoryGirl.create(:tomato) + tomato = FactoryBot.create(:tomato) string = "[test](http://example.com) [tomato](crop)" rendered = Haml::Filters::GrowstuffMarkdown.render(string) expect(rendered).to match(/#{output_link(tomato)}/) @@ -74,7 +74,7 @@ describe 'Haml::Filters::Growstuff_Markdown' do end it 'converts quick member links' do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) rendered = Haml::Filters::GrowstuffMarkdown.render(input_member_link(@member.login_name)) expect(rendered).to match(/#{output_member_link(@member)}/) end @@ -85,13 +85,13 @@ describe 'Haml::Filters::Growstuff_Markdown' do end it "doesn't convert escaped members" do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) rendered = Haml::Filters::GrowstuffMarkdown.render("\\" << input_member_link(@member.login_name)) expect(rendered).to match(/\[#{@member.login_name}\]\(member\)/) end it 'converts @ member links' do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) rendered = Haml::Filters::GrowstuffMarkdown.render("Hey @#{@member.login_name}! What's up") expect(rendered).to match(/#{output_member_link(@member, "@#{@member.login_name}")}/) end @@ -102,7 +102,7 @@ describe 'Haml::Filters::Growstuff_Markdown' do end it "doesn't convert nonexistent @ members" do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) @member_name = @member.login_name @member.destroy rendered = Haml::Filters::GrowstuffMarkdown.render("Hey @#{@member_name}") @@ -110,7 +110,7 @@ describe 'Haml::Filters::Growstuff_Markdown' do end it "doesn't convert escaped @ members" do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) rendered = Haml::Filters::GrowstuffMarkdown.render("Hey \\@#{@member.login_name}! What's up") expect(rendered).to include("Hey @#{@member.login_name}!") end diff --git a/spec/mailers/notifier_spec.rb b/spec/mailers/notifier_spec.rb index c766528b7..e50682700 100644 --- a/spec/mailers/notifier_spec.rb +++ b/spec/mailers/notifier_spec.rb @@ -2,7 +2,7 @@ require "rails_helper" describe Notifier do describe "notifications" do - let(:notification) { FactoryGirl.create(:notification) } + let(:notification) { FactoryBot.create(:notification) } let(:mail) { Notifier.notify(notification) } it 'sets the subject correctly' do @@ -19,7 +19,7 @@ describe Notifier do end describe "planting reminders" do - let(:member) { FactoryGirl.create(:member) } + let(:member) { FactoryBot.create(:member) } let(:mail) { Notifier.planting_reminder(member) } it 'sets the subject correctly' do @@ -44,8 +44,8 @@ describe Notifier do end describe "new crop request" do - let(:member) { FactoryGirl.create(:crop_wrangling_member) } - let(:crop) { FactoryGirl.create(:crop_request) } + let(:member) { FactoryBot.create(:crop_wrangling_member) } + let(:crop) { FactoryBot.create(:crop_request) } let(:mail) { Notifier.new_crop_request(member, crop) } it 'sets the subject correctly' do @@ -66,8 +66,8 @@ describe Notifier do end describe "crop approved" do - let(:member) { FactoryGirl.create(:member) } - let(:crop) { FactoryGirl.create(:crop) } + let(:member) { FactoryBot.create(:member) } + let(:crop) { FactoryBot.create(:crop) } let(:mail) { Notifier.crop_request_approved(member, crop) } it 'sets the subject correctly' do @@ -94,8 +94,8 @@ describe Notifier do end describe "crop rejected" do - let(:member) { FactoryGirl.create(:member) } - let(:crop) { FactoryGirl.create(:rejected_crop) } + let(:member) { FactoryBot.create(:member) } + let(:crop) { FactoryBot.create(:rejected_crop) } let(:mail) { Notifier.crop_request_rejected(member, crop) } it 'sets the subject correctly' do diff --git a/spec/models/ability_spec.rb b/spec/models/ability_spec.rb index aed568fde..f855a6cfd 100644 --- a/spec/models/ability_spec.rb +++ b/spec/models/ability_spec.rb @@ -2,36 +2,36 @@ require 'rails_helper' require 'cancan/matchers' describe Ability do - let(:member) { FactoryGirl.create(:member) } + let(:member) { FactoryBot.create(:member) } let(:ability) { Ability.new(member) } context "notifications" do it 'member can view their own notifications' do - notification = FactoryGirl.create(:notification, recipient: member) + notification = FactoryBot.create(:notification, recipient: member) ability.should be_able_to(:read, notification) end it "member can't view someone else's notifications" do - notification = FactoryGirl.create(:notification, - recipient: FactoryGirl.create(:member)) + notification = FactoryBot.create(:notification, + recipient: FactoryBot.create(:member)) ability.should_not be_able_to(:read, notification) end it "member can't send messages to themself" do ability.should_not be_able_to(:create, - FactoryGirl.create(:notification, + FactoryBot.create(:notification, recipient: member, sender: member)) end it "member can send messages to someone else" do ability.should be_able_to(:create, - FactoryGirl.create(:notification, - recipient: FactoryGirl.create(:member), + FactoryBot.create(:notification, + recipient: FactoryBot.create(:member), sender: member)) end end context "crop wrangling" do - let(:crop) { FactoryGirl.create(:crop) } + let(:crop) { FactoryBot.create(:crop) } context "standard member" do it "can't manage crops" do @@ -49,7 +49,7 @@ describe Ability do end context "crop wrangler" do - let(:role) { FactoryGirl.create(:crop_wrangler) } + let(:role) { FactoryBot.create(:crop_wrangler) } before(:each) do member.roles << role @@ -72,7 +72,7 @@ describe Ability do end context "products" do - let(:product) { FactoryGirl.create(:product) } + let(:product) { FactoryBot.create(:product) } context "standard member" do it "can't read or manage products" do @@ -84,7 +84,7 @@ describe Ability do end context "admin" do - let(:role) { FactoryGirl.create(:admin) } + let(:role) { FactoryBot.create(:admin) } before do member.roles << role @@ -110,19 +110,19 @@ describe Ability do end context "orders" do - let(:order) { FactoryGirl.create(:order, member: member) } + let(:order) { FactoryBot.create(:order, member: member) } let(:strangers_order) { - FactoryGirl.create(:order, - member: FactoryGirl.create(:member)) } + FactoryBot.create(:order, + member: FactoryBot.create(:member)) } let(:completed_order) { - FactoryGirl.create(:completed_order, + FactoryBot.create(:completed_order, member: member) } - let(:order_item) { FactoryGirl.create(:order_item, order: order) } + let(:order_item) { FactoryBot.create(:order_item, order: order) } let(:strangers_order_item) { - FactoryGirl.create(:order_item, + FactoryBot.create(:order_item, order: strangers_order) } let(:completed_order_item) { - FactoryGirl.create(:order_item, + FactoryBot.create(:order_item, order: completed_order) } context "standard member" do @@ -202,7 +202,7 @@ describe Ability do end context "admin" do - let(:role) { FactoryGirl.create(:admin) } + let(:role) { FactoryBot.create(:admin) } before do member.roles << role @@ -245,7 +245,7 @@ describe Ability do end context 'admin' do - let(:role) { FactoryGirl.create(:admin) } + let(:role) { FactoryBot.create(:admin) } before do member.roles << role @@ -263,7 +263,7 @@ describe Ability do end context 'plant parts' do - let(:plant_part) { FactoryGirl.create(:plant_part) } + let(:plant_part) { FactoryBot.create(:plant_part) } context 'ordinary member' do it "can read plant parts" do @@ -277,7 +277,7 @@ describe Ability do end context 'admin' do - let(:role) { FactoryGirl.create(:admin) } + let(:role) { FactoryBot.create(:admin) } before do member.roles << role @@ -296,7 +296,7 @@ describe Ability do end it "can't delete a plant part that has harvests" do - @harvest = FactoryGirl.create(:harvest, plant_part: plant_part) + @harvest = FactoryBot.create(:harvest, plant_part: plant_part) ability.should_not be_able_to(:destroy, plant_part) end end diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb index 52caf725f..15eb68084 100644 --- a/spec/models/account_spec.rb +++ b/spec/models/account_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe Account do - let(:member) { FactoryGirl.create(:member) } + let(:member) { FactoryBot.create(:member) } it "auto-creates an account detail record when a member is created" do member.account.should be_an_instance_of Account @@ -13,13 +13,13 @@ describe Account do end it "formats the 'paid until' date nicely" do - member.account.account_type = FactoryGirl.create(:account_type) + member.account.account_type = FactoryBot.create(:account_type) member.account.paid_until_string.should eq nil - member.account.account_type = FactoryGirl.create(:permanent_paid_account_type) + member.account.account_type = FactoryBot.create(:permanent_paid_account_type) member.account.paid_until_string.should eq "forever" - member.account.account_type = FactoryGirl.create(:paid_account_type) + member.account.account_type = FactoryBot.create(:paid_account_type) @time = Time.zone.now member.account.paid_until = @time member.account.paid_until_string.should eq @time.to_s diff --git a/spec/models/alternate_name_spec.rb b/spec/models/alternate_name_spec.rb index ec5684bcb..f358a9fca 100644 --- a/spec/models/alternate_name_spec.rb +++ b/spec/models/alternate_name_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe AlternateName do - let(:an) { FactoryGirl.create(:alternate_eggplant) } + let(:an) { FactoryBot.create(:alternate_eggplant) } it 'should save a basic alternate name' do expect(an.save).to be(true) diff --git a/spec/models/authentication_spec.rb b/spec/models/authentication_spec.rb index 10f6ac3d6..7e02a57f0 100644 --- a/spec/models/authentication_spec.rb +++ b/spec/models/authentication_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' describe Authentication do it 'creates an authentication' do - @auth = FactoryGirl.create(:authentication) + @auth = FactoryBot.create(:authentication) @auth.should be_an_instance_of Authentication @auth.member.should be_an_instance_of Member end diff --git a/spec/models/comment_spec.rb b/spec/models/comment_spec.rb index 3eacf4c0d..70d0a8386 100644 --- a/spec/models/comment_spec.rb +++ b/spec/models/comment_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' describe Comment do context "basic" do - let(:comment) { FactoryGirl.create(:comment) } + let(:comment) { FactoryBot.create(:comment) } it "belongs to a post" do comment.post.should be_an_instance_of Post @@ -14,16 +14,16 @@ describe Comment do end context "notifications" do - let(:comment) { FactoryGirl.create(:comment) } + let(:comment) { FactoryBot.create(:comment) } it "sends a notification when a comment is posted" do expect { - FactoryGirl.create(:comment) + FactoryBot.create(:comment) }.to change(Notification, :count).by(1) end it "sets the notification fields" do - @c = FactoryGirl.create(:comment) + @c = FactoryBot.create(:comment) @n = Notification.first @n.sender.should eq @c.author @n.recipient.should eq @c.post.author @@ -33,20 +33,20 @@ describe Comment do end it "doesn't send notifications to yourself" do - @m = FactoryGirl.create(:member) - @p = FactoryGirl.create(:post, author: @m) + @m = FactoryBot.create(:member) + @p = FactoryBot.create(:post, author: @m) expect { - FactoryGirl.create(:comment, post: @p, author: @m) + FactoryBot.create(:comment, post: @p, author: @m) }.to change(Notification, :count).by(0) end end context "ordering" do before(:each) do - @m = FactoryGirl.create(:member) - @p = FactoryGirl.create(:post, author: @m) - @c1 = FactoryGirl.create(:comment, post: @p, author: @m) - @c2 = FactoryGirl.create(:comment, post: @p, author: @m) + @m = FactoryBot.create(:member) + @p = FactoryBot.create(:post, author: @m) + @c1 = FactoryBot.create(:comment, post: @p, author: @m) + @c2 = FactoryBot.create(:comment, post: @p, author: @m) end it 'is in DESC order by default' do diff --git a/spec/models/crop_spec.rb b/spec/models/crop_spec.rb index a0593a3de..406a65eb0 100644 --- a/spec/models/crop_spec.rb +++ b/spec/models/crop_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' describe Crop do context 'all fields present' do - let(:crop) { FactoryGirl.create(:tomato) } + let(:crop) { FactoryBot.create(:tomato) } it 'should save a basic crop' do crop.save.should be(true) @@ -28,15 +28,15 @@ describe Crop do context 'invalid data' do it 'should not save a crop without a system name' do - crop = FactoryGirl.build(:crop, name: nil) + crop = FactoryBot.build(:crop, name: nil) expect { crop.save }.to raise_error ActiveRecord::StatementInvalid end end context 'ordering' do before do - @uppercase = FactoryGirl.create(:uppercasecrop, created_at: 1.minute.ago) - @lowercase = FactoryGirl.create(:lowercasecrop, created_at: 2.days.ago) + @uppercase = FactoryBot.create(:uppercasecrop, created_at: 1.minute.ago) + @lowercase = FactoryBot.create(:lowercasecrop, created_at: 2.days.ago) end it "should be sorted case-insensitively" do @@ -49,40 +49,40 @@ describe Crop do end context 'popularity' do - let(:tomato) { FactoryGirl.create(:tomato) } - let(:maize) { FactoryGirl.create(:maize) } - let(:cucumber) { FactoryGirl.create(:crop, name: 'cucumber') } + let(:tomato) { FactoryBot.create(:tomato) } + let(:maize) { FactoryBot.create(:maize) } + let(:cucumber) { FactoryBot.create(:crop, name: 'cucumber') } before do - FactoryGirl.create_list(:planting, 10, crop: maize) - FactoryGirl.create_list(:planting, 3, crop: tomato) + FactoryBot.create_list(:planting, 10, crop: maize) + FactoryBot.create_list(:planting, 3, crop: tomato) end it "sorts by most plantings" do Crop.popular.first.should eq maize - FactoryGirl.create_list(:planting, 10, crop: tomato) + FactoryBot.create_list(:planting, 10, crop: tomato) Crop.popular.first.should eq tomato end end it 'finds a default scientific name' do - @crop = FactoryGirl.create(:tomato) + @crop = FactoryBot.create(:tomato) @crop.default_scientific_name.should eq nil - @sn = FactoryGirl.create(:solanum_lycopersicum, crop: @crop) + @sn = FactoryBot.create(:solanum_lycopersicum, crop: @crop) @crop.reload @crop.default_scientific_name.should eq @sn.name end it 'counts plantings' do - @crop = FactoryGirl.create(:tomato) + @crop = FactoryBot.create(:tomato) @crop.plantings.size.should eq 0 - @planting = FactoryGirl.create(:planting, crop: @crop) + @planting = FactoryBot.create(:planting, crop: @crop) @crop.reload @crop.plantings.size.should eq 1 end context "wikipedia url" do - subject { FactoryGirl.build(:tomato, en_wikipedia_url: wikipedia_url) } + subject { FactoryBot.build(:tomato, en_wikipedia_url: wikipedia_url) } context 'not a url' do let(:wikipedia_url) { 'this is not valid' } @@ -122,27 +122,27 @@ describe Crop do context 'varieties' do it 'has a crop hierarchy' do - @tomato = FactoryGirl.create(:tomato) - @roma = FactoryGirl.create(:roma, parent_id: @tomato.id) + @tomato = FactoryBot.create(:tomato) + @roma = FactoryBot.create(:roma, parent_id: @tomato.id) @roma.parent.should eq @tomato @tomato.varieties.should eq [@roma] end it 'toplevel scope works' do - @tomato = FactoryGirl.create(:tomato) - @roma = FactoryGirl.create(:roma, parent_id: @tomato.id) + @tomato = FactoryBot.create(:tomato) + @roma = FactoryBot.create(:roma, parent_id: @tomato.id) Crop.toplevel.should eq [@tomato] end end context 'photos' do before :each do - @crop = FactoryGirl.create(:tomato) + @crop = FactoryBot.create(:tomato) end context 'with a planting photo' do before :each do - @planting = FactoryGirl.create(:planting, crop: @crop) - @photo = FactoryGirl.create(:photo) + @planting = FactoryBot.create(:planting, crop: @crop) + @photo = FactoryBot.create(:photo) @planting.photos << @photo end @@ -158,8 +158,8 @@ describe Crop do context 'with a harvest photo' do before :each do - @harvest = FactoryGirl.create(:harvest, crop: @crop) - @photo = FactoryGirl.create(:photo) + @harvest = FactoryBot.create(:harvest, crop: @crop) + @photo = FactoryBot.create(:photo) @harvest.photos << @photo end @@ -170,8 +170,8 @@ describe Crop do context 'and planting photo' do before :each do - @planting = FactoryGirl.create(:planting, crop: @crop) - @planting_photo = FactoryGirl.create(:photo) + @planting = FactoryBot.create(:planting, crop: @crop) + @planting_photo = FactoryBot.create(:photo) @planting.photos << @planting_photo end @@ -189,81 +189,81 @@ describe Crop do end context 'sunniness' do - let(:crop) { FactoryGirl.create(:tomato) } + let(:crop) { FactoryBot.create(:tomato) } it 'returns a hash of sunniness values' do - FactoryGirl.create(:sunny_planting, crop: crop) - FactoryGirl.create(:sunny_planting, crop: crop) - FactoryGirl.create(:semi_shady_planting, crop: crop) - FactoryGirl.create(:shady_planting, crop: crop) + FactoryBot.create(:sunny_planting, crop: crop) + FactoryBot.create(:sunny_planting, crop: crop) + FactoryBot.create(:semi_shady_planting, crop: crop) + FactoryBot.create(:shady_planting, crop: crop) crop.sunniness.should be_an_instance_of Hash end it 'counts each sunniness value' do - FactoryGirl.create(:sunny_planting, crop: crop) - FactoryGirl.create(:sunny_planting, crop: crop) - FactoryGirl.create(:semi_shady_planting, crop: crop) - FactoryGirl.create(:shady_planting, crop: crop) + FactoryBot.create(:sunny_planting, crop: crop) + FactoryBot.create(:sunny_planting, crop: crop) + FactoryBot.create(:semi_shady_planting, crop: crop) + FactoryBot.create(:shady_planting, crop: crop) crop.sunniness.should == { 'sun' => 2, 'shade' => 1, 'semi-shade' => 1 } end it 'ignores unused sunniness values' do - FactoryGirl.create(:sunny_planting, crop: crop) - FactoryGirl.create(:sunny_planting, crop: crop) - FactoryGirl.create(:semi_shady_planting, crop: crop) + FactoryBot.create(:sunny_planting, crop: crop) + FactoryBot.create(:sunny_planting, crop: crop) + FactoryBot.create(:semi_shady_planting, crop: crop) crop.sunniness.should == { 'sun' => 2, 'semi-shade' => 1 } end end context 'planted_from' do - let(:crop) { FactoryGirl.create(:tomato) } + let(:crop) { FactoryBot.create(:tomato) } it 'returns a hash of sunniness values' do - FactoryGirl.create(:seed_planting, crop: crop) - FactoryGirl.create(:seed_planting, crop: crop) - FactoryGirl.create(:seedling_planting, crop: crop) - FactoryGirl.create(:cutting_planting, crop: crop) + FactoryBot.create(:seed_planting, crop: crop) + FactoryBot.create(:seed_planting, crop: crop) + FactoryBot.create(:seedling_planting, crop: crop) + FactoryBot.create(:cutting_planting, crop: crop) crop.planted_from.should be_an_instance_of Hash end it 'counts each planted_from value' do - FactoryGirl.create(:seed_planting, crop: crop) - FactoryGirl.create(:seed_planting, crop: crop) - FactoryGirl.create(:seedling_planting, crop: crop) - FactoryGirl.create(:cutting_planting, crop: crop) + FactoryBot.create(:seed_planting, crop: crop) + FactoryBot.create(:seed_planting, crop: crop) + FactoryBot.create(:seedling_planting, crop: crop) + FactoryBot.create(:cutting_planting, crop: crop) crop.planted_from.should == { 'seed' => 2, 'seedling' => 1, 'cutting' => 1 } end it 'ignores unused planted_from values' do - FactoryGirl.create(:seed_planting, crop: crop) - FactoryGirl.create(:seed_planting, crop: crop) - FactoryGirl.create(:seedling_planting, crop: crop) + FactoryBot.create(:seed_planting, crop: crop) + FactoryBot.create(:seed_planting, crop: crop) + FactoryBot.create(:seedling_planting, crop: crop) crop.planted_from.should == { 'seed' => 2, 'seedling' => 1 } end end context 'popular plant parts' do - let(:crop) { FactoryGirl.create(:tomato) } + let(:crop) { FactoryBot.create(:tomato) } it 'returns a hash of plant_part values' do crop.popular_plant_parts.should be_an_instance_of Hash end it 'counts each plant_part value' do - @fruit = FactoryGirl.create(:plant_part) - @seed = FactoryGirl.create(:plant_part, name: 'seed') - @root = FactoryGirl.create(:plant_part, name: 'root') - @bulb = FactoryGirl.create(:plant_part, name: 'bulb') - @harvest1 = FactoryGirl.create(:harvest, + @fruit = FactoryBot.create(:plant_part) + @seed = FactoryBot.create(:plant_part, name: 'seed') + @root = FactoryBot.create(:plant_part, name: 'root') + @bulb = FactoryBot.create(:plant_part, name: 'bulb') + @harvest1 = FactoryBot.create(:harvest, crop: crop, plant_part: @fruit) - @harvest2 = FactoryGirl.create(:harvest, + @harvest2 = FactoryBot.create(:harvest, crop: crop, plant_part: @fruit) - @harvest3 = FactoryGirl.create(:harvest, + @harvest3 = FactoryBot.create(:harvest, crop: crop, plant_part: @seed) - @harvest4 = FactoryGirl.create(:harvest, + @harvest4 = FactoryBot.create(:harvest, crop: crop, plant_part: @root) crop.popular_plant_parts.should == { [@fruit.id, @fruit.name] => 2, @@ -275,19 +275,19 @@ describe Crop do context 'interesting' do it 'lists interesting crops' do # first, a couple of candidate crops - @crop1 = FactoryGirl.create(:crop) - @crop2 = FactoryGirl.create(:crop) + @crop1 = FactoryBot.create(:crop) + @crop2 = FactoryBot.create(:crop) # they need 3+ plantings each to be interesting (1..3).each do - FactoryGirl.create(:planting, crop: @crop1) + FactoryBot.create(:planting, crop: @crop1) end (1..3).each do - FactoryGirl.create(:planting, crop: @crop2) + FactoryBot.create(:planting, crop: @crop2) end # crops need 3+ photos to be interesting - @photo = FactoryGirl.create(:photo) + @photo = FactoryBot.create(:photo) [@crop1, @crop2].each do |c| (1..3).each do c.plantings.first.photos << @photo @@ -302,16 +302,16 @@ describe Crop do it 'ignores crops without plantings' do # first, a couple of candidate crops - @crop1 = FactoryGirl.create(:crop) - @crop2 = FactoryGirl.create(:crop) + @crop1 = FactoryBot.create(:crop) + @crop2 = FactoryBot.create(:crop) # only crop1 has plantings (1..3).each do - FactoryGirl.create(:planting, crop: @crop1) + FactoryBot.create(:planting, crop: @crop1) end # ... and photos - @photo = FactoryGirl.create(:photo) + @photo = FactoryBot.create(:photo) (1..3).each do @crop1.plantings.first.photos << @photo @crop1.plantings.first.save @@ -324,19 +324,19 @@ describe Crop do it 'ignores crops without photos' do # first, a couple of candidate crops - @crop1 = FactoryGirl.create(:crop) - @crop2 = FactoryGirl.create(:crop) + @crop1 = FactoryBot.create(:crop) + @crop2 = FactoryBot.create(:crop) # both crops have plantings (1..3).each do - FactoryGirl.create(:planting, crop: @crop1) + FactoryBot.create(:planting, crop: @crop1) end (1..3).each do - FactoryGirl.create(:planting, crop: @crop2) + FactoryBot.create(:planting, crop: @crop2) end # but only crop1 has photos - @photo = FactoryGirl.create(:photo) + @photo = FactoryBot.create(:photo) (1..3).each do @crop1.plantings.first.photos << @photo @crop1.plantings.first.save @@ -350,20 +350,20 @@ describe Crop do context "harvests" do it "has harvests" do - crop = FactoryGirl.create(:crop) - harvest = FactoryGirl.create(:harvest, crop: crop) + crop = FactoryBot.create(:crop) + harvest = FactoryBot.create(:harvest, crop: crop) crop.harvests.should eq [harvest] end end it 'has plant_parts' do - @maize = FactoryGirl.create(:maize) - @pp1 = FactoryGirl.create(:plant_part) - @pp2 = FactoryGirl.create(:plant_part) - @h1 = FactoryGirl.create(:harvest, + @maize = FactoryBot.create(:maize) + @pp1 = FactoryBot.create(:plant_part) + @pp2 = FactoryBot.create(:plant_part) + @h1 = FactoryBot.create(:harvest, crop: @maize, plant_part: @pp1) - @h2 = FactoryGirl.create(:harvest, + @h2 = FactoryBot.create(:harvest, crop: @maize, plant_part: @pp2) @maize.plant_parts.should include @pp1 @@ -371,19 +371,19 @@ describe Crop do end it "doesn't duplicate plant_parts" do - @maize = FactoryGirl.create(:maize) - @pp1 = FactoryGirl.create(:plant_part) - @h1 = FactoryGirl.create(:harvest, + @maize = FactoryBot.create(:maize) + @pp1 = FactoryBot.create(:plant_part) + @h1 = FactoryBot.create(:harvest, crop: @maize, plant_part: @pp1) - @h2 = FactoryGirl.create(:harvest, + @h2 = FactoryBot.create(:harvest, crop: @maize, plant_part: @pp1) @maize.plant_parts.should eq [@pp1] end context "search", :elasticsearch do - let(:mushroom) { FactoryGirl.create(:crop, name: 'mushroom') } + let(:mushroom) { FactoryBot.create(:crop, name: 'mushroom') } before do sync_elasticsearch([mushroom]) @@ -402,12 +402,12 @@ describe Crop do Crop.search('mUsH').should include mushroom end it "doesn't find 'rejected' crop" do - @rejected_crop = FactoryGirl.create(:rejected_crop, name: 'tomato') + @rejected_crop = FactoryBot.create(:rejected_crop, name: 'tomato') sync_elasticsearch([@rejected_crop]) Crop.search('tomato').should_not include @rejected_crop end it "doesn't find 'pending' crop" do - @crop_request = FactoryGirl.create(:crop_request, name: 'tomato') + @crop_request = FactoryBot.create(:crop_request, name: 'tomato') sync_elasticsearch([@crop_request]) Crop.search('tomato').should_not include @crop_request end @@ -417,7 +417,7 @@ describe Crop do before(:each) do # don't use 'let' for this -- we need to actually create it, # regardless of whether it's used. - @cropbot = FactoryGirl.create(:cropbot) + @cropbot = FactoryBot.create(:cropbot) end context "scientific names" do @@ -539,7 +539,7 @@ describe Crop do end it "loads a crop with a parent" do - parent = FactoryGirl.create(:crop, name: 'parent') + parent = FactoryBot.create(:crop, name: 'parent') crop = CsvImporter.new.import_crop( ["tomato", "http://en.wikipedia.org/wiki/Tomato", "parent"] ) @@ -572,9 +572,9 @@ describe Crop do end context "crop-post association" do - let!(:tomato) { FactoryGirl.create(:tomato) } - let!(:maize) { FactoryGirl.create(:maize) } - let!(:post) { FactoryGirl.create(:post, body: "[maize](crop)[tomato](crop)[tomato](crop)") } + let!(:tomato) { FactoryBot.create(:tomato) } + let!(:maize) { FactoryBot.create(:maize) } + let!(:post) { FactoryBot.create(:post, body: "[maize](crop)[tomato](crop)[tomato](crop)") } describe "destroying a crop" do before do @@ -593,15 +593,15 @@ describe Crop do context "crop rejections" do let!(:rejected_reason) do - FactoryGirl.create(:crop, name: 'tomato', - approval_status: 'rejected', - reason_for_rejection: 'not edible') + FactoryBot.create(:crop, name: 'tomato', + approval_status: 'rejected', + reason_for_rejection: 'not edible') end let!(:rejected_other) do - FactoryGirl.create(:crop, name: 'tomato', - approval_status: 'rejected', - reason_for_rejection: 'other', - rejection_notes: 'blah blah blah') + FactoryBot.create(:crop, name: 'tomato', + approval_status: 'rejected', + reason_for_rejection: 'other', + rejection_notes: 'blah blah blah') end describe "rejecting a crop" do diff --git a/spec/models/follow_spec.rb b/spec/models/follow_spec.rb index 95b82d8a8..4bf82f2b3 100644 --- a/spec/models/follow_spec.rb +++ b/spec/models/follow_spec.rb @@ -2,8 +2,8 @@ require 'spec_helper' describe Follow do before(:each) do - @member1 = FactoryGirl.create(:member) - @member2 = FactoryGirl.create(:member) + @member1 = FactoryBot.create(:member) + @member2 = FactoryBot.create(:member) end it "sends a notification when a follow is created" do diff --git a/spec/models/forum_spec.rb b/spec/models/forum_spec.rb index 59b502ff2..5fab0bfed 100644 --- a/spec/models/forum_spec.rb +++ b/spec/models/forum_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe Forum do - let(:forum) { FactoryGirl.create(:forum) } + let(:forum) { FactoryBot.create(:forum) } it "belongs to an owner" do forum.owner.should be_an_instance_of Member @@ -16,14 +16,14 @@ describe Forum do end it "has many posts" do - @post1 = FactoryGirl.create(:forum_post, forum: forum) - @post2 = FactoryGirl.create(:forum_post, forum: forum) + @post1 = FactoryBot.create(:forum_post, forum: forum) + @post2 = FactoryBot.create(:forum_post, forum: forum) forum.posts.size.should == 2 end it "orders posts in reverse chron order" do - @post1 = FactoryGirl.create(:forum_post, forum: forum, created_at: 2.days.ago) - @post2 = FactoryGirl.create(:forum_post, forum: forum, created_at: 1.day.ago) + @post1 = FactoryBot.create(:forum_post, forum: forum, created_at: 2.days.ago) + @post2 = FactoryBot.create(:forum_post, forum: forum, created_at: 1.day.ago) forum.posts.first.should eq @post2 end end diff --git a/spec/models/garden_spec.rb b/spec/models/garden_spec.rb index 8a27097c3..85af8d86d 100644 --- a/spec/models/garden_spec.rb +++ b/spec/models/garden_spec.rb @@ -1,8 +1,8 @@ require 'rails_helper' describe Garden do - let(:owner) { FactoryGirl.create(:member) } - let(:garden) { FactoryGirl.create(:garden, owner: owner) } + let(:owner) { FactoryBot.create(:member) } + let(:garden) { FactoryBot.create(:garden, owner: owner) } it "should have a slug" do garden.slug.should match(/member\d+-springfield-community-garden/) @@ -13,32 +13,32 @@ describe Garden do end it "doesn't allow a nil name" do - garden = FactoryGirl.build(:garden, name: nil) + garden = FactoryBot.build(:garden, name: nil) garden.should_not be_valid end it "doesn't allow a blank name" do - garden = FactoryGirl.build(:garden, name: "") + garden = FactoryBot.build(:garden, name: "") garden.should_not be_valid end it "allows numbers" do - garden = FactoryGirl.build(:garden, name: "100 vines of 2 kamo-kamo") + garden = FactoryBot.build(:garden, name: "100 vines of 2 kamo-kamo") garden.should_not be_valid end it "allows macrons" do - garden = FactoryGirl.build(:garden, name: "Kūmara and pūha patch") + garden = FactoryBot.build(:garden, name: "Kūmara and pūha patch") garden.should_not be_valid end it "doesn't allow a name with only spaces" do - garden = FactoryGirl.build(:garden, name: " ") + garden = FactoryBot.build(:garden, name: " ") garden.should_not be_valid end it "doesn't allow a new lines in garden names" do - garden = FactoryGirl.build(:garden, name: "My garden\nI am a 1337 hacker") + garden = FactoryBot.build(:garden, name: "My garden\nI am a 1337 hacker") garden.should_not be_valid end @@ -51,38 +51,38 @@ describe Garden do end context "featured plantings" do - let(:tomato) { FactoryGirl.create(:tomato) } - let(:maize) { FactoryGirl.create(:maize) } - let(:chard) { FactoryGirl.create(:chard) } - let(:apple) { FactoryGirl.create(:apple) } - let(:pear) { FactoryGirl.create(:pear) } - let(:walnut) { FactoryGirl.create(:walnut) } + let(:tomato) { FactoryBot.create(:tomato) } + let(:maize) { FactoryBot.create(:maize) } + let(:chard) { FactoryBot.create(:chard) } + let(:apple) { FactoryBot.create(:apple) } + let(:pear) { FactoryBot.create(:pear) } + let(:walnut) { FactoryBot.create(:walnut) } it "should fetch < 4 featured plantings if insufficient exist" do - @p1 = FactoryGirl.create(:planting, crop: tomato, garden: garden) - @p2 = FactoryGirl.create(:planting, crop: maize, garden: garden) + @p1 = FactoryBot.create(:planting, crop: tomato, garden: garden) + @p2 = FactoryBot.create(:planting, crop: maize, garden: garden) garden.featured_plantings.should eq [@p2, @p1] end it "should fetch most recent 4 featured plantings" do - @p1 = FactoryGirl.create(:planting, crop: tomato, garden: garden) - @p2 = FactoryGirl.create(:planting, crop: maize, garden: garden) - @p3 = FactoryGirl.create(:planting, crop: chard, garden: garden) - @p4 = FactoryGirl.create(:planting, crop: apple, garden: garden) - @p5 = FactoryGirl.create(:planting, crop: walnut, garden: garden) + @p1 = FactoryBot.create(:planting, crop: tomato, garden: garden) + @p2 = FactoryBot.create(:planting, crop: maize, garden: garden) + @p3 = FactoryBot.create(:planting, crop: chard, garden: garden) + @p4 = FactoryBot.create(:planting, crop: apple, garden: garden) + @p5 = FactoryBot.create(:planting, crop: walnut, garden: garden) garden.featured_plantings.should eq [@p5, @p4, @p3, @p2] end it "should skip repeated plantings" do - @p1 = FactoryGirl.create(:planting, crop: tomato, garden: garden) - @p2 = FactoryGirl.create(:planting, crop: maize, garden: garden) - @p3 = FactoryGirl.create(:planting, crop: chard, garden: garden) - @p4 = FactoryGirl.create(:planting, crop: apple, garden: garden) - @p5 = FactoryGirl.create(:planting, crop: walnut, garden: garden) - @p6 = FactoryGirl.create(:planting, crop: apple, garden: garden) - @p7 = FactoryGirl.create(:planting, crop: pear, garden: garden) + @p1 = FactoryBot.create(:planting, crop: tomato, garden: garden) + @p2 = FactoryBot.create(:planting, crop: maize, garden: garden) + @p3 = FactoryBot.create(:planting, crop: chard, garden: garden) + @p4 = FactoryBot.create(:planting, crop: apple, garden: garden) + @p5 = FactoryBot.create(:planting, crop: walnut, garden: garden) + @p6 = FactoryBot.create(:planting, crop: apple, garden: garden) + @p7 = FactoryBot.create(:planting, crop: pear, garden: garden) garden.featured_plantings.should eq [@p7, @p6, @p5, @p3] end @@ -90,16 +90,16 @@ describe Garden do context 'ordering' do it "should be sorted alphabetically" do - FactoryGirl.create(:garden_z) - a = FactoryGirl.create(:garden_a) + FactoryBot.create(:garden_z) + a = FactoryBot.create(:garden_a) Garden.first.should == a end end it "destroys plantings when deleted" do - garden = FactoryGirl.create(:garden, owner: owner) - @planting1 = FactoryGirl.create(:planting, garden: garden) - @planting2 = FactoryGirl.create(:planting, garden: garden) + garden = FactoryBot.create(:garden, owner: owner) + @planting1 = FactoryBot.create(:planting, garden: garden) + @planting2 = FactoryBot.create(:planting, garden: garden) garden.plantings.size.should eq(2) all = Planting.count garden.destroy @@ -108,37 +108,37 @@ describe Garden do context 'area' do it 'allows numeric area' do - garden = FactoryGirl.build(:garden, area: 33) + garden = FactoryBot.build(:garden, area: 33) garden.should be_valid end it "doesn't allow negative area" do - garden = FactoryGirl.build(:garden, area: -5) + garden = FactoryBot.build(:garden, area: -5) garden.should_not be_valid end it 'allows decimal quantities' do - garden = FactoryGirl.build(:garden, area: 3.3) + garden = FactoryBot.build(:garden, area: 3.3) garden.should be_valid end it 'allows blank quantities' do - garden = FactoryGirl.build(:garden, area: '') + garden = FactoryBot.build(:garden, area: '') garden.should be_valid end it 'allows nil quantities' do - garden = FactoryGirl.build(:garden, area: nil) + garden = FactoryBot.build(:garden, area: nil) garden.should be_valid end it 'cleans up zero quantities' do - garden = FactoryGirl.build(:garden, area: 0) + garden = FactoryBot.build(:garden, area: 0) garden.area.should == 0 end it "doesn't allow non-numeric quantities" do - garden = FactoryGirl.build(:garden, area: "99a") + garden = FactoryBot.build(:garden, area: "99a") garden.should_not be_valid end end @@ -146,27 +146,27 @@ describe Garden do context 'units' do Garden::AREA_UNITS_VALUES.values.push(nil, '').each do |s| it "#{s} should be a valid unit" do - garden = FactoryGirl.build(:garden, area_unit: s) + garden = FactoryBot.build(:garden, area_unit: s) garden.should be_valid end end it 'should refuse invalid unit values' do - garden = FactoryGirl.build(:garden, area_unit: 'not valid') + garden = FactoryBot.build(:garden, area_unit: 'not valid') garden.should_not be_valid garden.errors[:area_unit].should include("not valid is not a valid area unit") end it 'sets area unit to blank if area is blank' do - garden = FactoryGirl.build(:garden, area: '', area_unit: 'acre') + garden = FactoryBot.build(:garden, area: '', area_unit: 'acre') garden.should be_valid garden.area_unit.should eq nil end end context 'active scopes' do - let(:active) { FactoryGirl.create(:garden) } - let(:inactive) { FactoryGirl.create(:inactive_garden) } + let(:active) { FactoryBot.create(:garden) } + let(:inactive) { FactoryBot.create(:inactive_garden) } it 'includes active garden in active scope' do Garden.active.should include active @@ -179,9 +179,9 @@ describe Garden do end it "marks plantings as finished when garden is inactive" do - garden = FactoryGirl.create(:garden) - p1 = FactoryGirl.create(:planting, garden: garden) - p2 = FactoryGirl.create(:planting, garden: garden) + garden = FactoryBot.create(:garden) + p1 = FactoryBot.create(:planting, garden: garden) + p2 = FactoryBot.create(:planting, garden: garden) p1.finished.should eq false p2.finished.should eq false @@ -196,10 +196,10 @@ describe Garden do end it "doesn't mark the wrong plantings as finished" do - g1 = FactoryGirl.create(:garden) - g2 = FactoryGirl.create(:garden) - p1 = FactoryGirl.create(:planting, garden: g1) - p2 = FactoryGirl.create(:planting, garden: g2) + g1 = FactoryBot.create(:garden) + g2 = FactoryBot.create(:garden) + p1 = FactoryBot.create(:planting, garden: g1) + p2 = FactoryBot.create(:planting, garden: g2) # mark the garden as inactive g1.active = false @@ -215,8 +215,8 @@ describe Garden do end context 'photos' do - let(:garden) { FactoryGirl.create(:garden) } - let(:photo) { FactoryGirl.create(:photo) } + let(:garden) { FactoryBot.create(:garden) } + let(:photo) { FactoryBot.create(:photo) } before do garden.photos << photo @@ -237,7 +237,7 @@ describe Garden do end it 'chooses the most recent photo' do - @photo2 = FactoryGirl.create(:photo) + @photo2 = FactoryBot.create(:photo) garden.photos << @photo2 garden.default_photo.should eq @photo2 end diff --git a/spec/models/harvest_spec.rb b/spec/models/harvest_spec.rb index 614fd673c..6229a1cc0 100644 --- a/spec/models/harvest_spec.rb +++ b/spec/models/harvest_spec.rb @@ -2,43 +2,43 @@ require 'rails_helper' describe Harvest do it "has an owner" do - harvest = FactoryGirl.create(:harvest) + harvest = FactoryBot.create(:harvest) harvest.owner.should be_an_instance_of Member end it "has a crop" do - harvest = FactoryGirl.create(:harvest) + harvest = FactoryBot.create(:harvest) harvest.crop.should be_an_instance_of Crop end context 'quantity' do it 'allows numeric quantities' do - @harvest = FactoryGirl.build(:harvest, quantity: 33) + @harvest = FactoryBot.build(:harvest, quantity: 33) @harvest.should be_valid end it 'allows decimal quantities' do - @harvest = FactoryGirl.build(:harvest, quantity: 3.3) + @harvest = FactoryBot.build(:harvest, quantity: 3.3) @harvest.should be_valid end it 'allows blank quantities' do - @harvest = FactoryGirl.build(:harvest, quantity: '') + @harvest = FactoryBot.build(:harvest, quantity: '') @harvest.should be_valid end it 'allows nil quantities' do - @harvest = FactoryGirl.build(:harvest, quantity: nil) + @harvest = FactoryBot.build(:harvest, quantity: nil) @harvest.should be_valid end it 'cleans up zero quantities' do - @harvest = FactoryGirl.build(:harvest, quantity: 0) + @harvest = FactoryBot.build(:harvest, quantity: 0) @harvest.quantity.should == 0 end it "doesn't allow non-numeric quantities" do - @harvest = FactoryGirl.build(:harvest, quantity: "99a") + @harvest = FactoryBot.build(:harvest, quantity: "99a") @harvest.should_not be_valid end end @@ -47,19 +47,19 @@ describe Harvest do it 'all valid units should work' do ['individual', 'bunch', 'sprig', 'handful', 'litre', 'pint', 'quart', 'bucket', 'basket', 'bushel', nil, ''].each do |s| - @harvest = FactoryGirl.build(:harvest, unit: s) + @harvest = FactoryBot.build(:harvest, unit: s) @harvest.should be_valid end end it 'should refuse invalid unit values' do - @harvest = FactoryGirl.build(:harvest, unit: 'not valid') + @harvest = FactoryBot.build(:harvest, unit: 'not valid') @harvest.should_not be_valid @harvest.errors[:unit].should include("not valid is not a valid unit") end it 'sets unit to blank if quantity is blank' do - @harvest = FactoryGirl.build(:harvest, quantity: '', unit: 'individual') + @harvest = FactoryBot.build(:harvest, quantity: '', unit: 'individual') @harvest.should be_valid @harvest.unit.should eq nil end @@ -67,32 +67,32 @@ describe Harvest do context 'weight quantity' do it 'allows numeric weight quantities' do - @harvest = FactoryGirl.build(:harvest, weight_quantity: 33) + @harvest = FactoryBot.build(:harvest, weight_quantity: 33) @harvest.should be_valid end it 'allows decimal weight quantities' do - @harvest = FactoryGirl.build(:harvest, weight_quantity: 3.3) + @harvest = FactoryBot.build(:harvest, weight_quantity: 3.3) @harvest.should be_valid end it 'allows blank weight quantities' do - @harvest = FactoryGirl.build(:harvest, weight_quantity: '') + @harvest = FactoryBot.build(:harvest, weight_quantity: '') @harvest.should be_valid end it 'allows nil weight quantities' do - @harvest = FactoryGirl.build(:harvest, weight_quantity: nil) + @harvest = FactoryBot.build(:harvest, weight_quantity: nil) @harvest.should be_valid end it 'cleans up zero quantities' do - @harvest = FactoryGirl.build(:harvest, weight_quantity: 0) + @harvest = FactoryBot.build(:harvest, weight_quantity: 0) @harvest.weight_quantity.should == 0 end it "doesn't allow non-numeric weight quantities" do - @harvest = FactoryGirl.build(:harvest, weight_quantity: "99a") + @harvest = FactoryBot.build(:harvest, weight_quantity: "99a") @harvest.should_not be_valid end end @@ -100,19 +100,19 @@ describe Harvest do context 'weight units' do it 'all valid units should work' do ['kg', 'lb', 'oz', nil, ''].each do |s| - @harvest = FactoryGirl.build(:harvest, weight_unit: s) + @harvest = FactoryBot.build(:harvest, weight_unit: s) @harvest.should be_valid end end it 'should refuse invalid weight unit values' do - @harvest = FactoryGirl.build(:harvest, weight_unit: 'not valid') + @harvest = FactoryBot.build(:harvest, weight_unit: 'not valid') @harvest.should_not be_valid @harvest.errors[:weight_unit].should include("not valid is not a valid unit") end it 'sets weight_unit to blank if quantity is blank' do - @harvest = FactoryGirl.build(:harvest, weight_quantity: '', weight_unit: 'kg') + @harvest = FactoryBot.build(:harvest, weight_quantity: '', weight_unit: 'kg') @harvest.should be_valid @harvest.weight_unit.should eq nil end @@ -120,19 +120,19 @@ describe Harvest do context "standardized weights" do it 'converts from pounds' do - @harvest = FactoryGirl.create(:harvest, weight_quantity: 2, weight_unit: "lb") + @harvest = FactoryBot.create(:harvest, weight_quantity: 2, weight_unit: "lb") @harvest.should be_valid @harvest.reload.si_weight.should eq 0.907 end it 'converts from ounces' do - @harvest = FactoryGirl.create(:harvest, weight_quantity: 16, weight_unit: "oz") + @harvest = FactoryBot.create(:harvest, weight_quantity: 16, weight_unit: "oz") @harvest.should be_valid @harvest.reload.si_weight.should eq 0.454 end it 'leaves kg alone' do - @harvest = FactoryGirl.create(:harvest, weight_quantity: 2, weight_unit: "kg") + @harvest = FactoryBot.create(:harvest, weight_quantity: 2, weight_unit: "kg") @harvest.should be_valid @harvest.reload.si_weight.should eq 2.0 end @@ -140,91 +140,91 @@ describe Harvest do context 'ordering' do it 'lists most recent harvests first' do - @h1 = FactoryGirl.create(:harvest, created_at: 1.day.ago) - @h2 = FactoryGirl.create(:harvest, created_at: 1.hour.ago) + @h1 = FactoryBot.create(:harvest, created_at: 1.day.ago) + @h2 = FactoryBot.create(:harvest, created_at: 1.hour.ago) Harvest.all.should eq [@h2, @h1] end end context "stringification" do - let(:crop) { FactoryGirl.create(:crop, name: "apricot") } + let(:crop) { FactoryBot.create(:crop, name: "apricot") } it "apricots" do - @h = FactoryGirl.create(:harvest, crop: crop, - quantity: nil, - unit: nil, - weight_quantity: nil, - weight_unit: nil) + @h = FactoryBot.create(:harvest, crop: crop, + quantity: nil, + unit: nil, + weight_quantity: nil, + weight_unit: nil) @h.to_s.should eq "apricots" end it "1 individual apricot" do - @h = FactoryGirl.create(:harvest, crop: crop, - quantity: 1, - unit: 'individual', - weight_quantity: nil, - weight_unit: nil) + @h = FactoryBot.create(:harvest, crop: crop, + quantity: 1, + unit: 'individual', + weight_quantity: nil, + weight_unit: nil) @h.to_s.should eq "1 individual apricot" end it "10 individual apricots" do - @h = FactoryGirl.create(:harvest, crop: crop, - quantity: 10, - unit: 'individual', - weight_quantity: nil, - weight_unit: nil) + @h = FactoryBot.create(:harvest, crop: crop, + quantity: 10, + unit: 'individual', + weight_quantity: nil, + weight_unit: nil) @h.to_s.should eq "10 individual apricots" end it "1 bushel of apricots" do - @h = FactoryGirl.create(:harvest, crop: crop, - quantity: 1, - unit: 'bushel', - weight_quantity: nil, - weight_unit: nil) + @h = FactoryBot.create(:harvest, crop: crop, + quantity: 1, + unit: 'bushel', + weight_quantity: nil, + weight_unit: nil) @h.to_s.should eq "1 bushel of apricots" end it "1.5 bushels of apricots" do - @h = FactoryGirl.create(:harvest, crop: crop, - quantity: 1.5, - unit: 'bushel', - weight_quantity: nil, - weight_unit: nil) + @h = FactoryBot.create(:harvest, crop: crop, + quantity: 1.5, + unit: 'bushel', + weight_quantity: nil, + weight_unit: nil) @h.to_s.should eq "1.5 bushels of apricots" end it "10 bushels of apricots" do - @h = FactoryGirl.create(:harvest, crop: crop, - quantity: 10, - unit: 'bushel', - weight_quantity: nil, - weight_unit: nil) + @h = FactoryBot.create(:harvest, crop: crop, + quantity: 10, + unit: 'bushel', + weight_quantity: nil, + weight_unit: nil) @h.to_s.should eq "10 bushels of apricots" end it "apricots weighing 1.2 kg" do - @h = FactoryGirl.create(:harvest, crop: crop, - quantity: nil, - unit: nil, - weight_quantity: 1.2, - weight_unit: 'kg') + @h = FactoryBot.create(:harvest, crop: crop, + quantity: nil, + unit: nil, + weight_quantity: 1.2, + weight_unit: 'kg') @h.to_s.should eq "apricots weighing 1.2 kg" end it "10 bushels of apricots weighing 100 kg" do - @h = FactoryGirl.create(:harvest, crop: crop, - quantity: 10, - unit: 'bushel', - weight_quantity: 100, - weight_unit: 'kg') + @h = FactoryBot.create(:harvest, crop: crop, + quantity: 10, + unit: 'bushel', + weight_quantity: 100, + weight_unit: 'kg') @h.to_s.should eq "10 bushels of apricots weighing 100 kg" end end context 'photos' do before :each do - @harvest = FactoryGirl.create(:harvest) + @harvest = FactoryBot.create(:harvest) end context 'without a photo' do @@ -234,8 +234,8 @@ describe Harvest do context 'and with a crop(planting) photo' do before :each do - @photo = FactoryGirl.create(:photo) - @planting = FactoryGirl.create(:planting, crop: @harvest.crop) + @photo = FactoryBot.create(:photo) + @planting = FactoryBot.create(:planting, crop: @harvest.crop) @planting.photos << @photo end @@ -247,7 +247,7 @@ describe Harvest do context 'with a photo' do before do - @photo = FactoryGirl.create(:photo) + @photo = FactoryBot.create(:photo) @harvest.photos << @photo end @@ -272,8 +272,8 @@ describe Harvest do context 'and with a crop(planting) photo' do before :each do - @crop_photo = FactoryGirl.create(:photo) - @planting = FactoryGirl.create(:planting, crop: @harvest.crop) + @crop_photo = FactoryBot.create(:photo) + @planting = FactoryBot.create(:planting, crop: @harvest.crop) @planting.photos << @crop_photo end @@ -284,7 +284,7 @@ describe Harvest do context 'and a second photo' do before :each do - @photo2 = FactoryGirl.create(:photo) + @photo2 = FactoryBot.create(:photo) @harvest.photos << @photo2 end @@ -296,8 +296,8 @@ describe Harvest do end it 'excludes deleted members' do - member = FactoryGirl.create :member - harvest = FactoryGirl.create :harvest, owner: member + member = FactoryBot.create :member + harvest = FactoryBot.create :harvest, owner: member expect(Harvest.joins(:owner).all).to include(harvest) member.destroy expect(Harvest.joins(:owner).all).not_to include(harvest) diff --git a/spec/models/like_spec.rb b/spec/models/like_spec.rb index 6c10ed590..50a2c1116 100644 --- a/spec/models/like_spec.rb +++ b/spec/models/like_spec.rb @@ -1,8 +1,8 @@ require 'rails_helper' describe 'like' do - let(:member) { FactoryGirl.create(:member) } - let(:post) { FactoryGirl.create(:post) } + let(:member) { FactoryBot.create(:member) } + let(:post) { FactoryBot.create(:post) } context 'existing like' do before(:each) do diff --git a/spec/models/member_spec.rb b/spec/models/member_spec.rb index c0b82c122..4a42a8409 100644 --- a/spec/models/member_spec.rb +++ b/spec/models/member_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' describe 'member' do context 'valid member' do - let(:member) { FactoryGirl.create(:member) } + let(:member) { FactoryBot.create(:member) } it 'should be fetchable from the database' do member2 = Member.find(member.id) @@ -43,7 +43,7 @@ describe 'member' do end it 'should be able to fetch posts' do - post = FactoryGirl.create(:post, author: member) + post = FactoryBot.create(:post, author: member) member.posts.should eq [post] end @@ -52,27 +52,27 @@ describe 'member' do end it 'has many plantings' do - FactoryGirl.create(:planting, owner: member) + FactoryBot.create(:planting, owner: member) member.plantings.size.should eq 1 end it "has many comments" do - FactoryGirl.create(:comment, author: member) - FactoryGirl.create(:comment, author: member) + FactoryBot.create(:comment, author: member) + FactoryBot.create(:comment, author: member) member.comments.size.should == 2 end it "has many forums" do - FactoryGirl.create(:forum, owner: member) - FactoryGirl.create(:forum, owner: member) + FactoryBot.create(:forum, owner: member) + FactoryBot.create(:forum, owner: member) member.forums.size.should == 2 end it "has many likes" do - @post1 = FactoryGirl.create(:post, author: member) - @post2 = FactoryGirl.create(:post, author: member) - @like1 = FactoryGirl.create(:like, member: member, likeable: @post1) - @like2 = FactoryGirl.create(:like, member: member, likeable: @post2) + @post1 = FactoryBot.create(:post, author: member) + @post2 = FactoryBot.create(:post, author: member) + @like1 = FactoryBot.create(:like, member: member, likeable: @post1) + @like2 = FactoryBot.create(:like, member: member, likeable: @post2) expect(member.likes.length).to eq 2 end @@ -101,7 +101,7 @@ describe 'member' do end context 'no TOS agreement' do - let(:member) { FactoryGirl.build(:no_tos_member) } + let(:member) { FactoryBot.build(:no_tos_member) } it "should refuse to save a member who hasn't agreed to the TOS" do member.save.should_not be(true) @@ -110,8 +110,8 @@ describe 'member' do context 'newsletter scope' do it 'finds newsletter recipients' do - member1 = FactoryGirl.create(:member) - member2 = FactoryGirl.create(:newsletter_recipient_member) + member1 = FactoryBot.create(:member) + member2 = FactoryBot.create(:newsletter_recipient_member) Member.wants_newsletter.should include member2 Member.wants_newsletter.should_not include member1 end @@ -119,15 +119,15 @@ describe 'member' do context 'same :login_name' do it "should not allow two members with the same login_name" do - FactoryGirl.create(:member, login_name: "bob") - member = FactoryGirl.build(:member, login_name: "bob") + FactoryBot.create(:member, login_name: "bob") + member = FactoryBot.build(:member, login_name: "bob") member.should_not be_valid member.errors[:login_name].should include("has already been taken") end it "tests uniqueness case-insensitively" do - FactoryGirl.create(:member, login_name: "bob") - member = FactoryGirl.build(:member, login_name: "BoB") + FactoryBot.create(:member, login_name: "bob") + member = FactoryBot.build(:member, login_name: "BoB") member.should_not be_valid member.errors[:login_name].should include("has already been taken") end @@ -135,15 +135,15 @@ describe 'member' do context 'case sensitivity' do it 'preserves case of login name' do - FactoryGirl.create(:member, login_name: "BOB") + FactoryBot.create(:member, login_name: "BOB") Member.find('bob').login_name.should eq 'BOB' end end context 'ordering' do before do - FactoryGirl.create(:member, login_name: "Zoe") - FactoryGirl.create(:member, login_name: "Anna") + FactoryBot.create(:member, login_name: "Zoe") + FactoryBot.create(:member, login_name: "Anna") end it "should be sorted by name" do expect(Member.first.login_name).to eq("Anna") @@ -152,27 +152,27 @@ describe 'member' do context 'invalid login names' do it "doesn't allow short names" do - member = FactoryGirl.build(:invalid_member_shortname) + member = FactoryBot.build(:invalid_member_shortname) member.should_not be_valid member.errors[:login_name].should include("should be between 2 and 25 characters long") end it "doesn't allow really long names" do - member = FactoryGirl.build(:invalid_member_longname) + member = FactoryBot.build(:invalid_member_longname) member.should_not be_valid member.errors[:login_name].should include("should be between 2 and 25 characters long") end it "doesn't allow spaces in names" do - member = FactoryGirl.build(:invalid_member_spaces) + member = FactoryBot.build(:invalid_member_spaces) member.should_not be_valid member.errors[:login_name].should include("may only include letters, numbers, or underscores") end it "doesn't allow other chars in names" do - member = FactoryGirl.build(:invalid_member_badchars) + member = FactoryBot.build(:invalid_member_badchars) member.should_not be_valid member.errors[:login_name].should include("may only include letters, numbers, or underscores") end it "doesn't allow reserved names" do - member = FactoryGirl.build(:invalid_member_badname) + member = FactoryBot.build(:invalid_member_badname) member.should_not be_valid member.errors[:login_name].should include("name is reserved") end @@ -180,22 +180,22 @@ describe 'member' do context 'valid login names' do it "allows plain alphanumeric chars in names" do - member = FactoryGirl.build(:valid_member_alphanumeric) + member = FactoryBot.build(:valid_member_alphanumeric) member.should be_valid end it "allows uppercase chars in names" do - member = FactoryGirl.build(:valid_member_uppercase) + member = FactoryBot.build(:valid_member_uppercase) member.should be_valid end it "allows underscores in names" do - member = FactoryGirl.build(:valid_member_underscore) + member = FactoryBot.build(:valid_member_underscore) member.should be_valid end end context 'roles' do - let(:member) { FactoryGirl.create(:member) } - let(:role) { FactoryGirl.create(:role) } + let(:member) { FactoryBot.create(:member) } + let(:role) { FactoryBot.create(:role) } before do member.roles << role @@ -207,13 +207,13 @@ describe 'member' do end it 'sets up roles in factories' do - admin = FactoryGirl.create(:admin_member) + admin = FactoryBot.create(:admin_member) admin.role?(:admin).should eq true end it 'converts role names properly' do # need to make sure spaces get turned to underscores - role = FactoryGirl.create(:role, name: "a b c") + role = FactoryBot.create(:role, name: "a b c") member.roles << role member.role?(:a_b_c).should eq true end @@ -221,8 +221,8 @@ describe 'member' do context 'confirmed scope' do before(:each) do - FactoryGirl.create(:member) - FactoryGirl.create(:member) + FactoryBot.create(:member) + FactoryBot.create(:member) end it 'sees confirmed members' do @@ -230,7 +230,7 @@ describe 'member' do end it 'ignores unconfirmed members' do - FactoryGirl.create(:unconfirmed_member) + FactoryBot.create(:unconfirmed_member) Member.confirmed.size.should == 2 end end @@ -238,17 +238,17 @@ describe 'member' do context 'located scope' do # located members must have location, lat, long it 'finds members who have locations' do - london_member = FactoryGirl.create(:london_member) + london_member = FactoryBot.create(:london_member) Member.located.should include london_member end it 'ignores members with blank locations' do - nowhere_member = FactoryGirl.create(:member) + nowhere_member = FactoryBot.create(:member) Member.located.should_not include nowhere_member end it 'ignores members with blank lat/long' do - london_member = FactoryGirl.create(:london_member) + london_member = FactoryBot.create(:london_member) london_member.latitude = nil london_member.longitude = nil london_member.save(validate: false) @@ -258,8 +258,8 @@ describe 'member' do context 'near location' do it 'finds nearby members and sorts them' do - edinburgh_member = FactoryGirl.create(:edinburgh_member) - london_member = FactoryGirl.create(:london_member) + edinburgh_member = FactoryBot.create(:edinburgh_member) + london_member = FactoryBot.create(:london_member) Member.nearest_to('Greenwich, UK').should eq [london_member, edinburgh_member] end end @@ -278,10 +278,10 @@ describe 'member' do :unconfirmed_member, # !1 :london_member, # 1, 2, !3 :member # 1, !2, 3 - ].collect { |m| FactoryGirl.create(m) } + ].collect { |m| FactoryBot.create(m) } [0, 1, 2, 3, 5].each do |i| - FactoryGirl.create(:planting, owner: @members[i]) + FactoryBot.create(:planting, owner: @members[i]) end @members[0].updated_at = 3.days.ago @@ -294,7 +294,7 @@ describe 'member' do # Some members have multiple plantings, but should only appear once 3.times do - FactoryGirl.create(:planting, owner: @members[2]) + FactoryBot.create(:planting, owner: @members[2]) end end @@ -306,32 +306,32 @@ describe 'member' do context 'orders' do it 'finds the current order' do - member = FactoryGirl.create(:member) - FactoryGirl.create(:completed_order, member: member) - order2 = FactoryGirl.create(:order, member: member) + member = FactoryBot.create(:member) + FactoryBot.create(:completed_order, member: member) + order2 = FactoryBot.create(:order, member: member) member.current_order.should eq order2 end it "copes if there's no current order" do - member = FactoryGirl.create(:member) - FactoryGirl.create(:completed_order, member: member) - FactoryGirl.create(:completed_order, member: member) + member = FactoryBot.create(:member) + FactoryBot.create(:completed_order, member: member) + FactoryBot.create(:completed_order, member: member) member.current_order.should be_nil end end context "paid accounts" do - let(:member) { FactoryGirl.create(:member) } + let(:member) { FactoryBot.create(:member) } it "recognises a permanent paid account" do - account_type = FactoryGirl.create(:account_type, + account_type = FactoryBot.create(:account_type, is_paid: true, is_permanent_paid: true) member.account.account_type = account_type member.paid?.should be(true) end it "recognises a current paid account" do - account_type = FactoryGirl.create(:account_type, + account_type = FactoryBot.create(:account_type, is_paid: true, is_permanent_paid: false) member.account.account_type = account_type member.account.paid_until = Time.zone.now + 1.month @@ -339,7 +339,7 @@ describe 'member' do end it "recognises an expired paid account" do - account_type = FactoryGirl.create(:account_type, + account_type = FactoryBot.create(:account_type, is_paid: true, is_permanent_paid: false) member.account.account_type = account_type member.account.paid_until = Time.zone.now - 1.minute @@ -347,14 +347,14 @@ describe 'member' do end it "recognises a free account" do - account_type = FactoryGirl.create(:account_type, + account_type = FactoryBot.create(:account_type, is_paid: false, is_permanent_paid: false) member.account.account_type = account_type member.paid?.should be(false) end it "recognises a free account even with paid_until set" do - account_type = FactoryGirl.create(:account_type, + account_type = FactoryBot.create(:account_type, is_paid: false, is_permanent_paid: false) member.account.account_type = account_type member.account.paid_until = Time.zone.now + 1.month @@ -364,9 +364,9 @@ describe 'member' do context "update account" do let(:product) { - FactoryGirl.create(:product, + FactoryBot.create(:product, paid_months: 3)} - let(:member) { FactoryGirl.create(:member) } + let(:member) { FactoryBot.create(:member) } it "sets account_type" do member.update_account_after_purchase(product) @@ -388,16 +388,16 @@ describe 'member' do context 'harvests' do it 'has harvests' do - member = FactoryGirl.create(:member) - harvest = FactoryGirl.create(:harvest, owner: member) + member = FactoryBot.create(:member) + harvest = FactoryBot.create(:harvest, owner: member) member.harvests.should eq [harvest] end end context 'member who followed another member' do - let(:member1) { FactoryGirl.create(:member) } - let(:member2) { FactoryGirl.create(:member) } - let(:member3) { FactoryGirl.create(:member) } + let(:member1) { FactoryBot.create(:member) } + let(:member2) { FactoryBot.create(:member) } + let(:member3) { FactoryBot.create(:member) } before do @follow = member1.follows.create(follower_id: member1.id, followed_id: member2.id) @@ -425,7 +425,7 @@ describe 'member' do end context 'subscriptions' do - let(:member) { FactoryGirl.create(:member) } + let(:member) { FactoryBot.create(:member) } let(:gb) { instance_double("Gibbon::API.new") } it 'subscribes to the newsletter' do @@ -440,7 +440,7 @@ describe 'member' do end context 'member deleted' do - let(:member) { FactoryGirl.create(:member) } + let(:member) { FactoryBot.create(:member) } context 'queries a scope' do before { member.destroy } it { expect(Member.all).not_to include(member) } @@ -458,18 +458,18 @@ describe 'member' do end context "deleted admin member" do - let(:member) { FactoryGirl.create(:admin_member) } + let(:member) { FactoryBot.create(:admin_member) } before { member.destroy } context 'crop creator' do - let!(:crop) { FactoryGirl.create(:crop, creator: member) } + let!(:crop) { FactoryBot.create(:crop, creator: member) } it "leaves crops behind, reassigned to cropbot" do expect(Crop.all).to include(crop) end end context 'forum owners' do - let!(:forum) { FactoryGirl.create(:forum, owner: member) } + let!(:forum) { FactoryBot.create(:forum, owner: member) } it "leaves forums behind, reassigned to ex_admin" do expect(forum.owner).to eq(member) end diff --git a/spec/models/notification_spec.rb b/spec/models/notification_spec.rb index 04cb028f3..be5fd019d 100644 --- a/spec/models/notification_spec.rb +++ b/spec/models/notification_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe Notification do - let(:notification) { FactoryGirl.create(:notification) } + let(:notification) { FactoryBot.create(:notification) } it "belongs to a post" do notification.post.should be_an_instance_of Post @@ -17,42 +17,42 @@ describe Notification do it "has a scope for unread" do Notification.unread.should eq [notification] - @n2 = FactoryGirl.create(:notification, read: true) + @n2 = FactoryBot.create(:notification, read: true) Notification.unread.should eq [notification] - @n3 = FactoryGirl.create(:notification, read: false) + @n3 = FactoryBot.create(:notification, read: false) Notification.unread.should eq [@n3, notification] end it "counts unread" do @who = notification.recipient - @n2 = FactoryGirl.create(:notification, recipient: @who, read: false) + @n2 = FactoryBot.create(:notification, recipient: @who, read: false) @who.notifications.unread_count.should eq 2 end it "sends email if asked" do - @notification2 = FactoryGirl.create(:notification) + @notification2 = FactoryBot.create(:notification) @notification2.send_email ActionMailer::Base.deliveries.last.to.should == [@notification2.recipient.email] end it "doesn't send email to people who don't want it" do - notification = FactoryGirl.create(:no_email_notification) + notification = FactoryBot.create(:no_email_notification) notification.send_email ActionMailer::Base.deliveries.last.to.should_not == [notification.recipient.email] end it "sends email on creation" do - @notification2 = FactoryGirl.create(:notification) + @notification2 = FactoryBot.create(:notification) ActionMailer::Base.deliveries.last.to.should == [@notification2.recipient.email] end it "replaces missing subjects with (no subject)" do - notification = FactoryGirl.create(:notification, subject: nil) + notification = FactoryBot.create(:notification, subject: nil) notification.subject.should == "(no subject)" end it "replaces whitespace-only subjects with (no subject)" do - notification = FactoryGirl.create(:notification, subject: " ") + notification = FactoryBot.create(:notification, subject: " ") notification.subject.should == "(no subject)" end end diff --git a/spec/models/order_item_spec.rb b/spec/models/order_item_spec.rb index a6ede25d8..7c2de24c6 100644 --- a/spec/models/order_item_spec.rb +++ b/spec/models/order_item_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe OrderItem do - let(:order_item) { FactoryGirl.create(:order_item) } + let(:order_item) { FactoryBot.create(:order_item) } it "has an order and a product" do order_item.order.should be_an_instance_of Order @@ -9,18 +9,18 @@ describe OrderItem do end it "validates price > product.min_price" do - @product = FactoryGirl.create(:product) - order_item = FactoryGirl.build(:order_item, price: @product.min_price - 1) + @product = FactoryBot.create(:product) + order_item = FactoryBot.build(:order_item, price: @product.min_price - 1) order_item.should_not be_valid end it "doesn't let you add two items to an order" do - @product = FactoryGirl.create(:product) - @order = FactoryGirl.create(:order) - order_item = FactoryGirl.build(:order_item, order: @order) + @product = FactoryBot.create(:product) + @order = FactoryBot.create(:order) + order_item = FactoryBot.build(:order_item, order: @order) order_item.should be_valid order_item.save - @order_item2 = FactoryGirl.build(:order_item, order: @order) + @order_item2 = FactoryBot.build(:order_item, order: @order) @order_item2.should_not be_valid end end diff --git a/spec/models/order_spec.rb b/spec/models/order_spec.rb index 56895e834..2d43473e5 100644 --- a/spec/models/order_spec.rb +++ b/spec/models/order_spec.rb @@ -2,16 +2,16 @@ require 'rails_helper' describe Order do before(:each) do - @order = FactoryGirl.create(:order) - @product = FactoryGirl.create(:product) - @order_item = FactoryGirl.create(:order_item, + @order = FactoryBot.create(:order) + @product = FactoryBot.create(:product) + @order_item = FactoryBot.create(:order_item, order_id: @order.id, product_id: @product.id) end describe '#by_member_id' do before do - @member1 = FactoryGirl.create(:member) - @member2 = FactoryGirl.create(:member) + @member1 = FactoryBot.create(:member) + @member2 = FactoryBot.create(:member) @order1 = Order.create!(member_id: @member1.id) @order2 = Order.create!(member_id: @member2.id) end @@ -26,18 +26,18 @@ describe Order do end it 'sorts by created_at DESC' do - @order2 = FactoryGirl.create(:order) + @order2 = FactoryBot.create(:order) Order.all.should eq [@order2, @order] end it 'updates the account details' do - @member = FactoryGirl.create(:member) - @order = FactoryGirl.create(:order, member: @member) - @account_type = FactoryGirl.create(:account_type, name: 'paid') - @product = FactoryGirl.create(:product, + @member = FactoryBot.create(:member) + @order = FactoryBot.create(:order, member: @member) + @account_type = FactoryBot.create(:account_type, name: 'paid') + @product = FactoryBot.create(:product, account_type: @account_type, paid_months: 3) - @order_item = FactoryGirl.create(:order_item, + @order_item = FactoryBot.create(:order_item, order_id: @order.id, product_id: @product.id) @member.account.paid_until.should be_nil @@ -49,40 +49,40 @@ describe Order do end it "totals the amount due" do - @member = FactoryGirl.create(:member) - @order = FactoryGirl.create(:order, member: @member) - @product = FactoryGirl.create(:product, + @member = FactoryBot.create(:member) + @order = FactoryBot.create(:order, member: @member) + @product = FactoryBot.create(:product, min_price: 1000) # we force an order to only have one item at present. Add more if wanted # later. - @order_item1 = FactoryGirl.create(:order_item, + @order_item1 = FactoryBot.create(:order_item, order_id: @order.id, product_id: @product.id, price: 1111, quantity: 1) @order.total.should eq 1111 end it "gives the correct total for quantities more than 1" do - @member = FactoryGirl.create(:member) - @order = FactoryGirl.create(:order, member: @member) - @product = FactoryGirl.create(:product, + @member = FactoryBot.create(:member) + @order = FactoryBot.create(:order, member: @member) + @product = FactoryBot.create(:product, min_price: 1000) # we force an order to only have one item at present. Add more if wanted # later. - @order_item1 = FactoryGirl.create(:order_item, + @order_item1 = FactoryBot.create(:order_item, order_id: @order.id, product_id: @product.id, price: 1111, quantity: 2) @order.total.should eq 2222 end it "formats order items for activemerchant" do - @member = FactoryGirl.create(:member) - @order = FactoryGirl.create(:order, member: @member) - @product = FactoryGirl.create(:product, + @member = FactoryBot.create(:member) + @order = FactoryBot.create(:order, member: @member) + @product = FactoryBot.create(:product, name: 'foo', min_price: 1000) # we force an order to only have one item at present. Add more if wanted # later. - @order_item1 = FactoryGirl.create(:order_item, + @order_item1 = FactoryBot.create(:order_item, order_id: @order.id, product_id: @product.id, price: 1111, quantity: 1) @order.activemerchant_items.should eq [{ @@ -94,44 +94,44 @@ describe Order do context "referral codes" do it "has a referral code" do - referred_order = FactoryGirl.create(:referred_order) + referred_order = FactoryBot.create(:referred_order) referred_order.referral_code.should_not be nil end it "validates referral codes" do - referred_order = FactoryGirl.build(:order, referral_code: 'CAMP_AIGN1?') + referred_order = FactoryBot.build(:order, referral_code: 'CAMP_AIGN1?') referred_order.should_not be_valid end it "cleans up messy referral codes" do - referred_order = FactoryGirl.create(:order, referral_code: 'CaMpAiGn 1 ') + referred_order = FactoryBot.create(:order, referral_code: 'CaMpAiGn 1 ') referred_order.referral_code.should eq 'CAMPAIGN1' end end context 'search' do it 'finds orders by member' do - order = FactoryGirl.create(:order) + order = FactoryBot.create(:order) Order.search(by: 'member', for: order.member.login_name).should eq [order] end it 'finds orders by order_id' do - order = FactoryGirl.create(:order) + order = FactoryBot.create(:order) Order.search(by: 'order_id', for: order.id).should eq [order] end it 'finds orders by paypal_token' do - order = FactoryGirl.create(:order, paypal_express_token: 'foo') + order = FactoryBot.create(:order, paypal_express_token: 'foo') Order.search(by: 'paypal_token', for: 'foo').should eq [order] end it 'finds orders by paypal_payer_id' do - order = FactoryGirl.create(:order, paypal_express_payer_id: 'bar') + order = FactoryBot.create(:order, paypal_express_payer_id: 'bar') Order.search(by: 'paypal_payer_id', for: 'bar').should eq [order] end it 'finds orders by referral_code' do - order = FactoryGirl.create(:order, referral_code: 'baz') + order = FactoryBot.create(:order, referral_code: 'baz') Order.search(by: 'referral_code', for: 'baz').should eq [order] end end diff --git a/spec/models/photo_spec.rb b/spec/models/photo_spec.rb index eb866611c..e220bfe59 100644 --- a/spec/models/photo_spec.rb +++ b/spec/models/photo_spec.rb @@ -1,12 +1,12 @@ require 'rails_helper' describe Photo do - let(:photo) { FactoryGirl.create(:photo, owner: member) } - let(:member) { FactoryGirl.create(:member) } + let(:photo) { FactoryBot.create(:photo, owner: member) } + let(:member) { FactoryBot.create(:member) } describe 'add/delete functionality' do - let(:planting) { FactoryGirl.create(:planting) } - let(:harvest) { FactoryGirl.create(:harvest) } - let(:garden) { FactoryGirl.create(:garden) } + let(:planting) { FactoryBot.create(:planting) } + let(:harvest) { FactoryBot.create(:harvest) } + let(:garden) { FactoryBot.create(:garden) } context "adds photos" do it 'to a planting' do diff --git a/spec/models/plant_part_spec.rb b/spec/models/plant_part_spec.rb index 864a164cf..a6ec189dd 100644 --- a/spec/models/plant_part_spec.rb +++ b/spec/models/plant_part_spec.rb @@ -2,18 +2,18 @@ require 'rails_helper' describe PlantPart do it 'stringifies' do - @pp = FactoryGirl.create(:plant_part) + @pp = FactoryBot.create(:plant_part) @pp.to_s.should eq @pp.name end it 'has crops' do - @maize = FactoryGirl.create(:maize) - @tomato = FactoryGirl.create(:tomato) - @pp1 = FactoryGirl.create(:plant_part) - @h1 = FactoryGirl.create(:harvest, + @maize = FactoryBot.create(:maize) + @tomato = FactoryBot.create(:tomato) + @pp1 = FactoryBot.create(:plant_part) + @h1 = FactoryBot.create(:harvest, crop: @tomato, plant_part: @pp1) - @h2 = FactoryGirl.create(:harvest, + @h2 = FactoryBot.create(:harvest, crop: @maize, plant_part: @pp1) @pp1.crops.should include @tomato @@ -21,12 +21,12 @@ describe PlantPart do end it "doesn't duplicate crops" do - @maize = FactoryGirl.create(:maize) - @pp1 = FactoryGirl.create(:plant_part) - @h1 = FactoryGirl.create(:harvest, + @maize = FactoryBot.create(:maize) + @pp1 = FactoryBot.create(:plant_part) + @h1 = FactoryBot.create(:harvest, crop: @maize, plant_part: @pp1) - @h2 = FactoryGirl.create(:harvest, + @h2 = FactoryBot.create(:harvest, crop: @maize, plant_part: @pp1) @pp1.crops.should eq [@maize] diff --git a/spec/models/planting_spec.rb b/spec/models/planting_spec.rb index 7650992f0..280af4173 100644 --- a/spec/models/planting_spec.rb +++ b/spec/models/planting_spec.rb @@ -1,11 +1,11 @@ require 'rails_helper' describe Planting do - let(:crop) { FactoryGirl.create(:tomato) } - let(:garden_owner) { FactoryGirl.create(:member) } - let(:garden) { FactoryGirl.create(:garden, owner: garden_owner) } - let(:planting) { FactoryGirl.create(:planting, crop: crop, garden: garden) } - let(:finished_planting) { FactoryGirl.create :planting, planted_at: 4.days.ago, finished_at: 2.days.ago } + let(:crop) { FactoryBot.create(:tomato) } + let(:garden_owner) { FactoryBot.create(:member) } + let(:garden) { FactoryBot.create(:garden, owner: garden_owner) } + let(:planting) { FactoryBot.create(:planting, crop: crop, garden: garden) } + let(:finished_planting) { FactoryBot.create :planting, planted_at: 4.days.ago, finished_at: 2.days.ago } describe 'maturity calculations' do describe 'start_to_finish_diff' do @@ -15,11 +15,11 @@ describe Planting do describe 'other_finished_plantings_same_crop' do before do # eight finished plantings - 8.times { FactoryGirl.create :planting, crop: crop, planted_at: 10.days.ago, finished_at: 2.days.ago } + 8.times { FactoryBot.create :planting, crop: crop, planted_at: 10.days.ago, finished_at: 2.days.ago } # eight not finished plantings - 8.times { FactoryGirl.create :planting, crop: crop, finished_at: nil } + 8.times { FactoryBot.create :planting, crop: crop, finished_at: nil } end - let!(:planting_with_diff_crop) { FactoryGirl.create :planting, planted_at: 10.days.ago, finished_at: 2.days.ago } + let!(:planting_with_diff_crop) { FactoryBot.create :planting, planted_at: 10.days.ago, finished_at: 2.days.ago } let(:planting_predictions) { PlantingPredictions.new(planting) } it { expect(planting_predictions.send(:other_finished_plantings_same_crop).size).to eq(8) } it { expect(planting_predictions.send(:other_finished_plantings_same_crop)).not_to include(planting) } @@ -31,14 +31,14 @@ describe Planting do describe 'mean_days_until_maturity' do let(:plantings) do - FactoryGirl.create_list(:planting, 10, crop: crop, planted_at: 12.days.ago, finished_at: 2.days.ago) + FactoryBot.create_list(:planting, 10, crop: crop, planted_at: 12.days.ago, finished_at: 2.days.ago) end it { expect(plantings.size).to eq(10) } it { expect(PlantingPredictions.mean_days_until_maturity(plantings)).to eq(10) } end describe 'saving planting calculates days_before_maturity' do - before { 5.times { FactoryGirl.create :planting, planted_at: 30.days.ago, finished_at: 9.days.ago, crop: crop } } + before { 5.times { FactoryBot.create :planting, planted_at: 30.days.ago, finished_at: 9.days.ago, crop: crop } } before { planting.calc_and_set_days_before_maturity } it { expect(planting.days_before_maturity).to eq(21) } end @@ -49,7 +49,7 @@ describe Planting do end it "owner isn't necessarily the garden owner" do - # a new owner should be created automatically by FactoryGirl + # a new owner should be created automatically by FactoryBot # note that formerly, the planting belonged to an owner through the garden planting.owner.should_not eq garden_owner end @@ -59,8 +59,8 @@ describe Planting do end it "sorts plantings in descending order of creation" do - @planting1 = FactoryGirl.create(:planting) - @planting2 = FactoryGirl.create(:planting) + @planting1 = FactoryBot.create(:planting) + @planting2 = FactoryBot.create(:planting) Planting.first.should eq @planting2 end @@ -69,28 +69,28 @@ describe Planting do end it 'should sort in reverse creation order' do - @planting2 = FactoryGirl.create(:planting) + @planting2 = FactoryBot.create(:planting) Planting.first.should eq @planting2 end describe '#planted?' do it "should be false for future plantings" do - planting = FactoryGirl.create :planting, planted_at: Time.zone.today + 1 + planting = FactoryBot.create :planting, planted_at: Time.zone.today + 1 expect(planting.planted?).to eq(false) end it "should be false for never planted" do - planting = FactoryGirl.create :planting, planted_at: nil + planting = FactoryBot.create :planting, planted_at: nil expect(planting.planted?).to eq(false) end it "should be true for past plantings" do - planting = FactoryGirl.create :planting, planted_at: Time.zone.today - 1 + planting = FactoryBot.create :planting, planted_at: Time.zone.today - 1 expect(planting.planted?).to eq(true) end end describe '#percentage_grown' do it 'should not be more than 100%' do - @planting = FactoryGirl.build(:planting, days_before_maturity: 1, planted_at: 1.day.ago) + @planting = FactoryBot.build(:planting, days_before_maturity: 1, planted_at: 1.day.ago) Timecop.freeze(2.days.from_now) do @planting.percentage_grown.should be 100 @@ -98,7 +98,7 @@ describe Planting do end it 'should not be less than 0%' do - @planting = FactoryGirl.build(:planting, days_before_maturity: 1, planted_at: 1.day.ago) + @planting = FactoryBot.build(:planting, days_before_maturity: 1, planted_at: 1.day.ago) Timecop.freeze(2.days.ago) do @planting.percentage_grown.should be nil @@ -106,19 +106,19 @@ describe Planting do end it 'should reflect the current growth' do - @planting = FactoryGirl.build(:planting, days_before_maturity: 10, planted_at: 4.days.ago) + @planting = FactoryBot.build(:planting, days_before_maturity: 10, planted_at: 4.days.ago) expect(@planting.percentage_grown).to eq 40 end it 'should not be calculated for unplanted plantings' do - @planting = FactoryGirl.build(:planting, planted_at: nil) + @planting = FactoryBot.build(:planting, planted_at: nil) @planting.planted?.should be false @planting.percentage_grown.should be nil end it 'should not be calculated for plantings with an unknown days before maturity' do - @planting = FactoryGirl.build(:planting, days_before_maturity: nil) + @planting = FactoryBot.build(:planting, days_before_maturity: nil) @planting.percentage_grown.should be nil end end @@ -143,30 +143,30 @@ describe Planting do context 'quantity' do it 'allows integer quantities' do - @planting = FactoryGirl.build(:planting, quantity: 99) + @planting = FactoryBot.build(:planting, quantity: 99) @planting.should be_valid end it "doesn't allow decimal quantities" do - @planting = FactoryGirl.build(:planting, quantity: 99.9) + @planting = FactoryBot.build(:planting, quantity: 99.9) @planting.should_not be_valid end it "doesn't allow non-numeric quantities" do - @planting = FactoryGirl.build(:planting, quantity: 'foo') + @planting = FactoryBot.build(:planting, quantity: 'foo') @planting.should_not be_valid end it "allows blank quantities" do - @planting = FactoryGirl.build(:planting, quantity: nil) + @planting = FactoryBot.build(:planting, quantity: nil) @planting.should be_valid - @planting = FactoryGirl.build(:planting, quantity: '') + @planting = FactoryBot.build(:planting, quantity: '') @planting.should be_valid end end context 'sunniness' do - let(:planting) { FactoryGirl.create(:sunny_planting) } + let(:planting) { FactoryBot.create(:sunny_planting) } it 'should have a sunniness value' do planting.sunniness.should eq 'sun' @@ -174,13 +174,13 @@ describe Planting do it 'all three valid sunniness values should work' do ['sun', 'shade', 'semi-shade', nil, ''].each do |s| - @planting = FactoryGirl.build(:planting, sunniness: s) + @planting = FactoryBot.build(:planting, sunniness: s) @planting.should be_valid end end it 'should refuse invalid sunniness values' do - @planting = FactoryGirl.build(:planting, sunniness: 'not valid') + @planting = FactoryBot.build(:planting, sunniness: 'not valid') @planting.should_not be_valid @planting.errors[:sunniness].should include("not valid is not a valid sunniness value") end @@ -188,7 +188,7 @@ describe Planting do context 'planted from' do it 'should have a planted_from value' do - @planting = FactoryGirl.create(:seed_planting) + @planting = FactoryBot.create(:seed_planting) @planting.planted_from.should eq 'seed' end @@ -196,13 +196,13 @@ describe Planting do ['seed', 'seedling', 'cutting', 'root division', 'runner', 'bare root plant', 'advanced plant', 'graft', 'layering', 'bulb', 'root/tuber', nil, ''].each do |p| - @planting = FactoryGirl.build(:planting, planted_from: p) + @planting = FactoryBot.build(:planting, planted_from: p) @planting.should be_valid end end it 'should refuse invalid planted_from values' do - @planting = FactoryGirl.build(:planting, planted_from: 'not valid') + @planting = FactoryBot.build(:planting, planted_from: 'not valid') @planting.should_not be_valid @planting.errors[:planted_from].should include("not valid is not a valid planting method") end @@ -211,8 +211,8 @@ describe Planting do # we decided that all the tests for the planting/photo association would # be done on this side, not on the photos side context 'photos' do - let(:planting) { FactoryGirl.create(:planting) } - let(:photo) { FactoryGirl.create(:photo) } + let(:planting) { FactoryBot.create(:planting) } + let(:photo) { FactoryBot.create(:photo) } before do planting.photos << photo @@ -237,7 +237,7 @@ describe Planting do end it 'chooses the most recent photo' do - @photo2 = FactoryGirl.create(:photo) + @photo2 = FactoryBot.create(:photo) planting.photos << @photo2 planting.default_photo.should eq @photo2 end @@ -247,13 +247,13 @@ describe Planting do it 'picks up interesting plantings' do # plantings have members created implicitly for them # each member is different, hence these are all interesting - @planting1 = FactoryGirl.create(:planting, created_at: 5.days.ago) - @planting2 = FactoryGirl.create(:planting, created_at: 4.days.ago) - @planting3 = FactoryGirl.create(:planting, created_at: 3.days.ago) - @planting4 = FactoryGirl.create(:planting, created_at: 2.days.ago) + @planting1 = FactoryBot.create(:planting, created_at: 5.days.ago) + @planting2 = FactoryBot.create(:planting, created_at: 4.days.ago) + @planting3 = FactoryBot.create(:planting, created_at: 3.days.ago) + @planting4 = FactoryBot.create(:planting, created_at: 2.days.ago) # plantings need photos to be interesting - @photo = FactoryGirl.create(:photo) + @photo = FactoryBot.create(:photo) [@planting1, @planting2, @planting3, @planting4].each do |p| p.photos << @photo p.save @@ -270,12 +270,12 @@ describe Planting do context "default arguments" do it 'ignores plantings without photos' do # first, an interesting planting - @planting = FactoryGirl.create(:planting) - @planting.photos << FactoryGirl.create(:photo) + @planting = FactoryBot.create(:planting) + @planting.photos << FactoryBot.create(:photo) @planting.save # this one doesn't have a photo - @no_photo_planting = FactoryGirl.create(:planting) + @no_photo_planting = FactoryBot.create(:planting) Planting.interesting.should include @planting Planting.interesting.should_not include @no_photo_planting @@ -283,15 +283,15 @@ describe Planting do it 'ignores plantings with the same owner' do # this planting is older - @planting1 = FactoryGirl.create(:planting, created_at: 1.day.ago) - @planting1.photos << FactoryGirl.create(:photo) + @planting1 = FactoryBot.create(:planting, created_at: 1.day.ago) + @planting1.photos << FactoryBot.create(:photo) @planting1.save # this one is newer, and has the same owner, through the garden - @planting2 = FactoryGirl.create(:planting, + @planting2 = FactoryBot.create(:planting, created_at: 1.minute.ago, owner_id: @planting1.owner.id) - @planting2.photos << FactoryGirl.create(:photo) + @planting2.photos << FactoryBot.create(:photo) @planting2.save # result: the newer one is interesting, the older one isn't @@ -302,9 +302,9 @@ describe Planting do context "with howmany argument" do it "only returns the number asked for" do - @plantings = FactoryGirl.create_list(:planting, 10) + @plantings = FactoryBot.create_list(:planting, 10) @plantings.each do |p| - p.photos << FactoryGirl.create(:photo, owner: planting.owner) + p.photos << FactoryBot.create(:photo, owner: planting.owner) end Planting.interesting.limit(3).count.should eq 3 end @@ -313,38 +313,38 @@ describe Planting do context "finished" do it 'has finished fields' do - @planting = FactoryGirl.create(:finished_planting) + @planting = FactoryBot.create(:finished_planting) @planting.finished.should be true @planting.finished_at.should be_an_instance_of Date end it 'has finished scope' do - @p = FactoryGirl.create(:planting) - @f = FactoryGirl.create(:finished_planting) + @p = FactoryBot.create(:planting) + @f = FactoryBot.create(:finished_planting) Planting.finished.should include @f Planting.finished.should_not include @p end it 'has current scope' do - @p = FactoryGirl.create(:planting) - @f = FactoryGirl.create(:finished_planting) + @p = FactoryBot.create(:planting) + @f = FactoryBot.create(:finished_planting) Planting.current.should include @p Planting.current.should_not include @f end context "finished date validation" do it 'requires finished date after planting date' do - @f = FactoryGirl.build(:finished_planting, planted_at: '2014-01-01', finished_at: '2013-01-01') + @f = FactoryBot.build(:finished_planting, planted_at: '2014-01-01', finished_at: '2013-01-01') @f.should_not be_valid end it 'allows just the planted date' do - @f = FactoryGirl.build(:planting, planted_at: '2013-01-01', finished_at: nil) + @f = FactoryBot.build(:planting, planted_at: '2013-01-01', finished_at: nil) @f.should be_valid end it 'allows just the finished date' do - @f = FactoryGirl.build(:planting, finished_at: '2013-01-01', planted_at: nil) + @f = FactoryBot.build(:planting, finished_at: '2013-01-01', planted_at: nil) @f.should be_valid end end diff --git a/spec/models/post_spec.rb b/spec/models/post_spec.rb index a00449fc0..479a04bff 100644 --- a/spec/models/post_spec.rb +++ b/spec/models/post_spec.rb @@ -1,15 +1,15 @@ require 'rails_helper' describe Post do - let(:member) { FactoryGirl.create(:member) } + let(:member) { FactoryBot.create(:member) } it_behaves_like "it is likeable" it "should be sorted in reverse order" do - FactoryGirl.create(:post, + FactoryBot.create(:post, subject: 'first entry', author: member, created_at: 2.days.ago) - FactoryGirl.create(:post, + FactoryBot.create(:post, subject: 'second entry', author: member, created_at: 1.day.ago) @@ -17,7 +17,7 @@ describe Post do end it "should have a slug" do - post = FactoryGirl.create(:post, author: member) + post = FactoryBot.create(:post, author: member) time = post.created_at datestr = time.strftime("%Y%m%d") # 2 digit day and month, full-length years @@ -27,23 +27,23 @@ describe Post do end it "has many comments" do - post = FactoryGirl.create(:post, author: member) - FactoryGirl.create(:comment, post: post) - FactoryGirl.create(:comment, post: post) + post = FactoryBot.create(:post, author: member) + FactoryBot.create(:comment, post: post) + FactoryBot.create(:comment, post: post) post.comments.size.should == 2 end it "supports counting comments" do - post = FactoryGirl.create(:post, author: member) - FactoryGirl.create(:comment, post: post) - FactoryGirl.create(:comment, post: post) + post = FactoryBot.create(:post, author: member) + FactoryBot.create(:comment, post: post) + FactoryBot.create(:comment, post: post) post.comment_count.should == 2 end it "destroys comments when deleted" do - post = FactoryGirl.create(:post, author: member) - FactoryGirl.create(:comment, post: post) - FactoryGirl.create(:comment, post: post) + post = FactoryBot.create(:post, author: member) + FactoryBot.create(:comment, post: post) + FactoryBot.create(:comment, post: post) post.comments.size.should eq(2) all = Comment.count post.destroy @@ -51,22 +51,22 @@ describe Post do end it "belongs to a forum" do - post = FactoryGirl.create(:forum_post) + post = FactoryBot.create(:forum_post) post.forum.should be_an_instance_of Forum end it "doesn't allow a nil subject" do - post = FactoryGirl.build(:post, subject: nil) + post = FactoryBot.build(:post, subject: nil) post.should_not be_valid end it "doesn't allow a blank subject" do - post = FactoryGirl.build(:post, subject: "") + post = FactoryBot.build(:post, subject: "") post.should_not be_valid end it "doesn't allow a subject with only spaces" do - post = FactoryGirl.build(:post, subject: " ") + post = FactoryBot.build(:post, subject: " ") post.should_not be_valid end @@ -75,51 +75,51 @@ describe Post do Time.stub(now: Time.now) end - let!(:post) { FactoryGirl.create(:post, created_at: 1.day.ago) } + let!(:post) { FactoryBot.create(:post, created_at: 1.day.ago) } it "sets recent activity to post time" do post.recent_activity.to_i.should eq post.created_at.to_i end it "sets recent activity to comment time" do - comment = FactoryGirl.create(:comment, post: post, - created_at: 1.hour.ago) + comment = FactoryBot.create(:comment, post: post, + created_at: 1.hour.ago) post.recent_activity.to_i.should eq comment.created_at.to_i end it "shiny new post is recently active" do # create a shiny new post - post2 = FactoryGirl.create(:post, created_at: 1.minute.ago) + post2 = FactoryBot.create(:post, created_at: 1.minute.ago) Post.recently_active.first.should eq post2 Post.recently_active.second.should eq post end it "new comment on old post is recently active" do # now comment on an older post - post2 = FactoryGirl.create(:post, created_at: 1.minute.ago) - FactoryGirl.create(:comment, post: post, created_at: 1.second.ago) + post2 = FactoryBot.create(:post, created_at: 1.minute.ago) + FactoryBot.create(:comment, post: post, created_at: 1.second.ago) Post.recently_active.first.should eq post Post.recently_active.second.should eq post2 end end context "notifications" do - let(:member2) { FactoryGirl.create(:member) } + let(:member2) { FactoryBot.create(:member) } it "sends a notification when a member is mentioned using @-syntax" do expect { - FactoryGirl.create(:post, author: member, body: "Hey @#{member2}") + FactoryBot.create(:post, author: member, body: "Hey @#{member2}") }.to change(Notification, :count).by(1) end it "sends a notification when a member is mentioned using [](member) syntax" do expect { - FactoryGirl.create(:post, author: member, body: "Hey [#{member2}](member)") + FactoryBot.create(:post, author: member, body: "Hey [#{member2}](member)") }.to change(Notification, :count).by(1) end it "sets the notification field" do - p = FactoryGirl.create(:post, author: member, body: "Hey @#{member2}") + p = FactoryBot.create(:post, author: member, body: "Hey @#{member2}") n = Notification.first n.sender.should eq member n.recipient.should eq member2 @@ -128,24 +128,24 @@ describe Post do end it "sends notifications to all members mentioned" do - member3 = FactoryGirl.create(:member) + member3 = FactoryBot.create(:member) expect { - FactoryGirl.create(:post, author: member, body: "Hey @#{member2} & @#{member3}") + FactoryBot.create(:post, author: member, body: "Hey @#{member2} & @#{member3}") }.to change(Notification, :count).by(2) end it "doesn't send notifications if you mention yourself" do expect { - FactoryGirl.create(:post, author: member, body: "@#{member}") + FactoryBot.create(:post, author: member, body: "@#{member}") }.to change(Notification, :count).by(0) end end context "crop-post association" do - let!(:tomato) { FactoryGirl.create(:tomato) } - let!(:maize) { FactoryGirl.create(:maize) } - let!(:chard) { FactoryGirl.create(:chard) } - let!(:post) { FactoryGirl.create(:post, body: "[maize](crop)[tomato](crop)[tomato](crop)") } + let!(:tomato) { FactoryBot.create(:tomato) } + let!(:maize) { FactoryBot.create(:maize) } + let!(:chard) { FactoryBot.create(:chard) } + let!(:post) { FactoryBot.create(:post, body: "[maize](crop)[tomato](crop)[tomato](crop)") } it "should be generated" do expect(tomato.posts).to eq [post] @@ -183,7 +183,7 @@ describe Post do end it 'excludes deleted members' do - post = FactoryGirl.create :post, author: member + post = FactoryBot.create :post, author: member expect(Post.joins(:author).all).to include(post) member.destroy expect(Post.joins(:author).all).not_to include(post) diff --git a/spec/models/product_spec.rb b/spec/models/product_spec.rb index 6526ecf27..2cc684667 100644 --- a/spec/models/product_spec.rb +++ b/spec/models/product_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' describe Product do it "stringifies using the name" do - @product = FactoryGirl.create(:product) + @product = FactoryBot.create(:product) @product.to_s.should eq @product.name end end diff --git a/spec/models/role_spec.rb b/spec/models/role_spec.rb index f8393ae84..3016591b7 100644 --- a/spec/models/role_spec.rb +++ b/spec/models/role_spec.rb @@ -1,10 +1,10 @@ require 'rails_helper' describe Role do - let(:member) { FactoryGirl.create(:member) } + let(:member) { FactoryBot.create(:member) } subject do - role = FactoryGirl.create(:role, name: 'Crop Wrangler') + role = FactoryBot.create(:role, name: 'Crop Wrangler') role.members << member role end @@ -18,14 +18,14 @@ describe Role do end describe '.crop_wranglers' do - let!(:crop_wranglers) { FactoryGirl.create_list(:crop_wrangling_member, 3) } + let!(:crop_wranglers) { FactoryBot.create_list(:crop_wrangling_member, 3) } it 'return the crop wranglers that are members of that role' do expect(Role.crop_wranglers).to match_array(crop_wranglers) end end describe '.admins' do - let!(:admins) { FactoryGirl.create_list(:admin_member, 3) } + let!(:admins) { FactoryBot.create_list(:admin_member, 3) } it 'return the members that have the role of admin' do expect(Role.admins).to match_array(admins) end diff --git a/spec/models/scientific_name_spec.rb b/spec/models/scientific_name_spec.rb index f4fa4d22f..872ea6766 100644 --- a/spec/models/scientific_name_spec.rb +++ b/spec/models/scientific_name_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' describe ScientificName do context 'all fields present' do - let(:sn) { FactoryGirl.create(:zea_mays) } + let(:sn) { FactoryBot.create(:zea_mays) } it 'should save a basic scientific name' do sn.save.should be(true) diff --git a/spec/models/seed_spec.rb b/spec/models/seed_spec.rb index 5b83d6269..c0dfc1e81 100644 --- a/spec/models/seed_spec.rb +++ b/spec/models/seed_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe Seed do - let(:seed) { FactoryGirl.build(:seed) } + let(:seed) { FactoryBot.build(:seed) } it 'should save a basic seed' do seed.save.should be(true) @@ -14,24 +14,24 @@ describe Seed do context 'quantity' do it 'allows integer quantities' do - @seed = FactoryGirl.build(:seed, quantity: 99) + @seed = FactoryBot.build(:seed, quantity: 99) @seed.should be_valid end it "doesn't allow decimal quantities" do - @seed = FactoryGirl.build(:seed, quantity: 99.9) + @seed = FactoryBot.build(:seed, quantity: 99.9) @seed.should_not be_valid end it "doesn't allow non-numeric quantities" do - @seed = FactoryGirl.build(:seed, quantity: 'foo') + @seed = FactoryBot.build(:seed, quantity: 'foo') @seed.should_not be_valid end it "allows blank quantities" do - @seed = FactoryGirl.build(:seed, quantity: nil) + @seed = FactoryBot.build(:seed, quantity: nil) @seed.should be_valid - @seed = FactoryGirl.build(:seed, quantity: '') + @seed = FactoryBot.build(:seed, quantity: '') @seed.should be_valid end end @@ -39,13 +39,13 @@ describe Seed do context 'tradable' do it 'all valid tradable_to values should work' do ['nowhere', 'locally', 'nationally', 'internationally'].each do |t| - @seed = FactoryGirl.build(:seed, tradable_to: t) + @seed = FactoryBot.build(:seed, tradable_to: t) @seed.should be_valid end end it 'should refuse invalid tradable_to values' do - @seed = FactoryGirl.build(:seed, tradable_to: 'not valid') + @seed = FactoryBot.build(:seed, tradable_to: 'not valid') @seed.should_not be_valid @seed.errors[:tradable_to].should include( "You may only trade seed nowhere, locally, "\ @@ -54,34 +54,34 @@ describe Seed do end it 'should not allow nil or blank values' do - @seed = FactoryGirl.build(:seed, tradable_to: nil) + @seed = FactoryBot.build(:seed, tradable_to: nil) @seed.should_not be_valid - @seed = FactoryGirl.build(:seed, tradable_to: '') + @seed = FactoryBot.build(:seed, tradable_to: '') @seed.should_not be_valid end it 'tradable? gives the right answers' do - @seed = FactoryGirl.create(:seed, tradable_to: 'nowhere') + @seed = FactoryBot.create(:seed, tradable_to: 'nowhere') @seed.tradable?.should eq false - @seed = FactoryGirl.create(:seed, tradable_to: 'locally') + @seed = FactoryBot.create(:seed, tradable_to: 'locally') @seed.tradable?.should eq true - @seed = FactoryGirl.create(:seed, tradable_to: 'nationally') + @seed = FactoryBot.create(:seed, tradable_to: 'nationally') @seed.tradable?.should eq true - @seed = FactoryGirl.create(:seed, tradable_to: 'internationally') + @seed = FactoryBot.create(:seed, tradable_to: 'internationally') @seed.tradable?.should eq true end it 'recognises a tradable seed' do - FactoryGirl.create(:tradable_seed).tradable?.should == true + FactoryBot.create(:tradable_seed).tradable?.should == true end it 'recognises an untradable seed' do - FactoryGirl.create(:untradable_seed).tradable?.should == false + FactoryBot.create(:untradable_seed).tradable?.should == false end it 'scopes correctly' do - @tradable = FactoryGirl.create(:tradable_seed) - @untradable = FactoryGirl.create(:untradable_seed) + @tradable = FactoryBot.create(:tradable_seed) + @untradable = FactoryBot.create(:untradable_seed) Seed.tradable.should include @tradable Seed.tradable.should_not include @untradable end @@ -91,7 +91,7 @@ describe Seed do it 'all valid organic values should work' do ['certified organic', 'non-certified organic', 'conventional/non-organic', 'unknown'].each do |t| - @seed = FactoryGirl.build(:seed, organic: t) + @seed = FactoryBot.build(:seed, organic: t) @seed.should be_valid end end @@ -99,21 +99,21 @@ describe Seed do it 'all valid GMO values should work' do ['certified GMO-free', 'non-certified GMO-free', 'GMO', 'unknown'].each do |t| - @seed = FactoryGirl.build(:seed, gmo: t) + @seed = FactoryBot.build(:seed, gmo: t) @seed.should be_valid end end it 'all valid heirloom values should work' do %w(heirloom hybrid unknown).each do |t| - @seed = FactoryGirl.build(:seed, heirloom: t) + @seed = FactoryBot.build(:seed, heirloom: t) @seed.should be_valid end end it 'should refuse invalid organic/GMO/heirloom values' do [:organic, :gmo, :heirloom].each do |field| - @seed = FactoryGirl.build(:seed, field => 'not valid') + @seed = FactoryBot.build(:seed, field => 'not valid') @seed.should_not be_valid @seed.errors[field].should_not be_empty end @@ -121,9 +121,9 @@ describe Seed do it 'should not allow nil or blank values' do [:organic, :gmo, :heirloom].each do |field| - @seed = FactoryGirl.build(:seed, field => nil) + @seed = FactoryBot.build(:seed, field => nil) @seed.should_not be_valid - @seed = FactoryGirl.build(:seed, field => '') + @seed = FactoryBot.build(:seed, field => '') @seed.should_not be_valid end end @@ -135,11 +135,11 @@ describe Seed do # 1) be tradable # 2) the owner must have a location set - @located_member = FactoryGirl.create(:london_member) - @seed1 = FactoryGirl.create(:tradable_seed, owner: @located_member) - @seed2 = FactoryGirl.create(:seed, owner: @located_member) - @seed3 = FactoryGirl.create(:tradable_seed) - @seed4 = FactoryGirl.create(:seed) + @located_member = FactoryBot.create(:london_member) + @seed1 = FactoryBot.create(:tradable_seed, owner: @located_member) + @seed2 = FactoryBot.create(:seed, owner: @located_member) + @seed3 = FactoryBot.create(:tradable_seed) + @seed4 = FactoryBot.create(:seed) Seed.interesting.should include @seed1 Seed.interesting.should_not include @seed2 @@ -150,8 +150,8 @@ describe Seed do end context 'photos' do - let(:seed) { FactoryGirl.create :seed } - before { seed.photos << FactoryGirl.create(:photo) } + let(:seed) { FactoryBot.create :seed } + before { seed.photos << FactoryBot.create(:photo) } it 'is found in has_photos scope' do Seed.has_photos.should include(seed) end diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index ecf639985..800df0ebb 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -99,8 +99,8 @@ RSpec.configure do |config| config.include Devise::Test::ControllerHelpers, type: :controller config.extend ControllerMacros, type: :controller - # Allow just create(:factory) instead of needing to specify FactoryGirl.create(:factory) - config.include FactoryGirl::Syntax::Methods + # Allow just create(:factory) instead of needing to specify FactoryBot.create(:factory) + config.include FactoryBot::Syntax::Methods # Prevent Poltergeist from fetching external URLs during feature tests config.before(:each, js: true) do diff --git a/spec/support/controller_macros.rb b/spec/support/controller_macros.rb index 1bf679afb..354c64069 100644 --- a/spec/support/controller_macros.rb +++ b/spec/support/controller_macros.rb @@ -1,7 +1,7 @@ # Taken unashamedly from https://github.com/plataformatec/devise/wiki/How-To%3a-Controllers-and-Views-tests-with-Rails-3-%28and-rspec%29 module ControllerMacros def login_member(member_factory = :member) - let(:member) { FactoryGirl.create(member_factory || :member) } + let(:member) { FactoryBot.create(member_factory || :member) } before(:each) do @request.env["devise.mapping"] = Devise.mappings[:member] sign_in member diff --git a/spec/support/is_likeable.rb b/spec/support/is_likeable.rb index 36dcc6455..e1a590b30 100644 --- a/spec/support/is_likeable.rb +++ b/spec/support/is_likeable.rb @@ -2,11 +2,11 @@ shared_examples "it is likeable" do before(:each) do # Possibly a horrible hack. # Will fail if factory name does not match the model name.. - @likeable = FactoryGirl.create(described_class.to_s.underscore.to_sym) - @member1 = FactoryGirl.create(:member) - @member2 = FactoryGirl.create(:member) - @like1 = FactoryGirl.create(:like, member: @member1, likeable: @likeable) - @like2 = FactoryGirl.create(:like, member: @member2, likeable: @likeable) + @likeable = FactoryBot.create(described_class.to_s.underscore.to_sym) + @member1 = FactoryBot.create(:member) + @member2 = FactoryBot.create(:member) + @like1 = FactoryBot.create(:like, member: @member1, likeable: @likeable) + @like2 = FactoryBot.create(:like, member: @member2, likeable: @likeable) end it "has many likes" do diff --git a/spec/views/account_types/index.html.haml_spec.rb b/spec/views/account_types/index.html.haml_spec.rb index ca86626f3..b5aa55b17 100644 --- a/spec/views/account_types/index.html.haml_spec.rb +++ b/spec/views/account_types/index.html.haml_spec.rb @@ -14,7 +14,7 @@ require 'rails_helper' describe "account_types/index" do before(:each) do - @type = FactoryGirl.create(:account_type) + @type = FactoryBot.create(:account_type) assign(:account_types, [@type, @type]) end diff --git a/spec/views/accounts/edit.html.haml_spec.rb b/spec/views/accounts/edit.html.haml_spec.rb index 4b278acc2..96b29ef75 100644 --- a/spec/views/accounts/edit.html.haml_spec.rb +++ b/spec/views/accounts/edit.html.haml_spec.rb @@ -14,7 +14,7 @@ require 'rails_helper' describe "accounts/edit" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) @account = assign(:account, @member.account) end diff --git a/spec/views/accounts/index.html.haml_spec.rb b/spec/views/accounts/index.html.haml_spec.rb index 192c86dab..5d23d9d76 100644 --- a/spec/views/accounts/index.html.haml_spec.rb +++ b/spec/views/accounts/index.html.haml_spec.rb @@ -14,7 +14,7 @@ require 'rails_helper' describe "accounts/index" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) @account = @member.account assign(:accounts, [@account, @account]) end diff --git a/spec/views/accounts/new.html.haml_spec.rb b/spec/views/accounts/new.html.haml_spec.rb index bc2b711fa..6ba4da067 100644 --- a/spec/views/accounts/new.html.haml_spec.rb +++ b/spec/views/accounts/new.html.haml_spec.rb @@ -14,7 +14,7 @@ require 'rails_helper' describe "accounts/new" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) assign(:account, @member.account) end diff --git a/spec/views/accounts/show.html.haml_spec.rb b/spec/views/accounts/show.html.haml_spec.rb index 351a8fb24..71be40505 100644 --- a/spec/views/accounts/show.html.haml_spec.rb +++ b/spec/views/accounts/show.html.haml_spec.rb @@ -14,7 +14,7 @@ require 'rails_helper' describe "accounts/show" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) @account = assign(:account, @member.account) end diff --git a/spec/views/admin/index_spec.rb b/spec/views/admin/index_spec.rb index 32e77b9ee..1c5f9bd20 100644 --- a/spec/views/admin/index_spec.rb +++ b/spec/views/admin/index_spec.rb @@ -14,7 +14,7 @@ require 'rails_helper' describe 'admin/index.html.haml', type: "view" do before(:each) do - @member = FactoryGirl.create(:admin_member) + @member = FactoryBot.create(:admin_member) sign_in @member controller.stub(:current_user) { @member } render diff --git a/spec/views/admin/newsletter_spec.rb b/spec/views/admin/newsletter_spec.rb index fb49b2e61..901e3a12a 100644 --- a/spec/views/admin/newsletter_spec.rb +++ b/spec/views/admin/newsletter_spec.rb @@ -14,10 +14,10 @@ require 'rails_helper' describe 'admin/newsletter.html.haml', type: "view" do before(:each) do - @member = FactoryGirl.create(:admin_member) + @member = FactoryBot.create(:admin_member) sign_in @member controller.stub(:current_user) { @member } - @subscriber = FactoryGirl.create(:newsletter_recipient_member) + @subscriber = FactoryBot.create(:newsletter_recipient_member) assign(:members, [@subscriber]) render end diff --git a/spec/views/admin/orders/index_spec.rb b/spec/views/admin/orders/index_spec.rb index ea1331c94..c819f0268 100644 --- a/spec/views/admin/orders/index_spec.rb +++ b/spec/views/admin/orders/index_spec.rb @@ -14,7 +14,7 @@ require 'rails_helper' describe 'admin/orders/index.html.haml', type: "view" do before(:each) do - @member = FactoryGirl.create(:admin_member) + @member = FactoryBot.create(:admin_member) sign_in @member controller.stub(:current_user) { @member } render diff --git a/spec/views/comments/edit.html.haml_spec.rb b/spec/views/comments/edit.html.haml_spec.rb index 5446d2877..e562ca027 100644 --- a/spec/views/comments/edit.html.haml_spec.rb +++ b/spec/views/comments/edit.html.haml_spec.rb @@ -15,7 +15,7 @@ require 'rails_helper' describe "comments/edit" do before(:each) do controller.stub(:current_user) { nil } - assign(:comment, FactoryGirl.create(:comment)) + assign(:comment, FactoryBot.create(:comment)) end it "renders the edit comment form" do diff --git a/spec/views/comments/index.html.haml_spec.rb b/spec/views/comments/index.html.haml_spec.rb index 86c30c508..1bf0e734f 100644 --- a/spec/views/comments/index.html.haml_spec.rb +++ b/spec/views/comments/index.html.haml_spec.rb @@ -20,8 +20,8 @@ describe "comments/index" do total_entries = 2 comments = WillPaginate::Collection.create(page, per_page, total_entries) do |pager| pager.replace([ - FactoryGirl.create(:comment), - FactoryGirl.create(:comment, body: 'ROFL') + FactoryBot.create(:comment), + FactoryBot.create(:comment, body: 'ROFL') ]) end assign(:comments, comments) diff --git a/spec/views/comments/index.rss.haml_spec.rb b/spec/views/comments/index.rss.haml_spec.rb index 68888611e..c3b6fdd32 100644 --- a/spec/views/comments/index.rss.haml_spec.rb +++ b/spec/views/comments/index.rss.haml_spec.rb @@ -15,11 +15,11 @@ require 'rails_helper' describe 'comments/index.rss.haml' do before(:each) do controller.stub(:current_user) { nil } - @author = FactoryGirl.create(:member) - @post = FactoryGirl.create(:post) + @author = FactoryBot.create(:member) + @post = FactoryBot.create(:post) assign(:comments, [ - FactoryGirl.create(:comment, author: @author, post: @post), - FactoryGirl.create(:comment, author: @author, post: @post) + FactoryBot.create(:comment, author: @author, post: @post), + FactoryBot.create(:comment, author: @author, post: @post) ]) render end diff --git a/spec/views/comments/new.html.haml_spec.rb b/spec/views/comments/new.html.haml_spec.rb index 2e55c843d..074b5bfe5 100644 --- a/spec/views/comments/new.html.haml_spec.rb +++ b/spec/views/comments/new.html.haml_spec.rb @@ -15,8 +15,8 @@ require 'rails_helper' describe "comments/new" do before(:each) do controller.stub(:current_user) { nil } - @post = FactoryGirl.create(:post) - @comment = FactoryGirl.create(:comment, post: @post) + @post = FactoryBot.create(:post) + @comment = FactoryBot.create(:comment, post: @post) assign(:comment, @comment) assign(:comments, [@comment]) render diff --git a/spec/views/comments/show.html.haml_spec.rb b/spec/views/comments/show.html.haml_spec.rb index 4cc8a8a71..baf02cbbb 100644 --- a/spec/views/comments/show.html.haml_spec.rb +++ b/spec/views/comments/show.html.haml_spec.rb @@ -15,7 +15,7 @@ require 'rails_helper' describe "comments/show" do before(:each) do controller.stub(:current_user) { nil } - @comment = assign(:comment, FactoryGirl.create(:comment)) + @comment = assign(:comment, FactoryBot.create(:comment)) render end diff --git a/spec/views/crops/_grown_for.html.haml_spec.rb b/spec/views/crops/_grown_for.html.haml_spec.rb index 59b2d97af..290d5d8c6 100644 --- a/spec/views/crops/_grown_for.html.haml_spec.rb +++ b/spec/views/crops/_grown_for.html.haml_spec.rb @@ -14,9 +14,9 @@ require 'rails_helper' describe "crops/_grown_for" do before(:each) do - @crop = FactoryGirl.create(:crop) - @pp = FactoryGirl.create(:plant_part) - @harvest = FactoryGirl.create(:harvest, + @crop = FactoryBot.create(:crop) + @pp = FactoryBot.create(:plant_part) + @harvest = FactoryBot.create(:harvest, crop: @crop, plant_part: @pp) end diff --git a/spec/views/crops/_planting_advice.html.haml_spec.rb b/spec/views/crops/_planting_advice.html.haml_spec.rb index d87b935d5..58df0584d 100644 --- a/spec/views/crops/_planting_advice.html.haml_spec.rb +++ b/spec/views/crops/_planting_advice.html.haml_spec.rb @@ -14,10 +14,10 @@ require 'rails_helper' describe "crops/_planting_advice" do before(:each) do - @owner = FactoryGirl.create(:member) - @crop = FactoryGirl.create(:crop) - @garden = FactoryGirl.create(:garden, owner: @owner) - @planting = FactoryGirl.create(:planting, + @owner = FactoryBot.create(:member) + @crop = FactoryBot.create(:crop) + @garden = FactoryBot.create(:garden, owner: @owner) + @planting = FactoryBot.create(:planting, garden: @garden, crop: @crop) end @@ -29,16 +29,16 @@ describe "crops/_planting_advice" do end it "shows sunniness frequencies" do - FactoryGirl.create(:sunny_planting, crop: @crop) + FactoryBot.create(:sunny_planting, crop: @crop) render partial: 'crops/planting_advice', locals: { crop: @crop } rendered.should have_content "Plant in:" rendered.should have_content "sun (1)" end it "shows multiple sunniness frequencies" do - FactoryGirl.create(:sunny_planting, crop: @crop) - FactoryGirl.create(:sunny_planting, crop: @crop) - FactoryGirl.create(:shady_planting, crop: @crop) + FactoryBot.create(:sunny_planting, crop: @crop) + FactoryBot.create(:sunny_planting, crop: @crop) + FactoryBot.create(:shady_planting, crop: @crop) render partial: 'crops/planting_advice', locals: { crop: @crop } rendered.should have_content "Plant in:" rendered.should have_content "sun (2), shade (1)" @@ -52,16 +52,16 @@ describe "crops/_planting_advice" do end it "shows planted_from frequencies" do - FactoryGirl.create(:seed_planting, crop: @crop) + FactoryBot.create(:seed_planting, crop: @crop) render partial: 'crops/planting_advice', locals: { crop: @crop } rendered.should have_content "Plant from:" rendered.should have_content "seed (1)" end it "shows multiple planted_from frequencies" do - FactoryGirl.create(:seed_planting, crop: @crop) - FactoryGirl.create(:seed_planting, crop: @crop) - FactoryGirl.create(:cutting_planting, crop: @crop) + FactoryBot.create(:seed_planting, crop: @crop) + FactoryBot.create(:seed_planting, crop: @crop) + FactoryBot.create(:cutting_planting, crop: @crop) render partial: 'crops/planting_advice', locals: { crop: @crop } rendered.should have_content "Plant from:" rendered.should have_content "seed (2), cutting (1)" diff --git a/spec/views/crops/_popover.html.haml_spec.rb b/spec/views/crops/_popover.html.haml_spec.rb index af97d7645..35d508fd8 100644 --- a/spec/views/crops/_popover.html.haml_spec.rb +++ b/spec/views/crops/_popover.html.haml_spec.rb @@ -14,9 +14,9 @@ require 'rails_helper' describe "crops/_popover" do before(:each) do - @tomato = FactoryGirl.create(:tomato) - @sn = FactoryGirl.create(:solanum_lycopersicum, crop: @tomato) - @planting = FactoryGirl.create(:planting, crop: @tomato) + @tomato = FactoryBot.create(:tomato) + @sn = FactoryBot.create(:solanum_lycopersicum, crop: @tomato) + @planting = FactoryBot.create(:planting, crop: @tomato) @tomato.reload # to pick up latest plantings_count render partial: 'crops/popover', locals: { crop: @tomato } end diff --git a/spec/views/crops/edit.html.haml_spec.rb b/spec/views/crops/edit.html.haml_spec.rb index 436114f78..03f333bf2 100644 --- a/spec/views/crops/edit.html.haml_spec.rb +++ b/spec/views/crops/edit.html.haml_spec.rb @@ -15,9 +15,9 @@ require 'rails_helper' describe "crops/edit" do before(:each) do controller.stub(:current_user) { - FactoryGirl.create(:crop_wrangling_member) + FactoryBot.create(:crop_wrangling_member) } - @crop = FactoryGirl.create(:maize) + @crop = FactoryBot.create(:maize) 3.times do @crop.scientific_names.build end diff --git a/spec/views/crops/hierarchy.html.haml_spec.rb b/spec/views/crops/hierarchy.html.haml_spec.rb index 077add247..c711b2174 100644 --- a/spec/views/crops/hierarchy.html.haml_spec.rb +++ b/spec/views/crops/hierarchy.html.haml_spec.rb @@ -15,8 +15,8 @@ require 'rails_helper' describe "crops/hierarchy" do before(:each) do controller.stub(:current_user) { nil } - @tomato = FactoryGirl.create(:tomato) - @roma = FactoryGirl.create(:crop, name: 'Roma tomato', parent: @tomato) + @tomato = FactoryBot.create(:tomato) + @roma = FactoryBot.create(:crop, name: 'Roma tomato', parent: @tomato) assign(:crops, [@tomato, @roma]) render end diff --git a/spec/views/crops/index.html.haml_spec.rb b/spec/views/crops/index.html.haml_spec.rb index f8a33c738..421e33e00 100644 --- a/spec/views/crops/index.html.haml_spec.rb +++ b/spec/views/crops/index.html.haml_spec.rb @@ -18,8 +18,8 @@ describe "crops/index" do page = 1 per_page = 2 total_entries = 2 - @tomato = FactoryGirl.create(:tomato) - @maize = FactoryGirl.create(:maize) + @tomato = FactoryBot.create(:tomato) + @maize = FactoryBot.create(:maize) assign(:crops, [@tomato, @maize]) crops = WillPaginate::Collection.create(page, per_page, total_entries) do |pager| pager.replace([@tomato, @maize]) @@ -28,8 +28,8 @@ describe "crops/index" do end it "shows photos where available" do - @planting = FactoryGirl.create(:planting, crop: @tomato) - @photo = FactoryGirl.create(:photo) + @planting = FactoryBot.create(:planting, crop: @tomato) + @photo = FactoryBot.create(:photo) @planting.photos << @photo render assert_select "img", src: @photo.thumbnail_url @@ -42,7 +42,7 @@ describe "crops/index" do context "logged in and crop wrangler" do before(:each) do - @member = FactoryGirl.create(:crop_wrangling_member) + @member = FactoryBot.create(:crop_wrangling_member) sign_in @member controller.stub(:current_user) { @member } render diff --git a/spec/views/crops/index.rss.haml_spec.rb b/spec/views/crops/index.rss.haml_spec.rb index 5726c162c..623fb296e 100644 --- a/spec/views/crops/index.rss.haml_spec.rb +++ b/spec/views/crops/index.rss.haml_spec.rb @@ -15,9 +15,9 @@ require 'rails_helper' describe 'crops/index.rss.haml' do before(:each) do controller.stub(:current_user) { nil } - @author = FactoryGirl.create(:member) - @tomato = FactoryGirl.create(:tomato) - @maize = FactoryGirl.create(:maize) + @author = FactoryBot.create(:member) + @tomato = FactoryBot.create(:tomato) + @maize = FactoryBot.create(:maize) assign(:crops, [@tomato, @maize]) render end diff --git a/spec/views/crops/new.html.haml_spec.rb b/spec/views/crops/new.html.haml_spec.rb index 406b5e5c2..a1208352a 100644 --- a/spec/views/crops/new.html.haml_spec.rb +++ b/spec/views/crops/new.html.haml_spec.rb @@ -14,12 +14,12 @@ require 'rails_helper' describe "crops/new" do before(:each) do - @crop = FactoryGirl.create(:maize) + @crop = FactoryBot.create(:maize) 3.times do @crop.scientific_names.build end assign(:crop, @crop) - @member = FactoryGirl.create(:crop_wrangling_member) + @member = FactoryBot.create(:crop_wrangling_member) sign_in @member controller.stub(:current_user) { @member } render diff --git a/spec/views/crops/wrangle.html.haml_spec.rb b/spec/views/crops/wrangle.html.haml_spec.rb index b0ff06281..6550026f6 100644 --- a/spec/views/crops/wrangle.html.haml_spec.rb +++ b/spec/views/crops/wrangle.html.haml_spec.rb @@ -14,13 +14,13 @@ require 'rails_helper' describe "crops/wrangle" do before(:each) do - @member = FactoryGirl.create(:crop_wrangling_member) + @member = FactoryBot.create(:crop_wrangling_member) controller.stub(:current_user) { @member } page = 1 per_page = 2 total_entries = 2 - @tomato = FactoryGirl.create(:tomato) - @maize = FactoryGirl.create(:maize) + @tomato = FactoryBot.create(:tomato) + @maize = FactoryBot.create(:maize) crops = WillPaginate::Collection.create(page, per_page, total_entries) do |pager| pager.replace([@tomato, @maize]) end diff --git a/spec/views/devise/mailer/confirmation_instructions_spec.rb b/spec/views/devise/mailer/confirmation_instructions_spec.rb index f10eb6176..01e0d7230 100644 --- a/spec/views/devise/mailer/confirmation_instructions_spec.rb +++ b/spec/views/devise/mailer/confirmation_instructions_spec.rb @@ -15,7 +15,7 @@ require 'rails_helper' describe 'devise/mailer/confirmation_instructions.html.haml', type: "view" do context "logged in" do before(:each) do - @resource = FactoryGirl.create(:member) + @resource = FactoryBot.create(:member) render end diff --git a/spec/views/devise/mailer/unlock_instructions_spec.rb b/spec/views/devise/mailer/unlock_instructions_spec.rb index e0fb50e50..693fe97b0 100644 --- a/spec/views/devise/mailer/unlock_instructions_spec.rb +++ b/spec/views/devise/mailer/unlock_instructions_spec.rb @@ -14,7 +14,7 @@ require 'rails_helper' describe 'devise/mailer/unlock_instructions.html.haml', type: "view" do context "logged in" do before(:each) do - @resource = FactoryGirl.create(:member) + @resource = FactoryBot.create(:member) render end diff --git a/spec/views/devise/registrations/edit_spec.rb b/spec/views/devise/registrations/edit_spec.rb index 2aef2fa70..7c69a8d3e 100644 --- a/spec/views/devise/registrations/edit_spec.rb +++ b/spec/views/devise/registrations/edit_spec.rb @@ -16,7 +16,7 @@ describe 'devise/registrations/edit.html.haml', type: "view" do context "logged in" do before(:each) do controller.stub(:current_user) { nil } - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) controller.stub(:current_member) { @member } @view.stub(:resource).and_return(@member) @view.stub(:resource_name).and_return("member") @@ -78,7 +78,7 @@ describe 'devise/registrations/edit.html.haml', type: "view" do end context 'connected to twitter' do before(:each) do - @twitter_auth = FactoryGirl.create(:authentication, member: @member) + @twitter_auth = FactoryBot.create(:authentication, member: @member) render end it 'has a link to twitter profile' do @@ -98,7 +98,7 @@ describe 'devise/registrations/edit.html.haml', type: "view" do end context 'connected to flickr' do before(:each) do - @flickr_auth = FactoryGirl.create(:flickr_authentication, member: @member) + @flickr_auth = FactoryBot.create(:flickr_authentication, member: @member) render end it 'has a link to flickr photostream' do diff --git a/spec/views/forums/index.html.haml_spec.rb b/spec/views/forums/index.html.haml_spec.rb index 701504d7f..cf8377858 100644 --- a/spec/views/forums/index.html.haml_spec.rb +++ b/spec/views/forums/index.html.haml_spec.rb @@ -14,10 +14,10 @@ require 'rails_helper' describe "forums/index" do before(:each) do - @admin = FactoryGirl.create(:admin_member) + @admin = FactoryBot.create(:admin_member) controller.stub(:current_user) { @admin } - @forum1 = FactoryGirl.create(:forum) - @forum2 = FactoryGirl.create(:forum) + @forum1 = FactoryBot.create(:forum) + @forum2 = FactoryBot.create(:forum) assign(:forums, [@forum1, @forum2]) end @@ -33,8 +33,8 @@ describe "forums/index" do context "posts" do before(:each) do - @post = FactoryGirl.create(:forum_post, forum: @forum1) - @comment = FactoryGirl.create(:comment, post: @post) + @post = FactoryBot.create(:forum_post, forum: @forum1) + @comment = FactoryBot.create(:comment, post: @post) render end diff --git a/spec/views/forums/new.html.haml_spec.rb b/spec/views/forums/new.html.haml_spec.rb index de0be5b3c..8c95c7c1f 100644 --- a/spec/views/forums/new.html.haml_spec.rb +++ b/spec/views/forums/new.html.haml_spec.rb @@ -14,7 +14,7 @@ require 'rails_helper' describe "forums/new" do before(:each) do - @forum = assign(:forum, FactoryGirl.create(:forum)) + @forum = assign(:forum, FactoryBot.create(:forum)) render end diff --git a/spec/views/forums/show.html.haml_spec.rb b/spec/views/forums/show.html.haml_spec.rb index f2fa920a6..5b6bae8fa 100644 --- a/spec/views/forums/show.html.haml_spec.rb +++ b/spec/views/forums/show.html.haml_spec.rb @@ -15,7 +15,7 @@ require 'rails_helper' describe "forums/show" do before(:each) do controller.stub(:current_user) { nil } - @forum = assign(:forum, FactoryGirl.create(:forum)) + @forum = assign(:forum, FactoryBot.create(:forum)) end it "renders attributes" do @@ -40,7 +40,7 @@ describe "forums/show" do end it 'shows posts' do - @post = FactoryGirl.create(:post, forum: @forum) + @post = FactoryBot.create(:post, forum: @forum) render assert_select "table" rendered.should have_content @post.subject diff --git a/spec/views/gardens/edit.html.haml_spec.rb b/spec/views/gardens/edit.html.haml_spec.rb index f8b4b5e03..1928f6d8b 100644 --- a/spec/views/gardens/edit.html.haml_spec.rb +++ b/spec/views/gardens/edit.html.haml_spec.rb @@ -15,10 +15,10 @@ require 'rails_helper' describe "gardens/edit" do context "logged in" do before(:each) do - @owner = FactoryGirl.create(:member) + @owner = FactoryBot.create(:member) sign_in @owner controller.stub(:current_user) { @owner } - @garden = assign(:garden, FactoryGirl.create(:garden, owner: @owner)) + @garden = assign(:garden, FactoryBot.create(:garden, owner: @owner)) render end diff --git a/spec/views/gardens/new.html.haml_spec.rb b/spec/views/gardens/new.html.haml_spec.rb index 337b9066c..97eab872e 100644 --- a/spec/views/gardens/new.html.haml_spec.rb +++ b/spec/views/gardens/new.html.haml_spec.rb @@ -14,10 +14,10 @@ require 'rails_helper' describe "gardens/new" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member controller.stub(:current_user) { @member } - @garden = FactoryGirl.create(:garden, owner: @member) + @garden = FactoryBot.create(:garden, owner: @member) assign(:garden, @garden) render end diff --git a/spec/views/gardens/show.html.haml_spec.rb b/spec/views/gardens/show.html.haml_spec.rb index 589d59e14..83f993a16 100644 --- a/spec/views/gardens/show.html.haml_spec.rb +++ b/spec/views/gardens/show.html.haml_spec.rb @@ -14,10 +14,10 @@ require 'rails_helper' describe "gardens/show" do before(:each) do - @owner = FactoryGirl.create(:member) + @owner = FactoryBot.create(:member) controller.stub(:current_user) { @owner } - @garden = FactoryGirl.create(:garden, owner: @owner) - @planting = FactoryGirl.create(:planting, garden: @garden) + @garden = FactoryBot.create(:garden, owner: @owner) + @planting = FactoryBot.create(:planting, garden: @garden) assign(:garden, @garden) assign(:current_plantings, [@planting]) assign(:finished_plantings, []) diff --git a/spec/views/harvests/edit.html.haml_spec.rb b/spec/views/harvests/edit.html.haml_spec.rb index e0959b451..a475a6300 100644 --- a/spec/views/harvests/edit.html.haml_spec.rb +++ b/spec/views/harvests/edit.html.haml_spec.rb @@ -14,7 +14,7 @@ require 'rails_helper' describe "harvests/edit" do before(:each) do - assign(:harvest, FactoryGirl.create(:harvest)) + assign(:harvest, FactoryBot.create(:harvest)) render end diff --git a/spec/views/harvests/index.html.haml_spec.rb b/spec/views/harvests/index.html.haml_spec.rb index 0b08da8be..db9ce915f 100644 --- a/spec/views/harvests/index.html.haml_spec.rb +++ b/spec/views/harvests/index.html.haml_spec.rb @@ -15,19 +15,19 @@ require 'rails_helper' describe "harvests/index" do before(:each) do controller.stub(:current_user) { nil } - @member = FactoryGirl.create(:member) - @tomato = FactoryGirl.create(:tomato) - @maize = FactoryGirl.create(:maize) - @pp = FactoryGirl.create(:plant_part) + @member = FactoryBot.create(:member) + @tomato = FactoryBot.create(:tomato) + @maize = FactoryBot.create(:maize) + @pp = FactoryBot.create(:plant_part) page = 1 per_page = 2 total_entries = 2 harvests = WillPaginate::Collection.create(page, per_page, total_entries) do |pager| pager.replace([ - FactoryGirl.create(:harvest, + FactoryBot.create(:harvest, crop: @tomato, owner: @member), - FactoryGirl.create(:harvest, + FactoryBot.create(:harvest, crop: @maize, plant_part: @pp, owner: @member) diff --git a/spec/views/harvests/new.html.haml_spec.rb b/spec/views/harvests/new.html.haml_spec.rb index 1b300f1e3..4b792a4c6 100644 --- a/spec/views/harvests/new.html.haml_spec.rb +++ b/spec/views/harvests/new.html.haml_spec.rb @@ -14,7 +14,7 @@ require 'rails_helper' describe "harvests/new" do before(:each) do - assign(:harvest, FactoryGirl.create(:harvest)) + assign(:harvest, FactoryBot.create(:harvest)) render end diff --git a/spec/views/harvests/show.html.haml_spec.rb b/spec/views/harvests/show.html.haml_spec.rb index b6a1ec7a0..129648c71 100644 --- a/spec/views/harvests/show.html.haml_spec.rb +++ b/spec/views/harvests/show.html.haml_spec.rb @@ -15,8 +15,8 @@ require 'rails_helper' describe "harvests/show" do before(:each) do controller.stub(:current_user) { nil } - @crop = FactoryGirl.create(:tomato) - @harvest = assign(:harvest, FactoryGirl.create(:harvest, crop: @crop)) + @crop = FactoryBot.create(:tomato) + @harvest = assign(:harvest, FactoryBot.create(:harvest, crop: @crop)) render end diff --git a/spec/views/home/_crops.html.haml_spec.rb b/spec/views/home/_crops.html.haml_spec.rb index 8f375f3e1..ecbb74227 100644 --- a/spec/views/home/_crops.html.haml_spec.rb +++ b/spec/views/home/_crops.html.haml_spec.rb @@ -15,11 +15,11 @@ require 'rails_helper' describe 'home/_crops.html.haml', type: "view" do before(:each) do # we need to set up an "interesting" crop - @crop = FactoryGirl.create(:crop) + @crop = FactoryBot.create(:crop) (1..3).each do - @planting = FactoryGirl.create(:planting, crop: @crop) + @planting = FactoryBot.create(:planting, crop: @crop) end - @photo = FactoryGirl.create(:photo) + @photo = FactoryBot.create(:photo) (1..3).each do @crop.plantings.first.photos << @photo end diff --git a/spec/views/home/_members.html.haml_spec.rb b/spec/views/home/_members.html.haml_spec.rb index a4391da51..f131d5b67 100644 --- a/spec/views/home/_members.html.haml_spec.rb +++ b/spec/views/home/_members.html.haml_spec.rb @@ -14,11 +14,11 @@ require 'rails_helper' describe 'home/_members.html.haml', type: "view" do before(:each) do - @member = FactoryGirl.create(:london_member) + @member = FactoryBot.create(:london_member) @member.updated_at = 2.days.ago assign(:members, [@member]) - @planting = FactoryGirl.create(:planting, owner: @member) + @planting = FactoryBot.create(:planting, owner: @member) render end diff --git a/spec/views/home/_seeds.html.haml_spec.rb b/spec/views/home/_seeds.html.haml_spec.rb index 3723bf91a..4a128f1f6 100644 --- a/spec/views/home/_seeds.html.haml_spec.rb +++ b/spec/views/home/_seeds.html.haml_spec.rb @@ -14,8 +14,8 @@ require 'rails_helper' describe 'home/_seeds.html.haml', type: "view" do before(:each) do - @owner = FactoryGirl.create(:london_member) - @seed = FactoryGirl.create(:tradable_seed, owner: @owner) + @owner = FactoryBot.create(:london_member) + @seed = FactoryBot.create(:tradable_seed, owner: @owner) render end diff --git a/spec/views/home/index_spec.rb b/spec/views/home/index_spec.rb index b5a726e23..190ee7b9f 100644 --- a/spec/views/home/index_spec.rb +++ b/spec/views/home/index_spec.rb @@ -14,20 +14,20 @@ require 'rails_helper' describe 'home/index.html.haml', type: "view" do before(:each) do - @member = FactoryGirl.create(:london_member) + @member = FactoryBot.create(:london_member) @member.updated_at = 2.days.ago assign(:interesting_members, [@member]) - @post = FactoryGirl.create(:post, author: @member) + @post = FactoryBot.create(:post, author: @member) assign(:posts, [@post]) - @planting = FactoryGirl.create(:planting, owner: @member) + @planting = FactoryBot.create(:planting, owner: @member) assign(:plantings, [@planting]) - @crop = FactoryGirl.create(:crop) + @crop = FactoryBot.create(:crop) assign(:crops, [@crop]) assign(:recent_crops, [@crop]) - assign(:seeds, [FactoryGirl.create(:tradable_seed)]) + assign(:seeds, [FactoryBot.create(:tradable_seed)]) end context 'logged out' do diff --git a/spec/views/layouts/_header_spec.rb b/spec/views/layouts/_header_spec.rb index c62b53552..badecf8f7 100644 --- a/spec/views/layouts/_header_spec.rb +++ b/spec/views/layouts/_header_spec.rb @@ -64,7 +64,7 @@ describe 'layouts/_header.html.haml', type: "view" do context "logged in" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member controller.stub(:current_user) { @member } render @@ -99,7 +99,7 @@ describe 'layouts/_header.html.haml', type: "view" do context 'has notifications' do it 'should show inbox count' do - FactoryGirl.create(:notification, recipient: @member) + FactoryBot.create(:notification, recipient: @member) render rendered.should have_content 'Inbox (1)' end diff --git a/spec/views/members/_location.html.haml_spec.rb b/spec/views/members/_location.html.haml_spec.rb index d0d6b6593..50d7b675f 100644 --- a/spec/views/members/_location.html.haml_spec.rb +++ b/spec/views/members/_location.html.haml_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' describe "members/_location" do context "member with location" do - let(:member) { FactoryGirl.create(:london_member) } + let(:member) { FactoryBot.create(:london_member) } before(:each) { render partial: 'members/location', locals: { member: member } } @@ -17,7 +17,7 @@ describe "members/_location" do context "member with no location" do before(:each) do - member = FactoryGirl.create(:member) + member = FactoryBot.create(:member) render partial: 'members/location', locals: { member: member } end diff --git a/spec/views/members/index.html.haml_spec.rb b/spec/views/members/index.html.haml_spec.rb index de0208b25..81e8a6670 100644 --- a/spec/views/members/index.html.haml_spec.rb +++ b/spec/views/members/index.html.haml_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe "members/index" do - let(:member) { FactoryGirl.create(:london_member) } + let(:member) { FactoryBot.create(:london_member) } before(:each) do controller.stub(:current_user) { nil } page = 1 diff --git a/spec/views/members/show.rss.haml_spec.rb b/spec/views/members/show.rss.haml_spec.rb index c61018253..23366a9a8 100644 --- a/spec/views/members/show.rss.haml_spec.rb +++ b/spec/views/members/show.rss.haml_spec.rb @@ -2,9 +2,9 @@ require 'rails_helper' describe 'members/show.rss.haml', type: "view" do before(:each) do - @member = assign(:member, FactoryGirl.create(:member)) - @post1 = FactoryGirl.create(:post, id: 1, author: @member) - @post2 = FactoryGirl.create(:markdown_post, id: 2, author: @member) + @member = assign(:member, FactoryBot.create(:member)) + @post1 = FactoryBot.create(:post, id: 1, author: @member) + @post2 = FactoryBot.create(:markdown_post, id: 2, author: @member) assign(:posts, [@post1, @post2]) render end diff --git a/spec/views/notifications/index.html.haml_spec.rb b/spec/views/notifications/index.html.haml_spec.rb index 5e0f95beb..ee52b7319 100644 --- a/spec/views/notifications/index.html.haml_spec.rb +++ b/spec/views/notifications/index.html.haml_spec.rb @@ -14,14 +14,14 @@ require 'rails_helper' describe "notifications/index" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) controller.stub(:current_user) { @member } end context "ordinary notifications" do before(:each) do - @notification = FactoryGirl.create(:notification, sender: @member, - recipient: @member) + @notification = FactoryBot.create(:notification, sender: @member, + recipient: @member) assign(:notifications, Kaminari.paginate_array([@notification, @notification]).page(1)) render end @@ -39,7 +39,7 @@ describe "notifications/index" do context "no subject" do it "shows (no subject)" do - @notification = FactoryGirl.create(:notification, + @notification = FactoryBot.create(:notification, sender: @member, recipient: @member, subject: nil) assign(:notifications, Kaminari.paginate_array([@notification]).page(1)) render @@ -49,7 +49,7 @@ describe "notifications/index" do context "whitespace-only subject" do it "shows (no subject)" do - @notification = FactoryGirl.create(:notification, + @notification = FactoryBot.create(:notification, sender: @member, recipient: @member, subject: " ") assign(:notifications, Kaminari.paginate_array([@notification]).page(1)) render diff --git a/spec/views/notifications/new.html.haml_spec.rb b/spec/views/notifications/new.html.haml_spec.rb index a5daa64f5..2830966e1 100644 --- a/spec/views/notifications/new.html.haml_spec.rb +++ b/spec/views/notifications/new.html.haml_spec.rb @@ -14,9 +14,9 @@ require 'rails_helper' describe "notifications/new" do before(:each) do - @recipient = FactoryGirl.create(:member) - @sender = FactoryGirl.create(:member) - assign(:notification, FactoryGirl.create(:notification, recipient_id: @recipient.id, sender_id: @sender.id)) + @recipient = FactoryBot.create(:member) + @sender = FactoryBot.create(:member) + assign(:notification, FactoryBot.create(:notification, recipient_id: @recipient.id, sender_id: @sender.id)) sign_in @sender controller.stub(:current_user) { @sender } end diff --git a/spec/views/notifications/show.html.haml_spec.rb b/spec/views/notifications/show.html.haml_spec.rb index 4d5a71dfc..7cf7838c9 100644 --- a/spec/views/notifications/show.html.haml_spec.rb +++ b/spec/views/notifications/show.html.haml_spec.rb @@ -14,8 +14,8 @@ require 'rails_helper' describe "notifications/show" do before(:each) do - @member = FactoryGirl.create(:member) - @notification = FactoryGirl.create(:notification, recipient: @member) + @member = FactoryBot.create(:member) + @notification = FactoryBot.create(:notification, recipient: @member) assign(:notification, @notification) @reply_link = assign(:reply_link, new_notification_path) controller.stub(:current_user) { @member } diff --git a/spec/views/notifier/notify.html.haml_spec.rb b/spec/views/notifier/notify.html.haml_spec.rb index 55d508b25..66e81b158 100644 --- a/spec/views/notifier/notify.html.haml_spec.rb +++ b/spec/views/notifier/notify.html.haml_spec.rb @@ -14,7 +14,7 @@ require 'rails_helper' describe 'notifier/notify.html.haml', type: "view" do before(:each) do - @notification = FactoryGirl.create(:notification) + @notification = FactoryBot.create(:notification) @reply_link = "http://example.com" @signed_message = "EncryptedMessage" assign(:reply_link, @reply_link) diff --git a/spec/views/orders/index.html.haml_spec.rb b/spec/views/orders/index.html.haml_spec.rb index 38ab39362..6053de32f 100644 --- a/spec/views/orders/index.html.haml_spec.rb +++ b/spec/views/orders/index.html.haml_spec.rb @@ -14,10 +14,10 @@ require 'rails_helper' describe "orders/index" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member - @order1 = FactoryGirl.create(:order, member: @member) - @order2 = FactoryGirl.create(:completed_order, member: @member) + @order1 = FactoryBot.create(:order, member: @member) + @order2 = FactoryBot.create(:completed_order, member: @member) assign(:orders, [@order1, @order2]) end diff --git a/spec/views/orders/show.html.haml_spec.rb b/spec/views/orders/show.html.haml_spec.rb index 80624b180..32289bfc9 100644 --- a/spec/views/orders/show.html.haml_spec.rb +++ b/spec/views/orders/show.html.haml_spec.rb @@ -14,15 +14,15 @@ require 'rails_helper' describe "orders/show" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member controller.stub(:current_user) { @member } end context "current order" do before(:each) do - @order = assign(:order, FactoryGirl.create(:order, member: @member)) - @order_item = FactoryGirl.create(:order_item, + @order = assign(:order, FactoryBot.create(:order, member: @member)) + @order_item = FactoryBot.create(:order_item, order: @order, quantity: 2, price: 9900) @@ -62,8 +62,8 @@ describe "orders/show" do context "completed order" do before(:each) do - @order = assign(:order, FactoryGirl.create(:completed_order, member: @member)) - @order_item = FactoryGirl.create(:order_item, + @order = assign(:order, FactoryBot.create(:completed_order, member: @member)) + @order_item = FactoryBot.create(:order_item, order: @order, quantity: 2, price: 9900) diff --git a/spec/views/photos/index.html.haml_spec.rb b/spec/views/photos/index.html.haml_spec.rb index a59e4eb2c..4e1674765 100644 --- a/spec/views/photos/index.html.haml_spec.rb +++ b/spec/views/photos/index.html.haml_spec.rb @@ -19,8 +19,8 @@ describe "photos/index" do total_entries = 2 photos = WillPaginate::Collection.create(page, per_page, total_entries) do |pager| pager.replace([ - FactoryGirl.create(:photo), - FactoryGirl.create(:photo) + FactoryBot.create(:photo), + FactoryBot.create(:photo) ]) end assign(:photos, photos) diff --git a/spec/views/photos/new.html.haml_spec.rb b/spec/views/photos/new.html.haml_spec.rb index 8075d0154..2dcb51bfc 100644 --- a/spec/views/photos/new.html.haml_spec.rb +++ b/spec/views/photos/new.html.haml_spec.rb @@ -14,7 +14,7 @@ require 'rails_helper' describe "photos/new" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) controller.stub(:current_user) { @member } page = 1 per_page = 2 @@ -23,7 +23,7 @@ describe "photos/new" do pager.replace([]) end assign(:photos, photos) - assign(:flickr_auth, FactoryGirl.create(:flickr_authentication, member: @member)) + assign(:flickr_auth, FactoryBot.create(:flickr_authentication, member: @member)) end context "user has no photosets" do diff --git a/spec/views/photos/show.html.haml_spec.rb b/spec/views/photos/show.html.haml_spec.rb index 3e1e4936a..5ca8c31e1 100644 --- a/spec/views/photos/show.html.haml_spec.rb +++ b/spec/views/photos/show.html.haml_spec.rb @@ -13,15 +13,15 @@ require 'rails_helper' describe "photos/show" do - let(:photo) { FactoryGirl.create :photo, owner: member } + let(:photo) { FactoryBot.create :photo, owner: member } before { @photo = photo } - let(:member) { FactoryGirl.create :member } + let(:member) { FactoryBot.create :member } - let(:harvest) { FactoryGirl.create :harvest, owner: member } - let(:planting) { FactoryGirl.create :planting, owner: member } - let(:seed) { FactoryGirl.create :seed, owner: member } - let(:garden) { FactoryGirl.create :garden, owner: 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 @@ -70,7 +70,7 @@ describe "photos/show" do context "signed in as another member" do before(:each) do - controller.stub(:current_user) { FactoryGirl.create :member } + controller.stub(:current_user) { FactoryBot.create :member } render end include_examples "photo data renders" @@ -89,7 +89,7 @@ describe "photos/show" do context "CC-licensed photo" do before(:each) do controller.stub(:current_user) { nil } - # @photo = assign(:photo, FactoryGirl.create(:photo, owner: @member)) + # @photo = assign(:photo, FactoryBot.create(:photo, owner: @member)) @photo.harvests << harvest @photo.plantings << planting @photo.seeds << seed @@ -105,7 +105,7 @@ describe "photos/show" do context "unlicensed photo" do before(:each) do controller.stub(:current_user) { nil } - @photo = assign(:photo, FactoryGirl.create(:unlicensed_photo)) + @photo = assign(:photo, FactoryBot.create(:unlicensed_photo)) render end diff --git a/spec/views/places/show.html.haml_spec.rb b/spec/views/places/show.html.haml_spec.rb index 57f7e9742..c5e4cca10 100644 --- a/spec/views/places/show.html.haml_spec.rb +++ b/spec/views/places/show.html.haml_spec.rb @@ -14,8 +14,8 @@ require 'rails_helper' describe "places/show" do before(:each) do - @member = FactoryGirl.create(:london_member) - @nearby_members = [FactoryGirl.create(:member)] + @member = FactoryBot.create(:london_member) + @nearby_members = [FactoryBot.create(:member)] controller.stub(:current_user) { @member } controller.stub(:current_member) { @member } @place = @member.location diff --git a/spec/views/plant_parts/index.html.haml_spec.rb b/spec/views/plant_parts/index.html.haml_spec.rb index adb0f9a46..73dec883e 100644 --- a/spec/views/plant_parts/index.html.haml_spec.rb +++ b/spec/views/plant_parts/index.html.haml_spec.rb @@ -15,7 +15,7 @@ require 'rails_helper' describe "plant_parts/index" do before(:each) do controller.stub(:current_user) { nil } - @pp = FactoryGirl.create(:plant_part) + @pp = FactoryBot.create(:plant_part) assign(:plant_parts, [@pp]) end diff --git a/spec/views/plant_parts/show.html.haml_spec.rb b/spec/views/plant_parts/show.html.haml_spec.rb index 8b267c449..bffd0f394 100644 --- a/spec/views/plant_parts/show.html.haml_spec.rb +++ b/spec/views/plant_parts/show.html.haml_spec.rb @@ -15,8 +15,8 @@ require 'rails_helper' describe "plant_parts/show" do before(:each) do controller.stub(:current_user) { nil } - @pp = FactoryGirl.create(:plant_part) - @harvest = FactoryGirl.create(:harvest, plant_part: @pp) + @pp = FactoryBot.create(:plant_part) + @harvest = FactoryBot.create(:harvest, plant_part: @pp) assign(:plant_part, @pp) end diff --git a/spec/views/plantings/_form.html.haml_spec.rb b/spec/views/plantings/_form.html.haml_spec.rb index a9491231c..59d4d832b 100644 --- a/spec/views/plantings/_form.html.haml_spec.rb +++ b/spec/views/plantings/_form.html.haml_spec.rb @@ -15,13 +15,13 @@ require 'rails_helper' describe "plantings/_form" do before(:each) do controller.stub(:current_user) { nil } - @member = FactoryGirl.create(:member) - @garden = FactoryGirl.create(:garden, owner: @member) - @uppercase = FactoryGirl.create(:uppercasecrop) - @lowercase = FactoryGirl.create(:lowercasecrop) + @member = FactoryBot.create(:member) + @garden = FactoryBot.create(:garden, owner: @member) + @uppercase = FactoryBot.create(:uppercasecrop) + @lowercase = FactoryBot.create(:lowercasecrop) @crop = @lowercase # needed to render the form - @planting = FactoryGirl.create(:planting, + @planting = FactoryBot.create(:planting, garden: @garden, crop: @crop, planted_at: Date.new(2013, 3, 1)) diff --git a/spec/views/plantings/edit.html.haml_spec.rb b/spec/views/plantings/edit.html.haml_spec.rb index eb544ec36..c37f9947a 100644 --- a/spec/views/plantings/edit.html.haml_spec.rb +++ b/spec/views/plantings/edit.html.haml_spec.rb @@ -14,21 +14,21 @@ require 'rails_helper' describe "plantings/edit" do before(:each) do - @member = FactoryGirl.create(:member, + @member = FactoryBot.create(:member, login_name: 'right', email: 'right@example.com') # creating two crops to make sure that the correct one is selected # in the form. - @tomato = FactoryGirl.create(:tomato) - @maize = FactoryGirl.create(:maize) + @tomato = FactoryBot.create(:tomato) + @maize = FactoryBot.create(:maize) # and likewise for gardens - @garden = FactoryGirl.create(:garden_z, owner: @member) - @garden2 = FactoryGirl.create(:garden_a, owner: @member) + @garden = FactoryBot.create(:garden_z, owner: @member) + @garden2 = FactoryBot.create(:garden_a, owner: @member) @planting = assign(:planting, - FactoryGirl.create(:planting, garden: @garden, crop: @tomato)) + FactoryBot.create(:planting, garden: @garden, crop: @tomato)) end context "logged in" do diff --git a/spec/views/plantings/index.html.haml_spec.rb b/spec/views/plantings/index.html.haml_spec.rb index 5b0b38000..10769548e 100644 --- a/spec/views/plantings/index.html.haml_spec.rb +++ b/spec/views/plantings/index.html.haml_spec.rb @@ -15,25 +15,25 @@ require 'rails_helper' describe "plantings/index" do before(:each) do controller.stub(:current_user) { nil } - @member = FactoryGirl.create(:member) - @garden = FactoryGirl.create(:garden, owner: @member) - @tomato = FactoryGirl.create(:tomato) - @maize = FactoryGirl.create(:maize) + @member = FactoryBot.create(:member) + @garden = FactoryBot.create(:garden, owner: @member) + @tomato = FactoryBot.create(:tomato) + @maize = FactoryBot.create(:maize) page = 1 per_page = 3 total_entries = 3 plantings = WillPaginate::Collection.create(page, per_page, total_entries) do |pager| pager.replace([ - FactoryGirl.create(:planting, + FactoryBot.create(:planting, garden: @garden, crop: @tomato, owner: @member), - FactoryGirl.create(:planting, + FactoryBot.create(:planting, garden: @garden, crop: @maize, description: '', planted_at: Time.local(2013, 1, 13)), - FactoryGirl.create(:planting, + FactoryBot.create(:planting, garden: @garden, crop: @tomato, planted_at: Time.local(2013, 1, 13), diff --git a/spec/views/plantings/index.rss.haml_spec.rb b/spec/views/plantings/index.rss.haml_spec.rb index 58a4a2996..1d15ad5cc 100644 --- a/spec/views/plantings/index.rss.haml_spec.rb +++ b/spec/views/plantings/index.rss.haml_spec.rb @@ -19,9 +19,9 @@ describe 'plantings/index.rss.haml' do context 'all plantings' do before :each do - @planting = FactoryGirl.create(:planting) - @sunny = FactoryGirl.create(:sunny_planting) - @seedling = FactoryGirl.create(:seedling_planting) + @planting = FactoryBot.create(:planting) + @sunny = FactoryBot.create(:sunny_planting) + @seedling = FactoryBot.create(:seedling_planting) assign(:plantings, [@planting, @sunny, @seedling]) render end @@ -49,7 +49,7 @@ describe 'plantings/index.rss.haml' do context "one person's plantings" do before :each do - @planting = FactoryGirl.create(:planting) + @planting = FactoryBot.create(:planting) assign(:plantings, [@planting]) assign(:owner, @planting.owner) render diff --git a/spec/views/plantings/new.html.haml_spec.rb b/spec/views/plantings/new.html.haml_spec.rb index 57cb605d6..9eb941d1d 100644 --- a/spec/views/plantings/new.html.haml_spec.rb +++ b/spec/views/plantings/new.html.haml_spec.rb @@ -14,16 +14,16 @@ require 'rails_helper' describe "plantings/new" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) controller.stub(:current_user) { @member } # create gardens and crops to populate dropdowns - @garden_a = FactoryGirl.create(:garden, owner: @member) - @garden_z = FactoryGirl.create(:garden, owner: @member) - @crop1 = FactoryGirl.create(:tomato) - @crop2 = FactoryGirl.create(:maize) + @garden_a = FactoryBot.create(:garden, owner: @member) + @garden_z = FactoryBot.create(:garden, owner: @member) + @crop1 = FactoryBot.create(:tomato) + @crop2 = FactoryBot.create(:maize) - assign(:planting, FactoryGirl.create(:planting, + assign(:planting, FactoryBot.create(:planting, garden: @garden_a, crop: @crop2)) end diff --git a/spec/views/plantings/show.html.haml_spec.rb b/spec/views/plantings/show.html.haml_spec.rb index f14003320..f948ca394 100644 --- a/spec/views/plantings/show.html.haml_spec.rb +++ b/spec/views/plantings/show.html.haml_spec.rb @@ -14,15 +14,15 @@ require 'rails_helper' describe "plantings/show" do def create_planting_for(member) - @garden = FactoryGirl.create(:garden, owner: @member) - @crop = FactoryGirl.create(:tomato) + @garden = FactoryBot.create(:garden, owner: @member) + @crop = FactoryBot.create(:tomato) @planting = assign(:planting, - FactoryGirl.create(:planting, garden: @garden, crop: @crop, - planted_from: 'cutting')) + FactoryBot.create(:planting, garden: @garden, crop: @crop, + planted_from: 'cutting')) end before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) controller.stub(:current_user) { @member } @p = create_planting_for(@member) end @@ -30,7 +30,7 @@ describe "plantings/show" do context 'sunniness' do before(:each) do @p = assign(:planting, - FactoryGirl.create(:sunny_planting)) + FactoryBot.create(:sunny_planting)) end it "shows the sunniness" do @@ -42,7 +42,7 @@ describe "plantings/show" do context 'planted from' do before(:each) do - @p = assign(:planting, FactoryGirl.create(:cutting_planting)) + @p = assign(:planting, FactoryBot.create(:cutting_planting)) end it "shows planted_from" do @@ -61,7 +61,7 @@ describe "plantings/show" do end it "shows photos" do - @photo = FactoryGirl.create(:photo, owner: @member) + @photo = FactoryBot.create(:photo, owner: @member) @p.photos << @photo render assert_select "img[src='#{@photo.thumbnail_url}']" diff --git a/spec/views/posts/_single.html.haml_spec.rb b/spec/views/posts/_single.html.haml_spec.rb index b23d61af0..833970b29 100644 --- a/spec/views/posts/_single.html.haml_spec.rb +++ b/spec/views/posts/_single.html.haml_spec.rb @@ -18,7 +18,7 @@ describe "posts/_single" do end before(:each) do - @post = FactoryGirl.create(:post) + @post = FactoryBot.create(:post) controller.stub(:current_user) { nil } end @@ -38,7 +38,7 @@ describe "posts/_single" do context "when logged in" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member controller.stub(:current_user) { @member } render_post @@ -55,10 +55,10 @@ describe "posts/_single" do context "when logged in as post author" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member controller.stub(:current_user) { @member } - @post = FactoryGirl.create(:post, author: @member) + @post = FactoryBot.create(:post, author: @member) render_post end @@ -79,7 +79,7 @@ describe "posts/_single" do context "when there is 1 comment" do before(:each) do - @comment = FactoryGirl.create(:comment, post: @post) + @comment = FactoryBot.create(:comment, post: @post) render_post end @@ -90,8 +90,8 @@ describe "posts/_single" do context "when there are 2 comments" do before(:each) do - @comment = FactoryGirl.create(:comment, post: @post) - @comment2 = FactoryGirl.create(:comment, post: @post) + @comment = FactoryBot.create(:comment, post: @post) + @comment2 = FactoryBot.create(:comment, post: @post) render_post end @@ -102,10 +102,10 @@ describe "posts/_single" do context "when comments should be hidden" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member controller.stub(:current_user) { @member } - @comment = FactoryGirl.create(:comment, post: @post) + @comment = FactoryBot.create(:comment, post: @post) render partial: "single", locals: { post: @post, hide_comments: true } @@ -126,10 +126,10 @@ describe "posts/_single" do context "when post has been edited" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member controller.stub(:current_user) { @member } - @post = FactoryGirl.create(:post, author: @member) + @post = FactoryBot.create(:post, author: @member) @post.update(body: "I am updated") render_post end @@ -145,11 +145,11 @@ describe "posts/_single" do context "when comment has been edited" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member controller.stub(:current_user) { @member } - @post = FactoryGirl.create(:post, author: @member) - @comment = FactoryGirl.create(:comment, post: @post) + @post = FactoryBot.create(:post, author: @member) + @comment = FactoryBot.create(:comment, post: @post) @comment.update(body: "I've been updated") render partial: "comments/single", locals: { comment: @comment } end @@ -165,10 +165,10 @@ describe "posts/_single" do context "when post has not been edited" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member controller.stub(:current_user) { @member } - @post = FactoryGirl.create(:post, author: @member) + @post = FactoryBot.create(:post, author: @member) @post.update(updated_at: @post.created_at) render_post end @@ -180,11 +180,11 @@ describe "posts/_single" do context "when comment has not been edited" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member controller.stub(:current_user) { @member } - @post = FactoryGirl.create(:post, author: @member) - @comment = FactoryGirl.create(:comment, post: @post) + @post = FactoryBot.create(:post, author: @member) + @comment = FactoryBot.create(:comment, post: @post) @comment.update(updated_at: @comment.created_at) render partial: "comments/single", locals: { comment: @comment } end diff --git a/spec/views/posts/edit.html.haml_spec.rb b/spec/views/posts/edit.html.haml_spec.rb index 490cb6f83..8bee4298b 100644 --- a/spec/views/posts/edit.html.haml_spec.rb +++ b/spec/views/posts/edit.html.haml_spec.rb @@ -15,8 +15,8 @@ require 'rails_helper' describe "posts/edit" do before(:each) do controller.stub(:current_user) { nil } - @author = FactoryGirl.create(:member) - @post = assign(:post, FactoryGirl.create(:post, author: @author)) + @author = FactoryBot.create(:member) + @post = assign(:post, FactoryBot.create(:post, author: @author)) end context "logged in" do @@ -42,8 +42,8 @@ describe "posts/edit" do context "forum specified" do before(:each) do - @forum = assign(:forum, FactoryGirl.create(:forum)) - assign(:post, FactoryGirl.create(:post, + @forum = assign(:forum, FactoryBot.create(:forum)) + assign(:post, FactoryBot.create(:post, forum: @forum, author: @author)) render diff --git a/spec/views/posts/index.html.haml_spec.rb b/spec/views/posts/index.html.haml_spec.rb index 731be8ea8..17aab3d47 100644 --- a/spec/views/posts/index.html.haml_spec.rb +++ b/spec/views/posts/index.html.haml_spec.rb @@ -15,14 +15,14 @@ require 'rails_helper' describe "posts/index" do before(:each) do controller.stub(:current_user) { nil } - @author = FactoryGirl.create(:member) + @author = FactoryBot.create(:member) page = 1 per_page = 2 total_entries = 2 posts = WillPaginate::Collection.create(page, per_page, total_entries) do |pager| pager.replace([ - FactoryGirl.create(:post, author: @author), - FactoryGirl.create(:post, author: @author) + FactoryBot.create(:post, author: @author), + FactoryBot.create(:post, author: @author) ]) end assign(:posts, posts) diff --git a/spec/views/posts/index.rss.haml_spec.rb b/spec/views/posts/index.rss.haml_spec.rb index a5ee08423..a47b80b48 100644 --- a/spec/views/posts/index.rss.haml_spec.rb +++ b/spec/views/posts/index.rss.haml_spec.rb @@ -15,9 +15,9 @@ require 'rails_helper' describe 'posts/index.rss.haml', type: "view" do before(:each) do controller.stub(:current_user) { nil } - author = FactoryGirl.create(:member) - @post1 = FactoryGirl.create(:post, id: 1, author: author) - @post2 = FactoryGirl.create(:post, id: 2, author: author) + author = FactoryBot.create(:member) + @post1 = FactoryBot.create(:post, id: 1, author: author) + @post2 = FactoryBot.create(:post, id: 2, author: author) assign(:posts, [@post1, @post2]) render end diff --git a/spec/views/posts/new.html.haml_spec.rb b/spec/views/posts/new.html.haml_spec.rb index 53c01fa35..0c788716e 100644 --- a/spec/views/posts/new.html.haml_spec.rb +++ b/spec/views/posts/new.html.haml_spec.rb @@ -14,8 +14,8 @@ require 'rails_helper' describe "posts/new" do before(:each) do - @author = FactoryGirl.create(:member) - assign(:post, FactoryGirl.create(:post, author: @author)) + @author = FactoryBot.create(:member) + assign(:post, FactoryBot.create(:post, author: @author)) # assign(:forum, Forum.new) sign_in @author controller.stub(:current_user) { @author } @@ -46,8 +46,8 @@ describe "posts/new" do context "forum specified" do before(:each) do - @forum = assign(:forum, FactoryGirl.create(:forum)) - assign(:post, FactoryGirl.create(:post, forum: @forum)) + @forum = assign(:forum, FactoryBot.create(:forum)) + assign(:post, FactoryBot.create(:post, forum: @forum)) render end diff --git a/spec/views/posts/show.html.haml_spec.rb b/spec/views/posts/show.html.haml_spec.rb index 03082ff27..169e90da0 100644 --- a/spec/views/posts/show.html.haml_spec.rb +++ b/spec/views/posts/show.html.haml_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe "posts/show" do - let(:author) { FactoryGirl.create(:member) } + let(:author) { FactoryBot.create(:member) } before(:each) do controller.stub(:current_user) { nil } @@ -12,7 +12,7 @@ describe "posts/show" do describe 'render post' do before { render } describe "basic post" do - let(:post) { FactoryGirl.create(:post, author: author) } + let(:post) { FactoryBot.create(:post, author: author) } # show the name of the member who posted the post it { is_expected.to match(/member\d+/) } @@ -24,33 +24,33 @@ describe "posts/show" do end describe "should parse markdown into html" do - let(:post) { FactoryGirl.create(:markdown_post, author: author) } + let(:post) { FactoryBot.create(:markdown_post, author: author) } it { assert_select "strong", "strong" } end describe "shouldn't let html through in body" do - let(:post) { FactoryGirl.create(:post, author: author, body: 'EVIL') } + let(:post) { FactoryBot.create(:post, author: author, body: 'EVIL') } it { is_expected.to have_content('EVIL') } it { is_expected.not_to have_link("http://evil.com") } end describe 'script tag in post body' do - let(:post) { FactoryGirl.create(:post, author: author, body: "") } + let(:post) { FactoryBot.create(:post, author: author, body: "") } it { is_expected.not_to have_selector('script') } end describe 'script tag in post title' do - let(:post) { FactoryGirl.create(:post, author: author, subject: "") } + let(:post) { FactoryBot.create(:post, author: author, subject: "") } it { is_expected.not_to have_selector('script') } end describe 'has an anchor to the comments' do - let(:post) { FactoryGirl.create(:post, author: author) } + let(:post) { FactoryBot.create(:post, author: author) } it { is_expected.to have_selector('a[name=comments]') } end end context "when there is one comment" do - let(:post) { FactoryGirl.create(:html_post, author: author) } - let!(:comment) { FactoryGirl.create(:comment, post: post) } + let(:post) { FactoryBot.create(:html_post, author: author) } + let!(:comment) { FactoryBot.create(:comment, post: post) } before(:each) do @comments = post.comments render @@ -70,15 +70,15 @@ describe "posts/show" do end context "when there is more than one comment" do - let(:post) { FactoryGirl.create(:html_post, author: author) } + let(:post) { FactoryBot.create(:html_post, author: author) } before(:each) do - @comment1 = FactoryGirl.create(:comment, post: post, body: "F1rst!!!", - created_at: Date.new(2010, 5, 17)) - @comment3 = FactoryGirl.create(:comment, post: post, body: "Th1rd!!!", - created_at: Date.new(2012, 5, 17)) - @comment4 = FactoryGirl.create(:comment, post: post, body: "F0urth!!!") - @comment2 = FactoryGirl.create(:comment, post: post, body: "S3c0nd!!1!", - created_at: Date.new(2011, 5, 17)) + @comment1 = FactoryBot.create(:comment, post: post, body: "F1rst!!!", + created_at: Date.new(2010, 5, 17)) + @comment3 = FactoryBot.create(:comment, post: post, body: "Th1rd!!!", + created_at: Date.new(2012, 5, 17)) + @comment4 = FactoryBot.create(:comment, post: post, body: "F0urth!!!") + @comment2 = FactoryBot.create(:comment, post: post, body: "S3c0nd!!1!", + created_at: Date.new(2011, 5, 17)) @comments = post.comments render end @@ -89,7 +89,7 @@ describe "posts/show" do end context "forum post" do - let(:post) { FactoryGirl.create(:forum_post, author: author) } + let(:post) { FactoryBot.create(:forum_post, author: author) } before { render } it "shows forum name" do is_expected.to have_content "in #{post.forum.name}" @@ -97,7 +97,7 @@ describe "posts/show" do end context "signed in" do - let(:post) { FactoryGirl.create(:post, author: author) } + let(:post) { FactoryBot.create(:post, author: author) } before(:each) do sign_in author controller.stub(:current_user) { author } diff --git a/spec/views/posts/show.rss.haml_spec.rb b/spec/views/posts/show.rss.haml_spec.rb index 7fd1d8891..97625fa2c 100644 --- a/spec/views/posts/show.rss.haml_spec.rb +++ b/spec/views/posts/show.rss.haml_spec.rb @@ -15,10 +15,10 @@ require 'rails_helper' describe 'posts/show.rss.haml' do before(:each) do controller.stub(:current_user) { nil } - @author = FactoryGirl.create(:member) - @post = FactoryGirl.create(:post) - FactoryGirl.create(:comment, author: @author, post: @post) - FactoryGirl.create(:comment, author: @author, post: @post) + @author = FactoryBot.create(:member) + @post = FactoryBot.create(:post) + FactoryBot.create(:comment, author: @author, post: @post) + FactoryBot.create(:comment, author: @author, post: @post) assign(:post, @post) render end diff --git a/spec/views/products/index.html.haml_spec.rb b/spec/views/products/index.html.haml_spec.rb index f69492169..cbde70cf1 100644 --- a/spec/views/products/index.html.haml_spec.rb +++ b/spec/views/products/index.html.haml_spec.rb @@ -14,7 +14,7 @@ require 'rails_helper' describe "products/index" do before(:each) do - @product = FactoryGirl.create(:product) + @product = FactoryBot.create(:product) assign(:products, [@product, @product]) end diff --git a/spec/views/products/show.html.haml_spec.rb b/spec/views/products/show.html.haml_spec.rb index 2aeffa783..ee529cc71 100644 --- a/spec/views/products/show.html.haml_spec.rb +++ b/spec/views/products/show.html.haml_spec.rb @@ -14,7 +14,7 @@ require 'rails_helper' describe "products/show" do before(:each) do - @product = assign(:product, FactoryGirl.create(:product)) + @product = assign(:product, FactoryBot.create(:product)) end it "renders attributes in

    " do diff --git a/spec/views/scientific_names/edit.html.haml_spec.rb b/spec/views/scientific_names/edit.html.haml_spec.rb index 131861a79..abd9b4c62 100644 --- a/spec/views/scientific_names/edit.html.haml_spec.rb +++ b/spec/views/scientific_names/edit.html.haml_spec.rb @@ -15,11 +15,11 @@ require 'rails_helper' describe "scientific_names/edit" do context "logged in" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member controller.stub(:current_user) { @member } @scientific_name = assign(:scientific_name, - FactoryGirl.create(:zea_mays)) + FactoryBot.create(:zea_mays)) render end diff --git a/spec/views/scientific_names/index.html.haml_spec.rb b/spec/views/scientific_names/index.html.haml_spec.rb index feb4d3535..248ca5be9 100644 --- a/spec/views/scientific_names/index.html.haml_spec.rb +++ b/spec/views/scientific_names/index.html.haml_spec.rb @@ -16,8 +16,8 @@ describe "scientific_names/index" do before(:each) do controller.stub(:current_user) { nil } assign(:scientific_names, [ - FactoryGirl.create(:zea_mays), - FactoryGirl.create(:solanum_lycopersicum) + FactoryBot.create(:zea_mays), + FactoryBot.create(:solanum_lycopersicum) ]) end @@ -35,7 +35,7 @@ describe "scientific_names/index" do context "logged in and crop wrangler" do before(:each) do - @member = FactoryGirl.create(:crop_wrangling_member) + @member = FactoryBot.create(:crop_wrangling_member) sign_in @member controller.stub(:current_user) { @member } end diff --git a/spec/views/scientific_names/new.html.haml_spec.rb b/spec/views/scientific_names/new.html.haml_spec.rb index 772387dd7..f820007a7 100644 --- a/spec/views/scientific_names/new.html.haml_spec.rb +++ b/spec/views/scientific_names/new.html.haml_spec.rb @@ -14,12 +14,12 @@ require 'rails_helper' describe "scientific_names/new" do before(:each) do - assign(:scientific_name, FactoryGirl.create(:zea_mays)) + assign(:scientific_name, FactoryBot.create(:zea_mays)) end context "logged in" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member controller.stub(:current_user) { @member } render diff --git a/spec/views/scientific_names/show.html.haml_spec.rb b/spec/views/scientific_names/show.html.haml_spec.rb index 00ca59823..a12082fa4 100644 --- a/spec/views/scientific_names/show.html.haml_spec.rb +++ b/spec/views/scientific_names/show.html.haml_spec.rb @@ -16,7 +16,7 @@ describe "scientific_names/show" do before(:each) do controller.stub(:current_user) { nil } @scientific_name = assign(:scientific_name, - FactoryGirl.create(:zea_mays)) + FactoryBot.create(:zea_mays)) end it "renders attributes in

    " do @@ -27,7 +27,7 @@ describe "scientific_names/show" do context 'signed in' do before :each do - @wrangler = FactoryGirl.create(:crop_wrangling_member) + @wrangler = FactoryBot.create(:crop_wrangling_member) sign_in @wrangler controller.stub(:current_user) { @wrangler } render diff --git a/spec/views/seeds/edit.html.haml_spec.rb b/spec/views/seeds/edit.html.haml_spec.rb index 9ed744295..6822bf961 100644 --- a/spec/views/seeds/edit.html.haml_spec.rb +++ b/spec/views/seeds/edit.html.haml_spec.rb @@ -14,10 +14,10 @@ require 'rails_helper' describe "seeds/edit" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member controller.stub(:current_user) { @member } - @seed = FactoryGirl.create(:seed, owner: @member) + @seed = FactoryBot.create(:seed, owner: @member) end it "renders the edit seed form" do @@ -34,7 +34,7 @@ describe "seeds/edit" do end it "doesn't revert tradable_to to nowhere" do - @seed = FactoryGirl.create(:tradable_seed, owner: @member) + @seed = FactoryBot.create(:tradable_seed, owner: @member) @seed.tradable_to.should_not eq "nowhere" render assert_select "option[selected=selected]", text: @seed.tradable_to diff --git a/spec/views/seeds/index.rss.haml_spec.rb b/spec/views/seeds/index.rss.haml_spec.rb index a90394084..7e2b3df88 100644 --- a/spec/views/seeds/index.rss.haml_spec.rb +++ b/spec/views/seeds/index.rss.haml_spec.rb @@ -19,8 +19,8 @@ describe 'seeds/index.rss.haml' do context 'all seeds' do before(:each) do - @seed = FactoryGirl.create(:seed) - @tradable = FactoryGirl.create(:tradable_seed) + @seed = FactoryBot.create(:seed) + @tradable = FactoryBot.create(:tradable_seed) assign(:seeds, [@seed, @tradable]) render end @@ -48,7 +48,7 @@ describe 'seeds/index.rss.haml' do context "one member's seeds" do before(:each) do - @seed = FactoryGirl.create(:seed) + @seed = FactoryBot.create(:seed) assign(:seeds, [@seed]) assign(:owner, @seed.owner) render diff --git a/spec/views/seeds/new.html.haml_spec.rb b/spec/views/seeds/new.html.haml_spec.rb index 2cc82f641..a05da5b23 100644 --- a/spec/views/seeds/new.html.haml_spec.rb +++ b/spec/views/seeds/new.html.haml_spec.rb @@ -14,10 +14,10 @@ require 'rails_helper' describe "seeds/new" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member controller.stub(:current_user) { @member } - @seed1 = FactoryGirl.create(:seed, owner: @member) + @seed1 = FactoryBot.create(:seed, owner: @member) assign(:seed, @seed1) end @@ -40,10 +40,10 @@ describe "seeds/new" do context 'member has location' do before(:each) do - @member = FactoryGirl.create(:london_member) + @member = FactoryBot.create(:london_member) sign_in @member controller.stub(:current_user) { @member } - @seed1 = FactoryGirl.create(:seed, owner: @member) + @seed1 = FactoryBot.create(:seed, owner: @member) assign(:seed, @seed1) end diff --git a/spec/views/seeds/show.html.haml_spec.rb b/spec/views/seeds/show.html.haml_spec.rb index c970a2518..654d27b0f 100644 --- a/spec/views/seeds/show.html.haml_spec.rb +++ b/spec/views/seeds/show.html.haml_spec.rb @@ -15,7 +15,7 @@ require 'rails_helper' describe "seeds/show" do before(:each) do controller.stub(:current_user) { nil } - @seed = FactoryGirl.create(:seed) + @seed = FactoryBot.create(:seed) assign(:seed, @seed) end @@ -26,11 +26,11 @@ describe "seeds/show" do context "tradable" do before(:each) do - @owner = FactoryGirl.create(:london_member) - assign(:seed, FactoryGirl.create(:tradable_seed, + @owner = FactoryBot.create(:london_member) + assign(:seed, FactoryBot.create(:tradable_seed, owner: @owner)) # note current_member is not the owner of this seed - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) sign_in @member controller.stub(:current_user) { @member } end @@ -48,10 +48,10 @@ describe "seeds/show" do context 'with no location' do before(:each) do - @owner = FactoryGirl.create(:member) # no location + @owner = FactoryBot.create(:member) # no location sign_in @owner controller.stub(:current_user) { @owner } - assign(:seed, FactoryGirl.create(:tradable_seed, owner: @owner)) + assign(:seed, FactoryBot.create(:tradable_seed, owner: @owner)) end it 'says "from unspecified location"' do diff --git a/spec/views/shop/index_spec.rb b/spec/views/shop/index_spec.rb index 54994def9..e809782bc 100644 --- a/spec/views/shop/index_spec.rb +++ b/spec/views/shop/index_spec.rb @@ -14,15 +14,15 @@ require 'rails_helper' describe 'shop/index.html.haml', type: "view" do before(:each) do - @product1 = FactoryGirl.create(:product) - @product2 = FactoryGirl.create(:product_with_recommended_price) + @product1 = FactoryBot.create(:product) + @product2 = FactoryBot.create(:product_with_recommended_price) assign(:products, [@product1, @product2]) assign(:order_item, OrderItem.new) end context "signed in" do before(:each) do - @member = FactoryGirl.create(:member) + @member = FactoryBot.create(:member) controller.stub(:current_user) { @member } render end @@ -60,8 +60,8 @@ describe 'shop/index.html.haml', type: "view" do context "is paid" do before(:each) do - @member = FactoryGirl.create(:member) - @member.account.account_type = FactoryGirl.create(:paid_account_type) + @member = FactoryBot.create(:member) + @member.account.account_type = FactoryBot.create(:paid_account_type) @member.account.paid_until = Time.zone.now + 1.year controller.stub(:current_member) { @member } end From 81e22d6fb2804ff1488a302b06304f5cc64b7697 Mon Sep 17 00:00:00 2001 From: Logan Gingerich Date: Tue, 31 Oct 2017 09:41:57 -0600 Subject: [PATCH 11/13] fixes #1419 - Allows brackets in garden names --- app/models/garden.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/garden.rb b/app/models/garden.rb index 5af61506a..daab5d49c 100644 --- a/app/models/garden.rb +++ b/app/models/garden.rb @@ -23,7 +23,7 @@ class Garden < ActiveRecord::Base validates :name, format: { - with: /\A\w+[\w ]+\z/ + with: /\A\w+[\w ()]+\z/ }, length: { maximum: 255 } From 99e7fb1f7d1d01d479c63c56b2d1adec6866c7e6 Mon Sep 17 00:00:00 2001 From: Logan Gingerich Date: Wed, 1 Nov 2017 07:49:23 -0600 Subject: [PATCH 12/13] Name added to contributors and spec added --- spec/models/garden_spec.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/spec/models/garden_spec.rb b/spec/models/garden_spec.rb index 85af8d86d..f55d87393 100644 --- a/spec/models/garden_spec.rb +++ b/spec/models/garden_spec.rb @@ -27,6 +27,11 @@ describe Garden do garden.should_not be_valid end + it "allows brackets" do + garden = FactoryGirl.build(:garden, name: "Garden (second)") + garden.should be_valid + end + it "allows macrons" do garden = FactoryBot.build(:garden, name: "Kūmara and pūha patch") garden.should_not be_valid From fa600bea9e9398d1b90cb93e55d4834da9669c24 Mon Sep 17 00:00:00 2001 From: Logan Gingerich Date: Thu, 2 Nov 2017 10:30:17 -0600 Subject: [PATCH 13/13] changed spec to reflect factorybot change --- spec/models/garden_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/models/garden_spec.rb b/spec/models/garden_spec.rb index f55d87393..867b333d1 100644 --- a/spec/models/garden_spec.rb +++ b/spec/models/garden_spec.rb @@ -28,7 +28,7 @@ describe Garden do end it "allows brackets" do - garden = FactoryGirl.build(:garden, name: "Garden (second)") + garden = FactoryBot.build(:garden, name: "Garden (second)") garden.should be_valid end