Sha256: 73571b3ffd94a73a5de55c01831e24929c3ba57d5e14ac988b99cd26f78210b1
Contents?: true
Size: 1.93 KB
Versions: 7
Compression:
Stored size: 1.93 KB
Contents
RSpec.describe Fauna::ClientLogger do before(:all) do create_test_db @test_class = client.post('classes', name: 'logger_test')[:ref] end after(:all) do destroy_test_db end # Captures logger output from wrapped client and splits it into lines def capture_log lines = nil observer = Fauna::ClientLogger.logger { |log| lines = log.split("\n") } yield get_client(secret: @server_secret, observer: observer) lambda { lines.shift } end it 'logs response' do reader = capture_log do |client| expect(client.ping).to eq('Scope global is OK') end expect(reader.call).to eq('Fauna GET /ping') expect(reader.call).to match(/^ Credentials:/) expect(reader.call).to eq(' Response headers: {') # Skip through headers loop do line = reader.call unless line.start_with? ' ' expect(line).to eq(' }') break end end expect(reader.call).to eq(' Response JSON: {') expect(reader.call).to eq(' "resource": "Scope global is OK"') expect(reader.call).to eq(' }') expect(reader.call).to match(/^ Response \(200\): Network latency \d+ms$/) end it 'logs request content' do value = random_number reader = capture_log do |client| client.post @test_class, data: { a: value } end expect(reader.call).to eq("Fauna POST /#{@test_class}") expect(reader.call).to match(/^ Credentials:/) expect(reader.call).to eq(' Request JSON: {') expect(reader.call).to eq(' "data": {') expect(reader.call).to eq(" \"a\": #{value}") expect(reader.call).to eq(' }') expect(reader.call).to eq(' }') # Ignore the rest end it 'logs request query' do instance = client.post(@test_class) ref = instance[:ref] ts = instance[:ts] reader = capture_log do |client| client.get ref, ts: ts end expect(reader.call).to eq("Fauna GET /#{ref}?ts=#{ts}") # Ignore the rest end end
Version data entries
7 entries across 7 versions & 1 rubygems