require 'spec_helper' describe Slacken do describe '#translate' do subject { described_class.translate(source) } context 'when h1 is given' do let(:source) do <<-EOS.unindent

heading italic bold

EOS end it 'wraps inner text with "*"' do should eq '*heading _italic_ bold*' end end context 'when p is given' do let(:source) { '

hello world

' } it 'returns inner text' do should eq "hello world" end end context 'when br is given' do let(:source) { '

hello
world

' } it 'converts br into new line char' do should eq "hello\nworld" end end context 'when em is given' do let(:source) { '

italic

' } it 'wraps inner text with "_"' do should eq '_italic_' end end context 'when string is given' do let(:source) { '

bold

' } it 'wraps inner text with "*"' do should eq '*bold*' end end context 'when code is given' do let(:source) { '

code

' } it 'wraps inner text with "`"' do should eq '`code`' end end context 'when emoji img is given' do let(:source) do <<-EOS.unindent

hello :eyes: world :bowtie:

EOS end it 'replaces img elements with corresponding emoji notation' do should eq 'hello :eyes: world :bowtie:' end end context 'when nested ul, ol and li elements are given' do let(:source) do <<-EOS.unindent
  1. リスト1
  2. リスト2
    1. リスト2-1
EOS end it 'converts to list notation' do should eq <<-EOS.unindent.chomp 1. リスト1 • リスト1-1 • リスト1-2 2. リスト2 1. リスト2-1 EOS end end context 'when task lists are given' do let(:source) do <<-EOS.unindent EOS end it 'converts to list notation with ascii checkbox' do should eq <<-EOS.unindent.chomp • [x] Checked item • [ ] Unchecked item EOS end end context 'when dl is given' do let(:source) do <<-EOS.unindent
定義語リストとは?
こんなかんじで単語の意味を説明していくリストです。
他の単語
ここに説明を書く
EOS end it 'converts to list notation' do should eq <<-EOS.unindent.chomp • 定義語リストとは? • こんなかんじで単語の意味を説明していくリストです。 • 他の単語 • ここに説明を書く EOS end end context 'when blockquote is given' do let(:source) do <<-EOS.unindent

この文字列は引用されたものです
インデントされているはず
これはもインデントされている

これはインデントされない

EOS end it 'inserts ">" to each lines' do should eq <<-EOS.unindent.chomp > この文字列は引用されたものです > インデントされているはず > これはもインデントされている これはインデントされない EOS end end context 'when code block is given' do let(:source) do <<-EOS.unindent
class Klass
            def method
              puts 'method called!'
            end
          end
          
EOS end it 'wraps inner text with "```"' do should eq <<-EOS.unindent.chomp ```class Klass def method puts 'method called!' end end ``` EOS end end context 'when table is given' do let(:source) do <<-EOS.unindent
Header1 Header2
Cell1 Cell2
hello world
EOS end it 'converts html to table notation' do should eq <<-EOS.unindent.chomp +-------+-------+ |Header1|Header2| +-------+-------+ |Cell1 |Cell2 | |hello |world | +-------+-------+ EOS end end context 'when table with empty td is given' do let(:source) do <<-EOS.unindent
Header1 Header2
A
B C
EOS end it 'converts html to table notation' do should eq <<-EOS.unindent.chomp +-------+-------+ |Header1|Header2| +-------+-------+ |A | | |B |C | +-------+-------+ EOS end end context 'when img is given' do let(:source) { "

#{alt}

" } let(:src) { 'http://cdn.qiita.com/logo.png' } let(:alt) { 'Qiita logo' } it 'convert inner text to img notation' do should eq "<#{src}|#{alt}>" end end context 'when img in a is given' do let(:source) { "

#{alt}

" } let(:src) { 'http://cdn.qiita.com/logo.png' } let(:alt) { 'Qiita logo' } it 'ignores the link' do should eq "<#{src}|#{alt}>" end end context 'when a is given' do let(:source) { '

qiita

' } it 'converts to link notation' do should eq "" end end context 'when hr is given' do let(:source) do <<-EOS.unindent

before


after

EOS end it 'converts to "-----------"' do should eq <<-EOS.unindent.chomp before ----------- after EOS end end context 'when del is given' do let(:source) { 'ignore' } it 'returns inner text' do should eq 'ignore' end end end end