spec/lib/openstax/accounts/api_spec.rb in openstax_accounts-7.3.0 vs spec/lib/openstax/accounts/api_spec.rb in openstax_accounts-7.4.0

- old
+ new

@@ -1,232 +1,212 @@ +require 'spec_helper' + module OpenStax module Accounts describe Api do let!(:account) { OpenStax::Accounts::Account.create(username: 'some_user', first_name: 'Some', last_name: 'User', full_name: 'SomeUser', title: 'Sir', openstax_uid: 1, access_token: 'secret') } + def reset(controller) + controller.last_action = nil + controller.last_json = nil + controller.last_params = nil + end + it 'makes api requests' do - expect(::Api::DummyController.last_action).to be_nil - expect(::Api::DummyController.last_params).to be_nil + reset(::Api::DummyController) Api.request(:post, 'dummy', :params => {:test => true}) expect(::Api::DummyController.last_action).to eq :dummy expect(::Api::DummyController.last_params).to include 'test' => 'true' end context 'users' do - + before(:each) { reset(::Api::UsersController) } let!(:account) { FactoryGirl.create :openstax_accounts_account } it 'makes api call to users index' do - ::Api::UsersController.last_action = nil - ::Api::UsersController.last_params = nil Api.search_accounts('something') expect(::Api::UsersController.last_action).to eq :index expect(::Api::UsersController.last_params).to include :q => 'something' end it 'makes api call to user update' do - ::Api::UsersController.last_action = nil - ::Api::UsersController.last_json = nil Api.update_account(account) expect(::Api::UsersController.last_action).to eq :update expect(::Api::UsersController.last_json).to include( account.attributes.slice('username', 'first_name', 'last_name', 'full_name', 'title')) end it 'makes api call to (temp) user create by email' do - ::Api::UsersController.last_action = nil - ::Api::UsersController.last_json = nil Api.find_or_create_account(email: 'dummy@dum.my') expect(::Api::UsersController.last_action).to eq :create expect(::Api::UsersController.last_json).to( include('email' => 'dummy@dum.my') ) end it 'makes api call to (temp) user create by username' do - ::Api::UsersController.last_action = nil - ::Api::UsersController.last_json = nil Api.find_or_create_account(username: 'dummy') expect(::Api::UsersController.last_action).to eq :create expect(::Api::UsersController.last_json).to( include('username' => 'dummy') ) end - end context 'application_users' do + before(:each) { reset(::Api::ApplicationUsersController) } it 'makes api call to application_users index' do - ::Api::ApplicationUsersController.last_action = nil - ::Api::ApplicationUsersController.last_params = nil Api.search_application_accounts('something') expect(::Api::ApplicationUsersController.last_action).to eq :index expect(::Api::ApplicationUsersController.last_params).to include :q => 'something' end it 'makes api call to application_users updates' do - ::Api::ApplicationUsersController.last_action = nil Api.get_application_account_updates expect(::Api::ApplicationUsersController.last_action).to eq :updates + expect(::Api::ApplicationUsersController.last_params).to include limit: "250" end + it 'does not limit updates call if param blank' do + allow(OpenStax::Accounts.configuration).to receive(:max_user_updates_per_request) { "" } + Api.get_application_account_updates + expect(::Api::ApplicationUsersController.last_action).to eq :updates + expect(::Api::ApplicationUsersController.last_params.keys).not_to include "limit" + end + it 'makes api call to application_users updated' do - ::Api::ApplicationUsersController.last_action = nil - ::Api::ApplicationUsersController.last_json = nil Api.mark_account_updates_as_read([{id: 1, read_updates: 1}]) expect(::Api::ApplicationUsersController.last_action).to eq :updated expect(::Api::ApplicationUsersController.last_json).to include( {'id' => 1, 'read_updates' => 1}) end - end context 'groups' do + before(:each) { reset(::Api::GroupsController) } let!(:account) { FactoryGirl.create :openstax_accounts_account } let!(:group) { FactoryGirl.create :openstax_accounts_group } it 'makes api call to groups create' do - ::Api::GroupsController.last_action = nil - ::Api::GroupsController.last_json = nil Api.create_group(account, group) expect(::Api::GroupsController.last_action).to eq :create expect(::Api::GroupsController.last_json).to include( {'name' => 'MyGroup', 'is_public' => false}) end it 'makes api call to group update' do group.save! - ::Api::GroupsController.last_action = nil - ::Api::GroupsController.last_params = nil - ::Api::GroupsController.last_json = nil Api.update_group(account, group) expect(::Api::GroupsController.last_action).to eq :update expect(::Api::GroupsController.last_params).to include( {'id' => group.openstax_uid.to_s}) expect(::Api::GroupsController.last_json).to include( {'name' => group.name, 'is_public' => group.is_public}) end it 'makes api call to group destroy' do group.save! - ::Api::GroupsController.last_action = nil - ::Api::GroupsController.last_params = nil Api.destroy_group(account, group) expect(::Api::GroupsController.last_action).to eq :destroy expect(::Api::GroupsController.last_params).to include( {'id' => group.openstax_uid.to_s}) end - end context 'group_members' do + before(:each) { reset(::Api::GroupMembersController) } let!(:account) { FactoryGirl.create :openstax_accounts_account } let!(:group_member) { FactoryGirl.build :openstax_accounts_group_member } it 'makes api call to group_members create' do - ::Api::GroupMembersController.last_action = nil - ::Api::GroupMembersController.last_params = nil Api.create_group_member(account, group_member) expect(::Api::GroupMembersController.last_action).to eq :create expect(::Api::GroupMembersController.last_params).to include( {'group_id' => group_member.group_id.to_s, 'user_id' => group_member.user_id.to_s}) end it 'makes api call to group_member destroy' do group_member.save! - ::Api::GroupMembersController.last_action = nil - ::Api::GroupMembersController.last_params = nil Api.destroy_group_member(account, group_member) expect(::Api::GroupMembersController.last_action).to eq :destroy expect(::Api::GroupMembersController.last_params).to include( {'group_id' => group_member.group_id.to_s, 'user_id' => group_member.user_id.to_s}) end - end context 'group_owners' do + before(:each) { reset(::Api::GroupOwnersController) } let!(:account) { FactoryGirl.create :openstax_accounts_account } let!(:group_owner) { FactoryGirl.build :openstax_accounts_group_owner } it 'makes api call to group_owners create' do - ::Api::GroupOwnersController.last_action = nil - ::Api::GroupOwnersController.last_params = nil Api.create_group_owner(account, group_owner) expect(::Api::GroupOwnersController.last_action).to eq :create expect(::Api::GroupOwnersController.last_params).to include( {'group_id' => group_owner.group_id.to_s, 'user_id' => group_owner.user_id.to_s}) end it 'makes api call to group_owner destroy' do group_owner.save! - ::Api::GroupOwnersController.last_action = nil - ::Api::GroupOwnersController.last_params = nil Api.destroy_group_owner(account, group_owner) expect(::Api::GroupOwnersController.last_action).to eq :destroy expect(::Api::GroupOwnersController.last_params).to include( {'group_id' => group_owner.group_id.to_s, 'user_id' => group_owner.user_id.to_s}) end - end context 'group_nestings' do + before(:each) { reset(::Api::GroupNestingsController) } let!(:account) { FactoryGirl.create :openstax_accounts_account } let!(:group_nesting) { FactoryGirl.build :openstax_accounts_group_nesting } it 'makes api call to group_nestings (create)' do - ::Api::GroupNestingsController.last_action = nil - ::Api::GroupNestingsController.last_params = nil Api.create_group_nesting(account, group_nesting) expect(::Api::GroupNestingsController.last_action).to eq :create expect(::Api::GroupNestingsController.last_params).to include( {'group_id' => group_nesting.container_group_id.to_s, 'member_group_id' => group_nesting.member_group_id.to_s}) end it 'makes api call to group_nesting (destroy)' do group_nesting.save! - ::Api::GroupNestingsController.last_action = nil - ::Api::GroupNestingsController.last_params = nil Api.destroy_group_nesting(account, group_nesting) expect(::Api::GroupNestingsController.last_action).to eq :destroy expect(::Api::GroupNestingsController.last_params).to include( {'group_id' => group_nesting.container_group_id.to_s, 'member_group_id' => group_nesting.member_group_id.to_s}) end - end context 'application_groups' do + before(:each) { reset(::Api::ApplicationGroupsController) } it 'makes api call to application_groups_updates' do - ::Api::ApplicationGroupsController.last_action = nil Api.get_application_group_updates expect(::Api::ApplicationGroupsController.last_action).to eq :updates end it 'makes api call to application_groups_updated' do - ::Api::ApplicationGroupsController.last_action = nil - ::Api::ApplicationGroupsController.last_json = nil Api.mark_group_updates_as_read([{id: 1, read_updates: 1}]) expect(::Api::ApplicationGroupsController.last_action).to eq :updated expect(::Api::ApplicationGroupsController.last_json).to include( {'id' => 1, 'read_updates' => 1}) end - end end + end end