Sha256: e6697befab118c7b9b9f7a35f5c5d9d2447afc38806f607975f39850b97511f5

Contents?: true

Size: 1.62 KB

Versions: 4

Compression:

Stored size: 1.62 KB

Contents

require 'spec_helper'

module Kosher
  describe Seller do
    describe ".build" do
      use_vcr_cassette '0143105825'

      let(:asin) { '0143105825' }

      let(:response) do
        request = Request.new(credentials)
        request.locale = :us
        request.batchify([asin])
        algorithm = request.get

        algorithm.instance_variable_get(:@response)
      end

      let(:sellers) do
        response.find("Merchant")
      end

      it "builds a seller" do
        seller = Seller.build(sellers.first)

        seller.merchant_id.should match /^[0-9A-Z]{13,14}$/
        seller.average_rating.should be_an_instance_of Float
      end

      it "builds a newly-launched seller" do
        doc = sellers.detect { |doc| doc["AverageFeedbackRating"] == "0.0" }
        new_seller = Seller.build(doc)

        new_seller.average_rating.should eql 0.0
      end
    end

    describe "#kosher?" do
      it "returns true if seller's average rating is 0.0" do
        seller = Fabricate(:new_seller)
        seller.should be_kosher
      end

      it "returns true if seller's average rating is above 4.7" do
        seller = Fabricate(:good_seller)
        seller.should be_kosher
      end

      it "returns false if sellers' average rating is 4.7 or below" do
        seller = Fabricate(:bad_seller)
        seller.should_not be_kosher
      end

      it "returns false if seller is blacklisted" do
        seller = Fabricate(:good_seller)
        seller.should be_kosher

        seller.merchant_id = Faker::Amazon.merchant_id
        Seller.blacklist = [seller.merchant_id]

        seller.should_not be_kosher
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
kosher-0.1.6 spec/kosher/seller_spec.rb
kosher-0.1.5 spec/kosher/seller_spec.rb
kosher-0.1.4 spec/kosher/seller_spec.rb
kosher-0.1.3 spec/kosher/seller_spec.rb