spec/yielding_spec.rb in json-write-stream-1.0.1 vs spec/yielding_spec.rb in json-write-stream-1.0.2
- old
+ new
@@ -1,34 +1,43 @@
# encoding: UTF-8
require 'spec_helper'
describe JsonWriteStream::YieldingWriter do
- let(:stream) { StringIO.new }
+ let(:stream) do
+ StringIO.new.tap do |io|
+ io.set_encoding(Encoding::UTF_8)
+ end
+ end
+
let(:stream_writer) { JsonWriteStream::YieldingWriter.new(stream) }
def check_roundtrip(obj)
YieldingRoundtripChecker.check_roundtrip(obj)
end
+ def utf8(str)
+ str.encode(Encoding::UTF_8)
+ end
+
it_behaves_like 'a json stream'
describe '#write_key_value' do
it 'converts all keys to strings' do
stream_writer.write_object do |object_writer|
object_writer.write_key_value(123, 'abc')
end
- expect(stream.string).to eq('{"123":"abc"}')
+ expect(stream.string).to eq(utf8('{"123":"abc"}'))
end
it 'supports non-string values' do
stream_writer.write_object do |object_writer|
object_writer.write_key_value('abc', 123)
object_writer.write_key_value('def', true)
end
- expect(stream.string).to eq('{"abc":123,"def":true}')
+ expect(stream.string).to eq(utf8('{"abc":123,"def":true}'))
end
end
describe '#close' do
it 'closes the underlying stream' do