Sha256: 9b8faab83272c2f3af2271c8c1658c382f1c1ff7b3cd050ad1a850d3c8995bb5

Contents?: true

Size: 1.66 KB

Versions: 13

Compression:

Stored size: 1.66 KB

Contents

require 'spec_helper'

describe Infobar::Message do
  let :format do
    '%c %t %T %l %p %q %P %Q %te %tt %e %E %r %a %s %%'
  end

  let :message do
    described_class.new(format: format, '%p' => { format: '%.2f' })
  end

  let :now do
    Time.parse('2011-11-11 11:11:11')
  end


  before do
    Time.dummy(now - 3) do
      Infobar.(current: 21, total: 42, label: 'Test')
    end
    Time.dummy(now - 2) do
      +infobar
    end
    Time.dummy(now - 1) do
      +infobar
    end
  end

  after do
    infobar.reset
  end

  it 'can be interpolated' do
    Time.dummy(now) do
      expect(message.to_str).to eq(
        "23 42 19 Test 0.55 0.452 54.76 45.24 00:00:02 00:00:21 00:00:19 11:11:30 1.000i/sā†’ 00:01.000000 ā€“ %"
      )
    end
  end

  it 'can turn spinner into a message after finishing' do
    Time.dummy(now) do
      srand 1
      message = described_class.new(
        format: 'hello %s',
        '%s' => {
          random: true,
          message: {
            format: 'world at %E',
            '%E' => { format: '%F %T' }
          }
        }
      )
      expect(message.to_str).to eq 'hello /'
      infobar.finish
      expect(message.to_str).to eq 'hello world at 2011-11-11 11:11:11'
    end
  end

  it 'can display eta in native format' do
    Time.dummy(now) do
      message =
        described_class.new(format: 'test %E', '%E' => { format: nil }).to_str
      expect(message).to eq "test #{now + 19}"
    end
  end

  it 'can be converted into a format string' do
    expect(message.to_s).to eq format
  end

  it 'can be converted into a hash' do
    expect(message.to_hash).to eq(
      format: format,
      '%p' => { format: '%.2f' }
    )
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
infobar-0.6.2 spec/infobar/message_spec.rb
infobar-0.6.1 spec/infobar/message_spec.rb
infobar-0.6.0 spec/infobar/message_spec.rb
infobar-0.5.1 spec/infobar/message_spec.rb
infobar-0.5.0 spec/infobar/message_spec.rb
infobar-0.4.0 spec/infobar/message_spec.rb
infobar-0.3.0 spec/infobar/message_spec.rb
infobar-0.2.0 spec/infobar/message_spec.rb
infobar-0.1.1 spec/infobar/message_spec.rb
infobar-0.1.0 spec/infobar/message_spec.rb
infobar-0.0.7 spec/infobar/message_spec.rb
infobar-0.0.6 spec/infobar/message_spec.rb
infobar-0.0.5 spec/infobar/message_spec.rb