mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
46 lines
1.1 KiB
Ruby
46 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
describe Spree::ApiKeysController, type: :controller, performance: true do
|
|
routes { Spree::Core::Engine.routes }
|
|
|
|
include AuthenticationHelper
|
|
include ControllerRequestsHelper
|
|
|
|
let(:user) { create(:user) }
|
|
let(:redirect_path) { "#{spree.account_path}#/developer_settings" }
|
|
|
|
before do
|
|
allow(controller).to receive(:spree_current_user) { user }
|
|
end
|
|
|
|
describe "create" do
|
|
it "creates a new api key" do
|
|
expect { spree_post :create }.to change { user.reload.spree_api_key }
|
|
expect(user.spree_api_key).to be_present
|
|
end
|
|
|
|
it "redirects to the api keys tab on account page " do
|
|
spree_post :create
|
|
expect(response).to redirect_to redirect_path
|
|
end
|
|
end
|
|
|
|
describe "destroy" do
|
|
before do
|
|
user.generate_api_key
|
|
user.save
|
|
end
|
|
|
|
it "clears the api key" do
|
|
expect { spree_delete :destroy, id: user.id }.to change { user.reload.spree_api_key }.to(nil)
|
|
end
|
|
|
|
it "redirects to the api keys tab on account page " do
|
|
spree_delete :destroy, id: user.id
|
|
expect(response).to redirect_to redirect_path
|
|
end
|
|
end
|
|
end
|