Sha256: c8ed2ca26c825d53d48f915d67d1e14cdc85d0d8970c397b9f022004c8bb8d0c
Contents?: true
Size: 1.89 KB
Versions: 2
Compression:
Stored size: 1.89 KB
Contents
# frozen_string_literal: true describe DDTelemetry::Stopwatch do subject(:stopwatch) { described_class.new } after { Timecop.return } it 'is zero by default' do expect(stopwatch.duration).to eq(0.0) end it 'records correct duration after start+stop' do Timecop.freeze(Time.local(2008, 9, 1, 10, 5, 0)) stopwatch.start Timecop.freeze(Time.local(2008, 9, 1, 10, 5, 1)) stopwatch.stop expect(stopwatch.duration).to eq(1.0) end it 'records correct duration after start+stop+start+stop' do Timecop.freeze(Time.local(2008, 9, 1, 10, 5, 0)) stopwatch.start Timecop.freeze(Time.local(2008, 9, 1, 10, 5, 1)) stopwatch.stop Timecop.freeze(Time.local(2008, 9, 1, 10, 5, 3)) stopwatch.start Timecop.freeze(Time.local(2008, 9, 1, 10, 5, 6)) stopwatch.stop expect(stopwatch.duration).to eq(1.0 + 3.0) end it 'errors when stopping when not started' do expect { stopwatch.stop } .to raise_error( DDTelemetry::Stopwatch::NotRunningError, 'Cannot stop, because stopwatch is not running', ) end it 'errors when starting when already started' do stopwatch.start expect { stopwatch.start } .to raise_error( DDTelemetry::Stopwatch::AlreadyRunningError, 'Cannot start, because stopwatch is already running', ) end it 'reports running status' do expect(stopwatch).not_to be_running expect(stopwatch).to be_stopped stopwatch.start expect(stopwatch).to be_running expect(stopwatch).not_to be_stopped stopwatch.stop expect(stopwatch).not_to be_running expect(stopwatch).to be_stopped end it 'errors when getting duration while running' do stopwatch.start expect { stopwatch.duration } .to raise_error( DDTelemetry::Stopwatch::StillRunningError, 'Cannot get duration, because stopwatch is still running', ) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ddtelemetry-1.0.0a3 | spec/ddtelemetry/stopwatch_spec.rb |
ddtelemetry-1.0.0a2 | spec/ddtelemetry/stopwatch_spec.rb |