Sha256: ea7539f5405bbd1bd616393d01d28ce55b837c408538439e6ae740f589ec60a1

Contents?: true

Size: 977 Bytes

Versions: 1

Compression:

Stored size: 977 Bytes

Contents

require 'test_helper'

class CheckingTest < ActiveSupport::TestCase

  test "can definition with model" do
    assert user.can?(:create, Post)
    assert !user.cannot?(:create, Post)
  end

  test "can definition with instance" do
    assert user.can?(:create, post)
    assert !user.cannot?(:create, post)
  end

  test "cannot definition" do
    assert user.cannot?('read', post)
    assert !user.can?('read', post)
  end

  test "ability conditions" do
    assert admin_user.can?(:destroy, post)
    assert user.cannot?(:destroy, post)
  end

  test "ability block" do
    assert user.can?(:update, post_with_user)
  end

  test "undefined definition" do
    assert user.cannot?(:other, post)
    assert user.cannot?(:other, post)
  end

  private

  def post_with_user
    @post_with_user ||= Post.new(user: user)
  end

  def post
    @post ||= Post.new
  end

  def user
    @user ||= User.new
  end

  def admin_user
    @admin_user ||= User.new(admin: true)
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
abilities-0.0.1 test/checking_test.rb