Sha256: 210fe93cbde83abd9834d4340690d02cb7f8bd9c486e21ff1cddf7827da94b10

Contents?: true

Size: 1.82 KB

Versions: 4

Compression:

Stored size: 1.82 KB

Contents

require_relative 'spec_helper'

describe Lanes::User do

    before do
        @user = Lanes::User.new( login: 'test', email: 'bob@test.com', name: 'Bob', password: 'testtest')
    end

    it "validates attributes" do
        user = Lanes::User.new
        refute_saves user, 'login'
        user.assign_attributes login: 'test', email: 'bob', name: 'Bob'
        refute_saves user, 'email'
        user.email = 'bob@test.com'
        refute_saves user, 'password'
        user.password = 'password'
        assert_saves user
    end

    it "sets roles" do
        @user.role_names = ['administrator']
        assert_saves @user
        assert_equal [ 'administrator' ], @user.role_names
    end

    it "can has built-in roles" do
        @support = Lanes::User.new( login: 'test', email: 'support@test.com', name: 'support Bob',
          password: 'testtest', role_names:['support'])
        @admin = Lanes::User.new( login: 'test', email: 'admin@test.com', name: 'admin Bob',
          password: 'testtest', role_names:['administrator'])

        assert @admin.can_read?(@support)
        assert @admin.can_write?(@support)

        assert @support.can_read?(@admin)
        refute @support.can_write?(@admin)
    end

    it "can be set from attribute data" do
        attrs = { login: 'test', email: 'bob', name: 'Bob', password:'password' }
        assert_equal attrs, @user.set_attribute_data( attrs, lanes_users(:admin) )
    end

    it "users can update themselves" do
        user  = lanes_users(:support)
        admin = lanes_users(:admin)
        attrs = { id: 34, login: 'test', email: 'bob', name: 'Bob', password:'password' }
        assert_empty admin.set_attribute_data( attrs, user )
        attrs[:id] = user.id
        assert_equal( {email: 'bob', name: 'Bob', password:'password'}, user.set_attribute_data(attrs, user) )
    end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
lanes-0.0.5 spec/user_spec.rb
lanes-0.0.3 spec/user_spec.rb
lanes-0.0.2 spec/user_spec.rb
lanes-0.0.1 spec/user_spec.rb