socialforge/lib/rack-mini-profiler/spec/components/timer_struct_spec.rb

55 lines
1.1 KiB
Ruby

require 'spec_helper'
require 'mini_profiler/timer_struct'
require 'json'
describe Rack::MiniProfiler::TimerStruct do
before do
@timer = Rack::MiniProfiler::TimerStruct.new('Mini' => 'Profiler')
end
it 'has the the Mini attribute' do
@timer['Mini'].should == 'Profiler'
end
it 'allows us to set any attribute we want' do
@timer['Hello'] = 'World'
@timer['Hello'].should == 'World'
end
describe 'to_json' do
before do
@timer['IceIce'] = 'Baby'
@json = @timer.to_json
end
it 'has a JSON value' do
@json.should_not be_nil
end
it 'should not add a second (nil) argument if no arguments were passed' do
::JSON.should_receive( :generate ).once.with( @timer.attributes, :max_nesting => 100 ).and_return( nil )
@timer.to_json
end
describe 'deserialized' do
before do
@deserialized = ::JSON.parse(@json)
end
it 'produces a hash' do
@deserialized.is_a?(Hash).should be_true
end
it 'has the element we added' do
@deserialized['IceIce'].should == 'Baby'
end
end
end
end