test/fastly-rails_test.rb in fastly-rails-0.3.0 vs test/fastly-rails_test.rb in fastly-rails-0.4.0

- old
+ new

@@ -3,23 +3,23 @@ describe FastlyRails do let(:api_key) { 'test' } let(:user) { nil } let(:password) { nil } let(:max_age) { 100000 } - let(:configuration) { FastlyRails.configuration } + let(:configuration) { FastlyRails::Configuration.new } let(:service_id) { 'someserviceid' } let(:client) { FastlyRails.client } + before do + FastlyRails.instance_variable_set('@configuration', configuration) + end + it 'should be a module' do assert_kind_of Module, FastlyRails end describe 'credentials not provided' do - before do - FastlyRails.instance_variable_set('@configuration', FastlyRails::Configuration.new) - end - it 'should raise an error if configuration is not authenticatable' do assert_equal false, configuration.authenticatable? assert_equal true, configuration.invalid_service_id? assert_raises FastlyRails::NoAPIKeyProvidedError do client @@ -45,12 +45,35 @@ assert_equal api_key, configuration.api_key assert_equal user, configuration.user assert_equal password, configuration.password assert_equal max_age, configuration.max_age assert_equal service_id, configuration.service_id + assert_equal true, configuration.purging_enabled? end it 'should return a valid client' do assert_instance_of FastlyRails::Client, client + end + end + + describe 'purge_by_key' do + let(:client) { MiniTest::Mock.new } + let(:key) { "key" } + + it 'delegates to the client when purging is enabled' do + FastlyRails.stub(:client, client) do + FastlyRails.stub(:purging_enabled?, true) do + client.expect(:purge_by_key, nil, [key]) + FastlyRails.purge_by_key(key) + client.verify + end + end + end + + it 'does nothing when purging is disabled' do + configuration.purging_enabled = false + FastlyRails.stub(:client, client) do + FastlyRails.purge_by_key(key) + end end end end