Sha256: cf57558f7b3f9af95f4995ecf3e5ac917b031b8cc2eba8d3672009006240ae9d

Contents?: true

Size: 1.54 KB

Versions: 7

Compression:

Stored size: 1.54 KB

Contents

require 'spec_helper'

describe Notu::LovedTracks, :vcr do

  let(:library) { Notu::Library.new(username: 'alexistoulotte') }
  let(:loved_tracks) { Notu::LovedTracks.new(library) }

  describe '#each' do

    it 'returns some tracks' do
      tracks = loved_tracks.take(42)
      expect(tracks.size).to eq(42)
      tracks.each do |track|
        expect(track).to be_a(Notu::Track)
        expect(track.artist).to be_present
        expect(track.plays_count).to be_nil
        expect(track.title).to be_present
      end
    end

    it 'returns nil' do
      allow(loved_tracks).to receive(:pages_count).and_return(1)
      expect(loved_tracks.each {}).to be_nil
    end

  end

  describe '#library' do

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

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

  end

  describe '#page_urls' do

    it 'is correct' do
      urls = loved_tracks.send(:page_urls)
      expect(urls.size).to eq(loved_tracks.send(:pages_count))
      expect(urls).to include('http://www.last.fm/user/alexistoulotte/library/loved?sortBy=date&sortOrder=desc&page=12')
      expect(urls).to include('http://www.last.fm/user/alexistoulotte/library/loved?sortBy=date&sortOrder=desc&page=3')
    end

  end

  describe '#pages_count' do

    it 'is correct' do
      expect(loved_tracks.send(:pages_count)).to be_within(10).of(30)
    end

  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
notu-0.1.6 spec/notu/loved_tracks_spec.rb
notu-0.1.5 spec/notu/loved_tracks_spec.rb
notu-0.1.4 spec/notu/loved_tracks_spec.rb
notu-0.1.3 spec/notu/loved_tracks_spec.rb
notu-0.1.2 spec/notu/loved_tracks_spec.rb
notu-0.1.1 spec/notu/loved_tracks_spec.rb
notu-0.1.0 spec/notu/loved_tracks_spec.rb