mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-05-25 01:13:03 -04:00
Compare commits
18 Commits
RSpec/Incl
...
feature-us
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9c4238e601 | ||
|
|
bbe75df0ad | ||
|
|
279cc88162 | ||
|
|
fe4dd5c185 | ||
|
|
75a2ec89e0 | ||
|
|
d625eb2dbd | ||
|
|
2019d0e952 | ||
|
|
e7659a75a4 | ||
|
|
4a66bdc9fe | ||
|
|
8de6b083f9 | ||
|
|
accab7f84c | ||
|
|
3f6dd59dfa | ||
|
|
0a71b44dea | ||
|
|
ba75afb3f5 | ||
|
|
aa1c9ceb05 | ||
|
|
6f59635ca7 | ||
|
|
6736ae3142 | ||
|
|
bd5769cf4f |
22
.github/workflows/ci.yml
vendored
22
.github/workflows/ci.yml
vendored
@@ -108,23 +108,5 @@ jobs:
|
||||
run: bundle exec rails db:prepare
|
||||
|
||||
|
||||
- name: Run rspec (lib)
|
||||
run: bundle exec rspec spec/lib/ -fd --fail-fast
|
||||
|
||||
- name: Run rspec (services)
|
||||
run: bundle exec rspec spec/services/ -fd --fail-fast
|
||||
|
||||
- name: Run rspec (models)
|
||||
run: bundle exec rspec spec/models/ -fd --fail-fast
|
||||
|
||||
- name: Run rspec (controllers)
|
||||
run: bundle exec rspec spec/controllers/ -fd --fail-fast
|
||||
|
||||
- name: Run rspec (views)
|
||||
run: bundle exec rspec spec/views/ -fd --fail-fast
|
||||
|
||||
- name: Run rspec (routing)
|
||||
run: bundle exec rspec spec/routing/ -fd --fail-fast
|
||||
|
||||
- name: Run rspec (request)
|
||||
run: bundle exec rspec spec/requests/ -fd --fail-fast
|
||||
- name: Run tests with test-queue
|
||||
run: bundle exec test-queue rspec spec -fd
|
||||
|
||||
@@ -242,12 +242,6 @@ RSpec/BeforeAfterAll:
|
||||
Exclude:
|
||||
- 'spec/tasks/import_spec.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
RSpec/ContextMethod:
|
||||
Exclude:
|
||||
- 'spec/requests/api/v1/activities_request_spec.rb'
|
||||
|
||||
# Offense count: 299
|
||||
# Configuration parameters: Prefixes, AllowedPatterns.
|
||||
# Prefixes: when, with, without
|
||||
@@ -299,14 +293,6 @@ RSpec/EmptyLineAfterExample:
|
||||
RSpec/ExampleLength:
|
||||
Max: 27
|
||||
|
||||
# Offense count: 1
|
||||
# This cop supports unsafe autocorrection (--autocorrect-all).
|
||||
# Configuration parameters: EnforcedStyle.
|
||||
# SupportedStyles: method_call, block
|
||||
RSpec/ExpectChange:
|
||||
Exclude:
|
||||
- 'spec/models/crop_spec.rb'
|
||||
|
||||
# Offense count: 32
|
||||
RSpec/ExpectInHook:
|
||||
Exclude:
|
||||
@@ -486,23 +472,6 @@ RSpec/VerifiedDoubles:
|
||||
- 'spec/controllers/gardens_controller_spec.rb'
|
||||
- 'spec/views/devise/shared/_links_spec.rb'
|
||||
|
||||
# Offense count: 7
|
||||
# This cop supports unsafe autocorrection (--autocorrect-all).
|
||||
# Configuration parameters: ResponseMethods.
|
||||
# ResponseMethods: response, last_response
|
||||
RSpecRails/HaveHttpStatus:
|
||||
Exclude:
|
||||
- 'spec/controllers/api/v1/plantings_controller_spec.rb'
|
||||
- 'spec/controllers/harvests_controller_spec.rb'
|
||||
- 'spec/controllers/likes_controller_spec.rb'
|
||||
- 'spec/requests/harvests_spec.rb'
|
||||
|
||||
# Offense count: 17
|
||||
# This cop supports unsafe autocorrection (--autocorrect-all).
|
||||
# Configuration parameters: Inferences.
|
||||
RSpecRails/InferredSpecType:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 30
|
||||
# Configuration parameters: Database.
|
||||
# SupportedDatabases: mysql, postgresql
|
||||
@@ -622,7 +591,6 @@ Rails/RedundantActiveRecordAllMethod:
|
||||
- 'app/controllers/scientific_names_controller.rb'
|
||||
- 'spec/features/members/deletion_spec.rb'
|
||||
- 'spec/features/percy/percy_spec.rb'
|
||||
- 'spec/models/harvest_spec.rb'
|
||||
|
||||
# Offense count: 5
|
||||
# This cop supports unsafe autocorrection (--autocorrect-all).
|
||||
@@ -704,12 +672,6 @@ Rails/WhereEquals:
|
||||
- 'app/models/harvest.rb'
|
||||
- 'app/models/planting.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
Rails/WhereMissing:
|
||||
Exclude:
|
||||
- 'app/controllers/crops_controller.rb'
|
||||
|
||||
# Offense count: 3
|
||||
# This cop supports unsafe autocorrection (--autocorrect-all).
|
||||
Rails/WhereRange:
|
||||
@@ -766,13 +728,6 @@ Style/FloatDivision:
|
||||
Exclude:
|
||||
- 'app/models/concerns/predict_planting.rb'
|
||||
|
||||
# Offense count: 22
|
||||
# This cop supports unsafe autocorrection (--autocorrect-all).
|
||||
# Configuration parameters: EnforcedStyle.
|
||||
# SupportedStyles: always, always_true, never
|
||||
Style/FrozenStringLiteralComment:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 2
|
||||
# This cop supports unsafe autocorrection (--autocorrect-all).
|
||||
Style/GlobalStdStream:
|
||||
|
||||
1
Gemfile
1
Gemfile
@@ -196,6 +196,7 @@ group :test do
|
||||
gem 'rails-controller-testing'
|
||||
gem "rspec-rebound"
|
||||
gem 'selenium-webdriver'
|
||||
gem 'test-queue'
|
||||
gem 'timecop'
|
||||
gem 'vcr'
|
||||
end
|
||||
|
||||
@@ -719,6 +719,7 @@ GEM
|
||||
unicode-display_width (>= 1.1.1, < 4)
|
||||
terser (1.2.7)
|
||||
execjs (>= 0.3.0, < 3)
|
||||
test-queue (0.11.1)
|
||||
thor (1.5.0)
|
||||
thread_safe (0.3.6)
|
||||
tilt (2.7.0)
|
||||
@@ -873,6 +874,7 @@ DEPENDENCIES
|
||||
sitemap_generator
|
||||
sprockets (< 4)
|
||||
terser
|
||||
test-queue
|
||||
timecop
|
||||
unicorn
|
||||
validate_url
|
||||
|
||||
@@ -160,7 +160,7 @@ class CropsController < ApplicationController
|
||||
when 'youtube'
|
||||
Crop.approved.where(en_youtube_url: [nil, '']).order(plantings_count: :desc)
|
||||
when 'alternate_names'
|
||||
Crop.approved.left_joins(:alternate_names).where(alternate_names: { id: nil }).order(plantings_count: :desc)
|
||||
Crop.approved.where.missing(:alternate_names).order(plantings_count: :desc)
|
||||
when 'wikidata'
|
||||
crops_with_wikidata = Crop.joins(:scientific_names).where.not(scientific_names: { wikidata_id: nil }).distinct
|
||||
Crop.approved.where.not(id: crops_with_wikidata).order(plantings_count: :desc)
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# Be sure to restart your server when you modify this file.
|
||||
#
|
||||
# This file contains migration options to ease your Rails 6.0 upgrade.
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# This migration comes from active_storage (originally 20180723000244)
|
||||
class AddForeignKeyConstraintToActiveStorageAttachmentsForBlobId < ActiveRecord::Migration[6.0]
|
||||
def up
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class AddFieldsToCrops < ActiveRecord::Migration[5.2]
|
||||
def change
|
||||
add_column :crops, :row_spacing, :integer
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class PopulateCropFieldsFromOpenfarmData < ActiveRecord::Migration[5.2]
|
||||
def up
|
||||
Crop.find_each do |crop|
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class AddSocialMediaToMembers < ActiveRecord::Migration[6.0]
|
||||
def change
|
||||
add_column :members, :website_url, :string
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class RenameOtherHandleToOtherUrlInMembers < ActiveRecord::Migration[6.0]
|
||||
def change
|
||||
rename_column :members, :other_handle, :other_url
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class CreateGardenCollaborators < ActiveRecord::Migration[7.2]
|
||||
def change
|
||||
create_table :garden_collaborators do |t|
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class CreateAustralianFoodClassificationData < ActiveRecord::Migration[5.2]
|
||||
def change
|
||||
create_table :australian_food_classification_data do |t|
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class MakeNotificationsPolymorphic < ActiveRecord::Migration[6.1]
|
||||
def change
|
||||
add_column :notifications, :notifiable_type, :string
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class ChangeCommentsPolymorphic < ActiveRecord::Migration[7.2]
|
||||
def change
|
||||
add_column :comments, :commentable_type, :string
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class AddSourceToSeeds < ActiveRecord::Migration[7.2]
|
||||
def change
|
||||
add_column :seeds, :source, :string
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class AddIndexesCrops < ActiveRecord::Migration[7.2]
|
||||
def change
|
||||
add_index :alternate_names, :crop_id
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class AddOverallRatingPlantings < ActiveRecord::Migration[7.2]
|
||||
def change
|
||||
add_column :plantings, :overall_rating, :integer
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class AddEnYoutubeUrlToCrops < ActiveRecord::Migration[7.2]
|
||||
def change
|
||||
add_column :crops, :en_youtube_url, :string
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# This migration creates the `versions` table for the Version class.
|
||||
# All other migrations PT provides are optional.
|
||||
class CreateVersions < ActiveRecord::Migration[7.2]
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# This migration adds the optional `object_changes` column, in which PaperTrail
|
||||
# will store the `changes` diff for each update event. See the readme for
|
||||
# details.
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class AddPublicFoodKeyToCrops < ActiveRecord::Migration[5.2]
|
||||
def change
|
||||
add_column :crops, :public_food_key, :string
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'csv'
|
||||
|
||||
namespace :import do
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe Api::V1::PlantingsController, type: :controller do
|
||||
RSpec.describe Api::V1::PlantingsController do
|
||||
subject { JSON.parse response.body }
|
||||
|
||||
let!(:member) { create(:member) }
|
||||
@@ -42,7 +42,7 @@ RSpec.describe Api::V1::PlantingsController, type: :controller do
|
||||
|
||||
it { expect(matching_planting).to include('id' => my_planting.id.to_s) }
|
||||
it { expect(matching_planting['attributes']).to eq expected_attributes }
|
||||
it { expect(response.status).to eq 200 }
|
||||
it { expect(response).to have_http_status :ok }
|
||||
end
|
||||
|
||||
context 'with photo' do
|
||||
@@ -81,7 +81,7 @@ RSpec.describe Api::V1::PlantingsController, type: :controller do
|
||||
|
||||
it { expect(matching_planting).to include('id' => my_planting.id.to_s) }
|
||||
it { expect(matching_planting['attributes']).to eq expected_attributes }
|
||||
it { expect(response.status).to eq 200 }
|
||||
it { expect(response).to have_http_status :ok }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe GardenTypesController, type: :controller do
|
||||
RSpec.describe GardenTypesController do
|
||||
include Devise::Test::ControllerHelpers
|
||||
|
||||
let(:valid_params) { { name: 'My second GardenType' } }
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe GardensController, type: :controller do
|
||||
RSpec.describe GardensController do
|
||||
include Devise::Test::ControllerHelpers
|
||||
|
||||
let(:valid_params) { { name: 'My second Garden' } }
|
||||
|
||||
@@ -51,7 +51,7 @@ describe HarvestsController, :search do
|
||||
describe "generates a csv" do
|
||||
before { get :index, format: "csv" }
|
||||
|
||||
it { expect(response.status).to eq 200 }
|
||||
it { expect(response).to have_http_status :ok }
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ describe LikesController do
|
||||
it { JSON.parse(response.body)["description"] == "1 like" }
|
||||
|
||||
describe "Liking someone else's post" do
|
||||
it { expect(response.code).to eq('201') }
|
||||
it { expect(response).to have_http_status(:created) }
|
||||
end
|
||||
end
|
||||
|
||||
@@ -29,14 +29,14 @@ describe LikesController do
|
||||
it { expect(response.content_type).to eq "application/json; charset=utf-8" }
|
||||
|
||||
describe "un-liking something i liked before" do
|
||||
it { expect(response.code).to eq('200') }
|
||||
it { expect(response).to have_http_status(:ok) }
|
||||
it { JSON.parse(response.body)["description"] == "0 likes" }
|
||||
end
|
||||
|
||||
describe "Deleting someone else's like" do
|
||||
let(:like) { create(:like) }
|
||||
|
||||
it { expect(response.code).to eq('403') }
|
||||
it { expect(response).to have_http_status(:forbidden) }
|
||||
it { JSON.parse(response.body)["error"] == "Unable to like" }
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
FactoryBot.define do
|
||||
factory :garden_collaborator do
|
||||
garden
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.feature 'Creating a recurring activity' do
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe 'Test with visual testing', :js, type: :feature do
|
||||
describe 'Test with visual testing', :js do
|
||||
# Use the same random seed every time so our random data is the same
|
||||
# on every run, so doesn't trigger percy to see changes
|
||||
before { Faker::Config.random = Random.new(42) }
|
||||
|
||||
@@ -12,7 +12,7 @@ require 'rails_helper'
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
RSpec.describe ButtonsHelper, type: :helper do
|
||||
RSpec.describe ButtonsHelper do
|
||||
before { allow(self).to receive(:can?).and_return(true) }
|
||||
|
||||
let(:garden) { create(:garden) }
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe EventHelper, type: :helper do
|
||||
RSpec.describe EventHelper do
|
||||
subject { resolve_model(event) }
|
||||
|
||||
let(:planting) { create(:planting) }
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe CropCompanion, type: :model do
|
||||
RSpec.describe CropCompanion do
|
||||
it 'has a crop' do
|
||||
cc = described_class.new
|
||||
cc.crop_a = create :tomato
|
||||
|
||||
@@ -554,7 +554,7 @@ describe Crop do
|
||||
end
|
||||
|
||||
it "destroys companion links" do
|
||||
expect { crop_a.destroy }.to change { CropCompanion.count }.from(2).to(0)
|
||||
expect { crop_a.destroy }.to change(CropCompanion, :count).from(2).to(0)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -144,7 +144,7 @@ describe Harvest do
|
||||
it 'lists most recent harvests first' do
|
||||
@h1 = create(:harvest, created_at: 1.day.ago)
|
||||
@h2 = create(:harvest, created_at: 1.hour.ago)
|
||||
expect(described_class.all.order(created_at: :desc)).to eq [@h2, @h1]
|
||||
expect(described_class.order(created_at: :desc)).to eq [@h2, @h1]
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe 'Activities', type: :request do
|
||||
RSpec.describe 'Activities' do
|
||||
subject { JSON.parse response.body }
|
||||
|
||||
let(:member) { create(:member) }
|
||||
@@ -60,7 +60,7 @@ RSpec.describe 'Activities', type: :request do
|
||||
end
|
||||
end
|
||||
|
||||
context '#update' do
|
||||
describe '#update' do
|
||||
let(:params) do
|
||||
{
|
||||
'data' => {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe 'Crops', type: :request do
|
||||
RSpec.describe 'Crops' do
|
||||
subject { JSON.parse response.body }
|
||||
|
||||
let(:headers) { { 'Accept' => 'application/vnd.api+json' } }
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe 'Gardens', type: :request do
|
||||
RSpec.describe 'Gardens' do
|
||||
subject { JSON.parse response.body }
|
||||
|
||||
let(:headers) { { 'Accept' => 'application/vnd.api+json' } }
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe 'Harvests', type: :request do
|
||||
RSpec.describe 'Harvests' do
|
||||
subject { JSON.parse response.body }
|
||||
|
||||
let(:headers) { { 'Accept' => 'application/vnd.api+json' } }
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe 'Members', type: :request do
|
||||
RSpec.describe 'Members' do
|
||||
subject { JSON.parse response.body }
|
||||
|
||||
let(:headers) { { 'Accept' => 'application/vnd.api+json' } }
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe 'Photos', type: :request do
|
||||
RSpec.describe 'Photos' do
|
||||
subject { JSON.parse response.body }
|
||||
|
||||
let(:headers) { { 'Accept' => 'application/vnd.api+json' } }
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe 'Plantings', type: :request do
|
||||
RSpec.describe 'Plantings' do
|
||||
subject { JSON.parse response.body }
|
||||
|
||||
let(:headers) { { 'Accept' => 'application/vnd.api+json' } }
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe 'Seeds', type: :request do
|
||||
RSpec.describe 'Seeds' do
|
||||
subject { JSON.parse response.body }
|
||||
|
||||
let(:headers) { { 'Accept' => 'application/vnd.api+json' } }
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe "GardenTypes", type: :request do
|
||||
RSpec.describe "GardenTypes" do
|
||||
describe "GET /garden_types" do
|
||||
it "works! (now write some real specs)" do
|
||||
get garden_types_path
|
||||
|
||||
@@ -6,7 +6,7 @@ describe "Harvests" do
|
||||
describe "GET /harvests" do
|
||||
it "works! (now write some real specs)" do
|
||||
get harvests_path
|
||||
expect(response.status).to be 200
|
||||
expect(response).to have_http_status :ok
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
require 'rake'
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe "places/_map_attribution.html.haml", type: :view do
|
||||
describe "places/_map_attribution.html.haml" do
|
||||
before do
|
||||
render
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user