Sha256: 0992675edaa5605e02bd37488d46827bf6ac0084c1e2bbe529a7e48220436787

Contents?: true

Size: 1 KB

Versions: 2

Compression:

Stored size: 1 KB

Contents

# frozen_string_literal: true

require 'spec_helper'
require 'bedrock_runtime/response_builders/ai_21_labs'

RSpec.describe RubyAmazonBedrock::ResponseBuilders::Ai21Labs do
  let(:response_body) { { key1: 'value1', key2: 'value2' }.to_json }
  let(:response) { double('response', body: StringIO.new(response_body)) }

  context 'when parsing a valid JSON response' do
    subject { described_class.new(response) }

    it 'converts the response into a structured hash with symbolized keys' do
      result = subject.build
      expect(result).to be_a(Hash)
      expect(result.keys).to all(be_a(Symbol))
      expect(result[:full_response]).to eq(JSON.parse(response_body, symbolize_names: true))
    end
  end

  context 'when handling an invalid JSON response' do
    let(:invalid_response) { double('response', body: StringIO.new('invalid json')) }
    subject { described_class.new(invalid_response) }

    it 'raises a JSON::ParserError' do
      expect { subject.build }.to raise_error(JSON::ParserError)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ruby-amazon-bedrock-0.2.4 spec/bedrock_runtime/response_builders/ai_21_labs_spec.rb
ruby-amazon-bedrock-0.2.3 spec/bedrock_runtime/response_builders/ai_21_labs_spec.rb