Sha256: a2606b314324cd5e5716e8bfca0d4b1f50dcbde87ac1f6dff4dee98d0c1533b7

Contents?: true

Size: 1.63 KB

Versions: 3

Compression:

Stored size: 1.63 KB

Contents

require "spec_helper"

module Tuersteher

  class Dashboard; end
  class Todo; end

  describe AccessRulesStorage do

    context "eval_rules" do
      before(:all) do
        rule_defs = <<-EOR
path('/').grant.method(:get)
path(:all).grant.role(:ADMIN)
path('/special').grant.extension(:special?, :area1)
path('/pictures') do
  grant.role(:admin)
  deny.role(:guest)
end

model(Dashboard).grant.method(:view)
model(Todo) do
  grant.method(:view)
  grant.method(:full_view).role(:ADMIN)
  grant.method(:update).role(:EDITOR).extension(:owned_by?) # calls Todo.owned_by?(current_user)
end
        EOR
        AccessRulesStorage.instance.eval_rules rule_defs
        @path_rules = AccessRulesStorage.instance.path_rules
        @model_rules = AccessRulesStorage.instance.model_rules
      end

      specify do
        expect(@path_rules.size).to eq(5)
      end

      specify do
        expect(@model_rules.size).to eq(4)
      end

      specify do
        AccessRules.path_access?(nil, '/')
      end

    end # of context "eval_rules"



    context "extend path with prefix" do
      context "eval_rules" do
        before(:all) do
          rule_defs = <<-EOR
  path(:all).grant.role(:ADMIN)
  path('/special').grant.role(:SPECIAL)
          EOR
          AccessRulesStorage.instance.path_prefix = '/test'
          AccessRulesStorage.instance.eval_rules rule_defs
          @path_rules = AccessRulesStorage.instance.path_rules
        end

        specify{ expect(@path_rules.first.path_spezification).to be_nil }
        specify{ expect(@path_rules.last.path_spezification.path).to eq '/test/special' }

      end
    end

  end # of describe AccessRulesStorage
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
tuersteher-1.0.4 spec/access_rules_storage_spec.rb
tuersteher-1.0.3 spec/access_rules_storage_spec.rb
tuersteher-1.0.2 spec/access_rules_storage_spec.rb