test/context_test.rb in riot-0.10.5 vs test/context_test.rb in riot-0.10.6

- old
+ new

@@ -86,5 +86,57 @@ should("return the actual topic as the result of evaling the assertion") do (situation = Riot::Situation.new).topic = "bar" topic.equals("bar").run(situation) end.equals([:pass]) end # The asserts_topic shortcut + +context "Setting assertion extensions" do + fake_mod_one, fake_mod_two = Module.new, Module.new + + setup do + Riot::Context.new("foo") do + extend_assertions fake_mod_one, fake_mod_two + end.asserts_topic + end + + should("still return an Assertion") { topic }.kind_of(Riot::Assertion) + + should("have included the given assertion extension modules in the assertion") do + topic.class.included_modules.include?(fake_mod_one) && topic.class.included_modules.include?(fake_mod_two) + end + + context "involving subcontexts without the subcontext extending assertions" do + assertion_one = assertion_two = nil + + setup do + Riot::Context.new "bleh" do + extend_assertions Module.new + assertion_one = asserts_topic + context("foo") { assertion_two = asserts_topic } + end + end + + should "not create separate instances of the assertion class in subcontexts" do + assertion_one && assertion_two && assertion_one.class.object_id == assertion_two.class.object_id + end + end # involving subcontexts without the subcontext extending assertions + + context "involving subcontexts with the subcontext extending assertions" do + assertion_one = assertion_two = nil + + setup do + Riot::Context.new "bah" do + extend_assertions Module.new + assertion_one = asserts_topic + context("meh") do + extend_assertions Module.new + assertion_two = asserts_topic + end + end + end + + should "create separate instances of the assertion class in subcontexts" do + assertion_one && assertion_two && assertion_one.class.object_id != assertion_two.class.object_id + end + + end # involving subcontexts with the subcontext extending assertions +end # Setting assertion extensions