spec/lib/tabs/resolution_spec.rb in tabs-0.9.1 vs spec/lib/tabs/resolution_spec.rb in tabs-1.0.0
- old
+ new
@@ -1,29 +1,52 @@
require "spec_helper"
require File.expand_path("../../../support/custom_resolutions", __FILE__)
describe Tabs::Resolution do
+
describe "#register" do
it "registers a new resolution" do
- Tabs::Resolution.register(:test, Tabs::Resolutions::Minute)
- expect(Tabs::Resolution.all).to include :test
+ Tabs::Resolution.register(WellFormedResolution)
+ expect(Tabs::Resolution.all).to include WellFormedResolution.name
end
context "with a custom resolution" do
it "does not return nil" do
expect(WellFormedResolution.serialize(Time.now)).to_not be_nil
end
it "gets stats for custom resolution" do
- Tabs::Resolution.register(:seconds, WellFormedResolution)
+ Tabs::Resolution.register(WellFormedResolution)
Timecop.freeze(Time.now)
Tabs.increment_counter("foo")
expect(Tabs.get_stats("foo", (Time.now - 5.seconds..Time.now), :seconds).values.size).to eq(6)
end
it "raises an error when method not implemented" do
expect{BadlyFormedResolution.normalize}.to raise_error
end
+
+ it "disregards already registered resolutions" do
+ expect { Tabs::Resolution.register(Tabs::Resolutions::Minute) }.to_not raise_error
+ end
end
end
+
+ describe "#unregister" do
+ it "unregisters a single resolution" do
+ Tabs::Resolution.unregister(:minute)
+ expect(Tabs::Resolution.all).to_not include(:minute)
+ end
+
+ it "unregisters an array of resolutions" do
+ Tabs::Resolution.unregister([:minute, :hour])
+ expect(Tabs::Resolution.all).to_not include(:hour)
+ expect(Tabs::Resolution.all).to_not include(:minute)
+ end
+
+ it "disregards passing in an unrecognized resolution" do
+ expect { Tabs::Resolution.unregister(:invalid_resolution) }.to_not raise_error
+ end
+ end
+
end