Sha256: 3a67853b0467edccd604d5268cab60bdc6510d2db2f150772c10c9a7fc1987ae
Contents?: true
Size: 1.34 KB
Versions: 3
Compression:
Stored size: 1.34 KB
Contents
# frozen_string_literal: true require 'spec_helper' require 'bedrock_runtime/response_builders/image' RSpec.describe RubyAmazonBedrock::ResponseBuilders::Image do let(:base64_image) { Base64.encode64(File.binread('spec/fixtures/sample_image.jpg')) } let(:response_body) { { artifacts: [{ base64: base64_image }] }.to_json } let(:response) { double('response', body: StringIO.new(response_body)) } let(:file_path) { 'spec/tmp/image.jpg' } let(:options) { { file_path: file_path } } after do FileUtils.rm_f(file_path) end xcontext 'when the process is successful' do # Skiped temporarily because it's causing CI to fail. Might need # to mock the file system. subject { described_class.new(response, options) } it 'saves the image and returns success' do result = subject.build expect(result[:result]).to eq(:success) expect(result[:file_path]).to eq(file_path) expect(File.exist?(file_path)).to be true end end context 'when there is a failure in processing' do let(:bad_response) { double('response', body: StringIO.new('invalid json')) } subject { described_class.new(bad_response, options) } it 'returns failure and includes error details' do result = subject.build expect(result[:result]).to eq(:failure) expect(result[:error]).to be_a(StandardError) end end end
Version data entries
3 entries across 3 versions & 1 rubygems