Files
growstuff/spec/controllers/api/v1/plantings_controller_spec.rb
Brenda Wallace 04fd1a343a Rubocop update (#2334)
* Update rubocop config

* Rubocop update - for rubocop 0.77

* [CodeFactor] Apply fixes

* rubocop fixes

* [CodeFactor] Apply fixes to commit 2826c2e
2019-12-16 22:35:33 +13:00

87 lines
3.2 KiB
Ruby

# frozen_string_literal: true
require 'rails_helper'
RSpec.describe Api::V1::PlantingsController, type: :controller do
subject { JSON.parse response.body }
let!(:member) { FactoryBot.create :member }
describe '#index' do
let(:matching_planting) { subject['data'].select { |planting| planting['id'] == my_planting.id.to_s }.first }
describe 'GET #index' do
context 'basic planting' do
let!(:my_planting) { FactoryBot.create(:planting, owner: member, planted_at: '2000-01-01') }
let(:expected_attributes) do
{
'crop-name' => my_planting.crop.name,
'crop-slug' => my_planting.crop.slug,
'description' => my_planting.description,
'expected-lifespan' => nil,
'finish-predicted-at' => nil,
'finished' => my_planting.finished,
'finished-at' => my_planting.finished_at,
'first-harvest-date' => nil,
'last-harvest-date' => nil,
'latitude' => my_planting.garden.latitude,
'longitude' => my_planting.garden.longitude,
'location' => my_planting.garden.location,
'percentage-grown' => nil,
'planted-at' => '2000-01-01',
'planted-from' => my_planting.planted_from,
'quantity' => my_planting.quantity,
'slug' => my_planting.slug,
'sunniness' => nil,
'thumbnail' => nil
}
end
before { get :index, format: :json }
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 }
end
context 'with photo' do
let!(:my_planting) { FactoryBot.create(:planting, owner: member, planted_at: '2000-01-01') }
let(:expected_attributes) do
{
'crop-name' => my_planting.crop.name,
'crop-slug' => my_planting.crop.slug,
'description' => my_planting.description,
'expected-lifespan' => nil,
'finish-predicted-at' => nil,
'finished' => my_planting.finished,
'finished-at' => my_planting.finished_at,
'first-harvest-date' => nil,
'last-harvest-date' => nil,
'latitude' => my_planting.garden.latitude,
'longitude' => my_planting.garden.longitude,
'location' => my_planting.garden.location,
'percentage-grown' => nil,
'planted-at' => '2000-01-01',
'planted-from' => my_planting.planted_from,
'quantity' => my_planting.quantity,
'slug' => my_planting.slug,
'sunniness' => nil,
'thumbnail' => photo.thumbnail_url
}
end
let(:photo) { FactoryBot.create(:photo, owner: my_planting.owner) }
before do
my_planting.photos << photo
get :index, format: :json
end
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 }
end
end
end
end