Files
growstuff/spec/controllers/member_controller_spec.rb
google-labs-jules[bot] 4b9763e1da feat: Add problem tracking feature
This commit introduces a new `Problem` model, analogous to `Crop`, to allow users to track problems they have on their plantings (e.g., aphids on tomatoes).

Key features:
- A new `Problem` model that can be curated by admins (`problem_wranglers`).
- Users can associate problems with their plantings and upload photos of the problems.
- Aggregated problem information is displayed on the crop detail page (e.g., "Problems: aphids (27), blight (13)").
- Users can mention problems in posts (e.g., `[aphids](problem)`), which automatically links to the problem's page.
- Admin functionality for reviewing and approving new problem suggestions.

Resolves merge conflict in app/controllers/plantings_controller.rb
2025-09-07 11:47:53 +00:00

64 lines
1.8 KiB
Ruby

# frozen_string_literal: true
require 'rails_helper'
describe MembersController do
before do
@member = FactoryBot.create(:member)
@twitter_auth = FactoryBot.create(:authentication, member: @member)
@flickr_auth = FactoryBot.create(:flickr_authentication, member: @member)
end
describe "GET index" do
it "assigns only confirmed members as @members" do
get :index, params: {}
expect(assigns(:members)).to eq([@member])
end
end
describe "GET JSON index" do
it "provides JSON for members" do
get :index, format: 'json'
expect(response).to be_successful
end
end
describe "GET show" do
it "provides JSON for member profile" do
get :show, params: { slug: @member.to_param }, format: 'json'
expect(response).to be_successful
end
it "assigns @twitter_auth" do
get :show, params: { slug: @member.to_param }
expect(assigns(:twitter_auth)).to eq(@twitter_auth)
end
it "assigns @flickr_auth" do
get :show, params: { slug: @member.to_param }
expect(assigns(:flickr_auth)).to eq(@flickr_auth)
end
it "doesn't show completely nonsense members" do
get :show, params: { slug: 9999 }
expect(response).to have_http_status(:not_found)
end
it "doesn't show unconfirmed members" do
@member2 = FactoryBot.create(:unconfirmed_member)
get :show, params: { slug: @member2.id }
expect(response).to have_http_status(:not_found)
end
end
describe "GET member's RSS feed" do
describe "returns an RSS feed" do
before { get :show, params: { slug: @member.to_param }, format: "rss" }
it { expect(response).to be_successful }
it { expect(response).to render_template("members/show") }
it { expect(response.content_type).to eq("application/rss+xml; charset=utf-8") }
end
end
end