describe BlockHelper, type: :helper do
before do
controller.add_view_paths
end
context ".b" do
it "renders empty div with class when called without options" do
result = b :test
expect(result).to eq '
'
end
it "renders div with content when called with block" do
result = b 'test-block' do
'test-content'
end
expect(result).to eq 'test-content
'
end
it "renders empty div with mods class when called with mods" do
result = b 'test-block', mods: {test: :one}
expect(result).to eq ''
end
it 'renders file when one exists' do
result = b 'block1'
expect(result).to eq 'block1
'
end
it 'ads js-bem class and data-bem when js: true' do
result = b 'b1', js: true
expect(result).to eq ''
end
it 'ads js-bem class and mixed data-bem when js: true in mix' do
result = b 'b1', mix: {b: 'b2', js: true}
expect(result).to eq ''
end
it 'ads js-bem class and full data-bem when js: true in mix' do
result = b 'b1', js: true, mix: {b: 'b2', js: true}
expect(result).to eq ''
end
it 'ads js-bem class and full custom data-bem when js: true in mix' do
result = b 'b1', js: {bb1: 'boo'}, mix: {b: 'b2', js: {bb2: 'boo2'}}
expect(result).to eq ''
end
end
context ".e" do
it "raise error when called outside block" do
expect{ e 'test-element' }.to raise_error RailsBlocks::NoBlockContextError
end
it "renders empty element with class when called without options" do
b 'test' do
result = e :element
expect(result).to eq ''
end
end
it "renders element with mods class when called with mods" do
b 'test' do
result = e 'element', mods: {test: :boo, test2: true}
expect(result).to eq ''
end
end
it "renders element with class & content when called with block" do
b 'test' do
result = e 'element' do
"content"
end
expect(result).to eq 'content
'
end
end
it 'ads data-bem, but not js-bem class when js: true' do
b 'test' do
result = e 'e1', js: {test: 2}
expect(result).to eq ''
end
end
it 'ads js-bem class and mixed data-bem when js: true in mix with block' do
b 'test' do
result = e 'e1', mix: {b: 'b1', js: true}
expect(result).to eq ''
end
end
it 'ads js-bem class and full data-bem when js: true in mix' do
result = b 'b1', js: true, mix: {b: 'b2', js: true}
expect(result).to eq ''
end
end
end