Sha256: 9e66210f154c2b0c3b025c482c2051fcf746184a339a9081c5cadfeb88d78c9f
Contents?: true
Size: 1.87 KB
Versions: 2
Compression:
Stored size: 1.87 KB
Contents
require 'spec_helper' module Landable describe HasTemplates do before(:each) do create_list :template, 2 create :template, slug: 'I have a space' end let(:templates) { Landable::Template.last(3) } let(:subject) do build :page, body: " <div>{% template #{templates[0].slug} %}</div> <div>{% template #{templates[1].slug} %}</div> <div>{% template #{templates[2].slug} %}</div> " end describe '#templates' do it 'should return templates' do slugs = [templates[0].slug, templates[1].slug, templates[2].slug] subject.templates.should eq Landable::Template.where(slug: slugs) end end describe '#template_names' do it 'should pull template slugs out of the body' do subject.template_names.sort.should eq templates.map(&:slug).uniq.sort end end describe '#save_templates!' do it 'should save the templates' do assets_double = double subject.should_receive(:templates) { assets_double } subject.should_receive(:templates=).with(assets_double) subject.save_templates! end it 'should be called during save' do subject.should_receive :save_templates! subject.save! end end describe 'body=' do it 'should reset the template_slug cache, then set the body' do subject.instance_eval { @template_slug = 'foo' } subject.body = 'bar' subject.body.should eq 'bar' subject.instance_eval { @template_slug }.should be_nil subject.templates.should eq [] end end describe '#templates_join_table_name' do it 'should generate the correct join_table, and then apologize for doing so' do Page.send(:templates_join_table_name).should eq "#{Landable.configuration.database_schema_prefix}landable.page_templates" end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
landable-1.14.0 | spec/concerns/landable/has_templates_spec.rb |
landable-1.13.2 | spec/concerns/landable/has_templates_spec.rb |