Sha256: 01fb620e0c79e409a2cf88f01c1847820992037d0d8a2e19e93fd6394174ef60

Contents?: true

Size: 1.83 KB

Versions: 16

Compression:

Stored size: 1.83 KB

Contents

require 'spec_helper'

describe Kagu::Tracks do

  let(:library) { Kagu::Library.new }
  let(:tracks) { Kagu::Tracks.new(library) }

  describe '#each' do

    it 'most of tracks must be correct path must be a file' do
      tracks.take(100).each do |track|
        expect(File.file?(track.path)).to be(true)
        expect(track).to be_a(Kagu::Track)
        expect(track.added_at).to be_a(Time)
        expect(track.album).to be_a(String)
        expect(track.album).to be_present
        expect(track.artist).to be_a(String)
        expect(track.artist).to be_present
        expect(track.exists?).to be(true)
        expect(track.genre).to be_a(String)
        expect(track.genre).to be_present
        expect(track.id).to be_an(Integer)
        expect(track.length).to be_an(Integer)
        expect(track.path).not_to include('file://')
        expect(track.path).to include('Music')
        expect(track.title).to be_a(String)
        expect(track.title).to be_present
        expect(track.year).to be_an(Integer)
        expect(track.year.to_s).to match(/\A\d{4}\z/)
      end
    end

    it 'does not fails if block is not given' do
      expect {
        expect(tracks.each).to be_nil
      }.not_to raise_error
    end

    it 'returns nil' do
      expect(tracks.each {}).to be_nil
    end

    it 'all tracks must exists and path should not include UTF-8-MAC charset' do
      library.tracks.each do |track|
        expect(track.path).not_to include("\u{65}\u{301}")
        expect(track.exists?).to be(true)
      end
    end

  end

  describe '#library' do

    it 'is library given at initialization' do
      expect(tracks.library).to be(library)
    end

    it 'raise an error if library is nil' do
      expect {
        Kagu::Tracks.new(nil)
      }.to raise_error(ArgumentError, 'Kagu::Tracks#library must be a library, nil given')
    end

  end

end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
kagu-1.2.0 spec/kagu/tracks_spec.rb
kagu-1.1.2 spec/kagu/tracks_spec.rb
kagu-1.1.1 spec/kagu/tracks_spec.rb
kagu-1.1.0 spec/kagu/tracks_spec.rb
kagu-1.0.0 spec/kagu/tracks_spec.rb
kagu-0.4.7 spec/kagu/tracks_spec.rb
kagu-0.4.6 spec/kagu/tracks_spec.rb
kagu-0.4.5 spec/kagu/tracks_spec.rb
kagu-0.4.4 spec/kagu/tracks_spec.rb
kagu-0.4.3 spec/kagu/tracks_spec.rb
kagu-0.4.2 spec/kagu/tracks_spec.rb
kagu-0.4.1 spec/kagu/tracks_spec.rb
kagu-0.4.0 spec/kagu/tracks_spec.rb
kagu-0.3.3 spec/kagu/tracks_spec.rb
kagu-0.3.2 spec/kagu/tracks_spec.rb
kagu-0.3.1 spec/kagu/tracks_spec.rb