require 'spec_helper'

describe Retailer do

  it "created by factory" do
    FactoryGirl.create(:retailer)
  end

  it "doesn't match uuid password" do
    retailer= FactoryGirl.create(:retailer)
    retailer.reload
    retailer.matches_password('hha').should be false
  end

  it "automatic slug creation" do
    retailer= FactoryGirl.create(:retailer, slug: nil)
    retailer.id.should_not be_blank
    retailer.slug.should eql retailer.id.to_s

  end
  it "has correct associations" do
    retailer = FactoryGirl.create(:retailer)

    retailer.should eql retailer.user.owned_retailer

    teacher = FactoryGirl.create(:teacher, retailer: retailer)

    retailer.reload
    retailer.teachers.to_a.should eql [teacher]

    teacher.retailer.should eql retailer
  end

  it "updates" do
    retailer = FactoryGirl.create(:retailer)
    retailer.update_from_params({name: 'hahah'})
    retailer.errors.any?.should be false
  end

  it "updates password" do
    retailer = FactoryGirl.create(:retailer)
    retailer.update_from_params({name: 'hahah', password: 'abc'})
    retailer.errors.any?.should be true
    retailer.errors[:password].should eql ['is too short (minimum is 6 characters)']

    retailer.update_from_params({name: 'hahah', password: 'abcdef'})
    retailer.errors.any?.should be false
    retailer.matches_password('abcdef').should be true

    retailer = Retailer.find_by_id(retailer.id)
    retailer.matches_password('abcdef').should be true
  end
end