spec/rest/client_spec.rb in finapps-1.0.8 vs spec/rest/client_spec.rb in finapps-2.0.2

- old
+ new

@@ -1,122 +1,36 @@ RSpec.describe FinApps::REST::Client do - describe '#new' do - - context 'when company_identifier is NOT provided' do - it { expect { FinApps::REST::Client.new nil, :company_token }.to raise_error(FinApps::REST::MissingArgumentsError) } + it 'raises for missing company_identifier' do + expect { FinApps::REST::Client.new nil, :company_token }.to raise_error(FinApps::MissingArgumentsError) end - context 'when company_token is NOT provided' do - it { expect { FinApps::REST::Client.new :company_identifier, nil }.to raise_error(FinApps::REST::MissingArgumentsError) } + it 'raises for missing company_token' do + expect { FinApps::REST::Client.new :company_identifier, nil }.to raise_error(FinApps::MissingArgumentsError) end - - context 'when company_identifier is not string or symbol' do - it { expect { FinApps::REST::Client.new 1, :company_token }.to raise_error(FinApps::REST::InvalidArgumentsError) } - end - - context 'when company_token is not string or symbol' do - it { expect { FinApps::REST::Client.new :company_identifier, 1 }.to raise_error(FinApps::REST::InvalidArgumentsError) } - end - - context 'when options are not provided' do - it { expect { FinApps::REST::Client.new :company_identifier, :company_token }.not_to raise_error } - end - end - context 'after initialized' do + context 'an instance of Client' do + subject { FinApps::REST::Client.new(:company_identifier, :company_token) } - let(:client) { FinApps::REST::Client.new(:company_identifier, :company_token) } - - [:send_request, :connection, :users, :institutions, :user_institutions, :transactions, - :categories, :budget_models, :budget_calculation, :budgets, :cashflows, :alert, - :alert_definition, :alert_preferences, :alert_settings, :rule_sets, :user_credentials!].each do |method| + %i(users).each do |method| it "responds to #{method}" do - expect(client).to respond_to(method) + expect(subject).to respond_to(method) end end describe '#users' do - it { expect(client.users).to be_an_instance_of(FinApps::REST::Users) } + it { expect(subject.users).to be_an_instance_of(FinApps::REST::Users) } end - describe '#institutions' do - it { expect(client.institutions).to be_an_instance_of(FinApps::REST::Institutions) } - end - - describe '#user_institutions' do - it { expect(client.user_institutions).to be_an_instance_of(FinApps::REST::UserInstitutions) } - end - - describe '#categories' do - it { expect(client.categories).to be_an_instance_of(FinApps::REST::Categories) } - end - - describe '#budget_models' do - it { expect(client.budget_models).to be_an_instance_of(FinApps::REST::BudgetModels) } - end - - describe '#budget_calculation' do - it { expect(client.budget_calculation).to be_an_instance_of(FinApps::REST::BudgetCalculation) } - end - - describe '#budgets' do - it { expect(client.budgets).to be_an_instance_of(FinApps::REST::Budgets) } - end - - describe '#cashflows' do - it { expect(client.cashflows).to be_an_instance_of(FinApps::REST::Cashflows) } - end - - describe '#alert' do - it { expect(client.alert).to be_an_instance_of(FinApps::REST::Alert) } - end - - describe '#alert_definition' do - it { expect(client.alert_definition).to be_an_instance_of(FinApps::REST::AlertDefinition) } - end - - describe '#alert_preferences' do - it { expect(client.alert_preferences).to be_an_instance_of(FinApps::REST::AlertPreferences) } - end - - describe '#alert_settings' do - it { expect(client.alert_settings).to be_an_instance_of(FinApps::REST::AlertSettings) } - end - - describe '#rule_sets' do - it { expect(client.rule_sets).to be_an_instance_of(FinApps::REST::Relevance::Rulesets) } - end - - describe '#connection' do - it { expect(client.connection).to be_an_instance_of(Faraday::Connection) } - end - - [:connection, :users, :institutions, :user_institutions, :transactions, - :categories, :budget_models, :budget_calculation, :budgets, :cashflows, :alert, - :alert_definition, :alert_preferences, :alert_settings, :rule_sets].each do |method| + # [:users, :institutions, :user_institutions, :transactions, :categories, + # :budget_models, :budget_calculation, :budgets, :cashflows, + # :alert, :alert_definition, :alert_preferences, :alert_settings, :rule_sets] + [:users].each do |method| it "memoizes the result of #{method}" do - first, second = client.send(method), client.send(method) + first = subject.send(method) + second = subject.send(method) expect(first.object_id).to eq(second.object_id) end end - - describe '#send_request' do - - context 'when path is NOT provided' do - it { expect { client.send_request(nil, :post) }.to raise_error(FinApps::REST::MissingArgumentsError) } - end - - context 'when method is NOT provided' do - it { expect { client.send_request(:path, nil) }.to raise_error(FinApps::REST::MissingArgumentsError) } - end - - context 'when method is NOT supported' do - it { expect { client.send_request(:path, :unsupported_method) }.to raise_error(FinApps::REST::InvalidArgumentsError) } - end - - end - end - -end \ No newline at end of file +end