Clone
require 'spec_helper'
describe Locomotive::Steam::Liquid::Drops::Page do
describe '#editable_elements' do
let(:source) { <<-EOF
<h1>{{ page.editable_elements.content.header.title }}</h1>
{% block content %}
{% block header %}
{% editable_text title %}Hello world{% endeditable_text %}
{% endblock %}
{% endblock %}
EOF
}
let(:elements) { nil }
let(:page) { instance_double('Page', localized_attributes: [], fullpath: 'index', editable_elements: elements) }
let(:drop) { described_class.new(page) }
let(:services) { Locomotive::Steam::Services.build_instance }
let(:context) { ::Liquid::Context.new({ 'page' => drop }, {}, { page: page, services: services }, true) }
subject { render_template(source, context, { page: page, default_editable_content: {} }) }
it { is_expected.to match /<h1>Hello world<\/h1>/ }
context 'content updated by an user' do
let(:elements) { [instance_double('EditableText', block: 'content/header', slug: 'title', content: 'Bonjour le monde', :base_url= => nil, localized_attributes: [], format: 'raw')] }
before do
services.locale = :en
services.repositories.current_site = instance_double('Site', default_locale: :en)
allow(services.repositories.page).to receive(:editable_elements_of).and_return(elements)
end
it { is_expected.to match /<h1>Bonjour le monde<\/h1>/ }
end
end
end