Files
growstuff/spec/controllers/registrations_controller_spec.rb
Daniel O'Connorandgoogle-labs-jules[bot] fbab11e189 Add full CRUD capabilities for member API token management (#5041)
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2026-10-24 02:44:08 +10:30

55 lines
1.5 KiB
Ruby

# frozen_string_literal: true
require 'rails_helper'
describe RegistrationsController do
before do
@member = create(:member)
sign_in @member
controller.stub(:current_user) { @member }
controller.stub(:devise_mapping).and_return(Devise.mappings[:member])
end
describe "GET edit" do
it "assigns the requested member as @member" do
get :edit
assigns(:member).should eq(@member)
end
it "picks up the flickr auth" do
@auth = create(:flickr_authentication, member: @member)
get :edit
assigns(:flickr_auth).should eq @auth
end
end
describe "POST regenerate_api_token" do
it "generates or regenerates an API token for the current member" do
expect do
post :regenerate_api_token
end.to change { @member.reload.api_token }.from(nil)
expect(response).to redirect_to(edit_member_registration_path + '#apps')
end
end
describe "DELETE destroy_api_token" do
it "destroys the API token for the current member" do
@member.regenerate_api_token
expect do
delete :destroy_api_token
end.to change { @member.reload.api_token }.to(nil)
expect(response).to redirect_to(edit_member_registration_path + '#apps')
end
it "does not destroy other members' API tokens" do
other_member = create(:member)
other_member.regenerate_api_token
other_token = other_member.api_token
delete :destroy_api_token
expect(other_member.reload.api_token).to eq(other_token)
end
end
end