zammad/spec/models/setting/validation/storage_provider_spec.rb
2026-01-02 15:41:09 +02:00

54 lines
1.7 KiB
Ruby

# Copyright (C) 2012-2026 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