Files
growstuff/spec/features/seeds/adding_seeds_spec.rb
2024-10-13 11:56:56 +00:00

81 lines
3.2 KiB
Ruby
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# frozen_string_literal: true
require 'rails_helper'
require 'custom_matchers'
describe "Seeds", :js, :search do
context 'signed in' do
include_context 'signed in member'
let!(:maize) { create(:maize) }
before { visit new_seed_path }
it_behaves_like "crop suggest", "seed", "crop"
describe "displays required and optional fields properly" do
# NOTE: The required behaviour is pushed down to the control itself, not the form-group as of rails 7.1.
# Modern browsers enforce the required behaviour better than us doing it ourselves.
it { expect(page).to have_selector "label", text: "Crop" }
it { expect(page).to have_selector 'input#seed_quantity' }
it { expect(page).to have_selector 'input#seed_plant_before' }
it { expect(page).to have_selector 'input#seed_days_until_maturity_min' }
it { expect(page).to have_selector 'input#seed_days_until_maturity_max' }
it { expect(page).to have_selector 'label', text: 'Organic?' }
it { expect(page).to have_selector 'label', text: 'GMO?' }
it { expect(page).to have_selector 'label', text: 'Heirloom?' }
it { expect(page).to have_selector 'textarea#seed_description' }
it { expect(page).to have_selector 'label', text: 'Will trade' }
end
describe "Adding a new seed", :js do
before do
fill_autocomplete "crop", with: "mai"
select_from_autocomplete "maize"
within "form#new_seed" do
fill_in "Quantity", with: 42
fill_in "Plant before", with: "2014-06-15"
fill_in "min", with: 999
fill_in "max", with: 1999
select "certified organic", from: "Organic?"
select "non-certified GMO-free", from: "GMO?"
select "heirloom", from: "Heirloom?"
fill_in "Description", with: "It's killer."
select "internationally", from: "Will trade"
click_button "Save"
end
end
it { expect(page).to have_content "Successfully added maize seed to your stash" }
it { expect(find('.seedfacts--quantity')).to have_content "42" }
it { expect(find('.seedfacts--maturity')).to have_content "9991999" }
it { expect(find('.seedtitle--organic')).to have_content "certified organic" }
it { expect(find('.seedtitle--gmo')).to have_content "non-certified GMO-free" }
it { expect(find('.seedtitle--heirloom')).to have_content "heirloom" }
it { expect(find('.seed--description')).to have_content "It's killer." }
end
describe "Adding a seed from crop page" do
before do
visit crop_path(maize)
click_link "Save seeds"
end
describe 'no trades' do
before { click_button "Save #{maize.name} seeds." }
it { expect(page).to have_content "nowhere" }
it { expect(page).to have_content "Successfully added maize seed to your stash" }
it { expect(page).to have_content "maize" }
end
describe 'tradeable' do
before { click_button "locally" }
it { expect(page).to have_content "locally" }
it { expect(page).to have_content "Successfully added maize seed to your stash" }
it { expect(page).to have_content "maize" }
end
end
end
end