spec/lib/onebox/engine_spec.rb in onebox-1.0.1 vs spec/lib/onebox/engine_spec.rb in onebox-1.1.0

- old
+ new

@@ -9,12 +9,14 @@ def raw { key: "value" } end - def template - %|<div class="onebox"><a href="{{url}}"></a></div>| + def view + @view.tap do |layout| + layout.view.template = %|<div class="onebox"><a href="{{url}}"></a></div>| + end end end describe Onebox::Engine do describe "#to_html" do @@ -28,61 +30,70 @@ expect(html).not_to include(%|onscript="alert('foo')|) end end describe "#record" do - class OneboxEngineBar + class OneboxEngineRecord include Onebox::Engine def data "new content" end end it "returns cached value for given url if its url is already in cache" do cache = { "http://example.com" => "old content" } - result = OneboxEngineBar.new("http://example.com", cache).send(:record) + result = OneboxEngineRecord.new("http://example.com", cache).send(:record) expect(result).to eq("old content") end it "stores cache value for given url if cache key doesn't exist" do cache = { "http://example.com1" => "old content" } - result = OneboxEngineBar.new("http://example.com", cache).send(:record) + result = OneboxEngineRecord.new("http://example.com", cache).send(:record) expect(result).to eq("new content") end end - describe "#template_path" do - it "returns file path for onebox template" do - class OneboxEngineVoo - include Onebox::Engine - end - result = OneboxEngineVoo.new("http://amazon.com").send(:template_path) - expect(result).to eq("/home/jzeta/Projects/rgsoc/onebox/templates/enginevoo.handlebars") - end - end - describe ".===" do + class OneboxEngineTripleEqual + include Onebox::Engine + @@matcher = /example/ + end it "returns true if argument matches the matcher" do - class OneboxEngineFoo - include Onebox::Engine - @@matcher = /example/ - end - result = OneboxEngineFoo === "http://www.example.com/product/5?var=foo&bar=5" + result = OneboxEngineTripleEqual === "http://www.example.com/product/5?var=foo&bar=5" expect(result).to eq(true) end end describe ".matches" do + class OneboxEngineMatches + include Onebox::Engine + + matches do + find "foo.com" + end + end + it "sets @@matcher to a regular expression" do - class OneboxEngineFar - include Onebox::Engine + regex = OneboxEngineMatches.class_variable_get(:@@matcher) + expect(regex).to be_a(Regexp) + end + end - matches do - find "foo.com" - end + describe ".template_name" do + module ScopeForTemplateName + class TemplateNameOnebox + include Onebox::Engine end - regex = OneboxEngineFar.class_variable_get(:@@matcher) - expect(regex).to eq(/(?:foo\.com)/i) + end + + let(:template_name) { ScopeForTemplateName::TemplateNameOnebox.template_name } + + it "should not include the scope" do + expect(template_name).not_to include("ScopeForTemplateName", "scopefortemplatename") + end + + it "should not include the word Onebox" do + expect(template_name).not_to include("onebox", "Onebox") end end end