Sha256: c89f39d2aa6e82a734d6f687eb3c595edea9ddef223b274146d25ab3b1ba5953

Contents?: true

Size: 1.78 KB

Versions: 4

Compression:

Stored size: 1.78 KB

Contents

require 'spec_helper'

module SignInSpec

  class SignIn < ActiveType::Object
    attribute :email, :string
    attribute :password, :string

    validates :email, :presence => true
    validates :password, :presence => true

    validate :if => :password do |sign_in|
      errors.add(:password, 'is not correct') unless sign_in.password == "correct password"
    end

    after_save :set_session

    def set_session
    end
  end

end

describe SignInSpec::SignIn do

  describe 'with missing credentials' do

    it 'is invalid' do
      subject.should_not be_valid
    end

    it 'has errors' do
      subject.valid?
      subject.errors[:email].should == ["can't be blank"]
      subject.errors[:password].should == ["can't be blank"]
    end

    it 'does not save' do
      subject.save.should be_false
    end

    it 'does not set the session' do
      subject.should_not_receive :set_session
      subject.save
    end

  end

  describe 'with invalid credentials' do

    before do
      subject.email = "email"
      subject.password = "incorrect password"
    end

    it 'is invalid' do
      subject.should_not be_valid
    end

    it 'has errors' do
      subject.valid?
      subject.errors[:password].should == ["is not correct"]
    end

    it 'does not save' do
      subject.save.should be_false
    end

    it 'does not set the session' do
      subject.should_not_receive :set_session
      subject.save
    end

  end

  describe 'with valid credentials' do

    before do
      subject.email = "email"
      subject.password = "correct password"
    end

    it 'is invalid' do
      subject.should be_valid
    end

    it 'does save' do
      subject.save.should be_true
    end

    it 'sets the session' do
      subject.should_receive :set_session
      subject.save
    end

  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
active_type-0.1.3 spec/integration/sign_in_spec.rb
active_type-0.1.2 spec/integration/sign_in_spec.rb
active_type-0.1.1 spec/integration/sign_in_spec.rb
active_type-0.1.0 spec/integration/sign_in_spec.rb