123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
- require 'rails_helper'
- RSpec.describe Setting::Validation::StorageProvider do
- let(:setting_name) { 'storage_provider' }
- context 'with blank settings' do
- it 'does not raise an error' do
- expect { Setting.set(setting_name, {}) }.not_to raise_error
- end
- end
- context 'with using DB as storage provider' do
- it 'does not raise an error' do
- expect { Setting.set(setting_name, 'DB') }.not_to raise_error
- end
- end
- context 'with using S3 as storage provider' do
- before do
- ENV.delete('S3_URL') if ENV['CI']
- Store::Provider::S3.reset
- end
- context 'when no config is present' do
- it 'does raise an error' do
- expect { Setting.set(setting_name, 'S3') }.to raise_error(ActiveRecord::RecordInvalid, 'Validation failed: Simple Storage Service not reachable.')
- end
- end
- context 'when endpoint is not reachable' do
- before do
- ENV['S3_URL'] = 'https://s3.eu-central-1.zammad.org/zammad-storage-bucket?region=eu-central-1&force_path_style=true'
- end
- it 'does raise an error' do
- expect { Setting.set(setting_name, 'S3') }.to raise_error(ActiveRecord::RecordInvalid, 'Validation failed: Simple Storage Service not reachable.')
- end
- end
- context 'with invalid S3_URL environment variable' do
- before do
- ENV['S3_URL'] = 'https://key:secret@s3.eu-central-1.amazonaws.com/zammad-storage-bucket'
- end
- it 'does raise an error' do
- expect { Setting.set(setting_name, 'S3') }.to raise_error(ActiveRecord::RecordInvalid, 'Validation failed: Simple Storage Service not reachable.')
- end
- end
- end
- end
|