spec/tty/table/renderer/basic/render_spec.rb in tty-0.0.4 vs spec/tty/table/renderer/basic/render_spec.rb in tty-0.0.5

- old
+ new

@@ -4,45 +4,156 @@ describe TTY::Table::Renderer::Basic, '#render' do let(:header) { ['h1', 'h2', 'h3'] } let(:rows) { [['a1', 'a2', 'a3'], ['b1', 'b2', 'b3']] } - it 'displays table without styling' do - table = TTY::Table.new :renderer => :basic - table << rows[0] << rows[1] - table.to_s.should == <<-EOS.normalize - a1 a2 a3 - b1 b2 b3 - EOS - end + subject { described_class.new } - it 'displays table with header' do - table = TTY::Table.new :header => header, :renderer => :basic - table << rows[0] << rows[1] - table.to_s.should == <<-EOS.normalize - h1 h2 h3 - a1 a2 a3 - b1 b2 b3 - EOS + context 'without border' do + + it 'displays table without styling' do + table = TTY::Table.new rows + subject.render(table).should == <<-EOS.normalize + a1 a2 a3 + b1 b2 b3 + EOS + end + + it 'displays table with header' do + table = TTY::Table.new header, rows + subject.render(table).should == <<-EOS.normalize + h1 h2 h3 + a1 a2 a3 + b1 b2 b3 + EOS + end + + it 'displays table according to widths' do + header = ['h1', 'h2'] + rows = [['aaa1', 'a2'], ['b1', 'bb1']] + table = TTY::Table.new header, rows + subject.render(table).should == <<-EOS.normalize + h1 h2 + aaa1 a2 + b1 bb1 + EOS + end + + it 'header greater than row sizes' do + header = ['header1', 'header2', 'header3'] + table = TTY::Table.new header, rows + subject.render(table).should == <<-EOS.normalize + header1 header2 header3 + a1 a2 a3 + b1 b2 b3 + EOS + end + end - it 'displays table according to widths' do - header = ['h1', 'h2'] - rows = [['aaa1', 'a2'], ['b1', 'bb1']] - table = TTY::Table.new header, rows, :renderer => :basic - table.to_s.should == <<-EOS.normalize - h1 h2 - aaa1 a2 - b1 bb1 - EOS + context 'with ASCII border' do + let(:border) { TTY::Table::Border::ASCII } + + it 'display table rows' do + table = TTY::Table.new rows + subject.render(table, border).should == <<-EOS.normalize + +--+--+--+ + |a1|a2|a3| + |b1|b2|b3| + +--+--+--+ + EOS + end + + it 'displays table with header' do + table = TTY::Table.new header, rows + subject.render(table, border).should == <<-EOS.normalize + +--+--+--+ + |h1|h2|h3| + +--+--+--+ + |a1|a2|a3| + |b1|b2|b3| + +--+--+--+ + EOS + end + + it 'displays table according to widths' do + header = ['h1', 'h2'] + rows = [['aaa1', 'a2'], ['b1', 'bb1']] + table = TTY::Table.new header, rows + subject.render(table, border).should == <<-EOS.normalize + +----+---+ + |h1 |h2 | + +----+---+ + |aaa1|a2 | + |b1 |bb1| + +----+---+ + EOS + end + + it 'header greater than row sizes' do + header = ['header1', 'header2', 'header3'] + table = TTY::Table.new header, rows + subject.render(table, border).should == <<-EOS.normalize + +-------+-------+-------+ + |header1|header2|header3| + +-------+-------+-------+ + |a1 |a2 |a3 | + |b1 |b2 |b3 | + +-------+-------+-------+ + EOS + end end - it 'header greater than row sizes' do - header = ['header1', 'header2', 'header3'] - table = TTY::Table.new header, rows, :renderer => :basic - table.to_s.should == <<-EOS.normalize - header1 header2 header3 - a1 a2 a3 - b1 b2 b3 - EOS + context 'with Unicode border' do + let(:border) { TTY::Table::Border::Unicode } + + it 'display table rows' do + table = TTY::Table.new rows + subject.render(table, border).should == <<-EOS.normalize + ┌──┬──┬──┐ + │a1│a2│a3│ + │b1│b2│b3│ + └──┴──┴──┘ + EOS + end + + it 'displays table with header' do + table = TTY::Table.new header, rows + subject.render(table, border).should == <<-EOS.normalize + ┌──┬──┬──┐ + │h1│h2│h3│ + ├──┼──┼──┤ + │a1│a2│a3│ + │b1│b2│b3│ + └──┴──┴──┘ + EOS + end + + it 'displays table according to widths' do + header = ['h1', 'h2'] + rows = [['aaa1', 'a2'], ['b1', 'bb1']] + table = TTY::Table.new header, rows + subject.render(table, border).should == <<-EOS.normalize + ┌────┬───┐ + │h1 │h2 │ + ├────┼───┤ + │aaa1│a2 │ + │b1 │bb1│ + └────┴───┘ + EOS + end + + it 'header greater than row sizes' do + header = ['header1', 'header2', 'header3'] + table = TTY::Table.new header, rows + subject.render(table, border).to_s.should == <<-EOS.normalize + ┌───────┬───────┬───────┐ + │header1│header2│header3│ + ├───────┼───────┼───────┤ + │a1 │a2 │a3 │ + │b1 │b2 │b3 │ + └───────┴───────┴───────┘ + EOS + end end + end