Sha256: 4c4b0568073ec0d723d69a331f74c9ff8d68104e8bf9fde7c2c888c774ceb730

Contents?: true

Size: 1.48 KB

Versions: 7

Compression:

Stored size: 1.48 KB

Contents

require 'spec_helper'

describe PolicyManager::PortabilityRule do
    
    before :each do 

      @config = PolicyManager::Config.setup do |c|
        c.add_rule({name: "age", validates_on: [:create, :update], if: ->(o){false} })
        c.add_portability_rule({
          name: "exportable_data", 
          collection: :foo_data, 
          per: 10
        })

        c.add_portability_rule({
          name: "my_account", 
          member: :account_data
        })

      end

      if defined?(User)
        Object.send(:remove_const, :User)
        load Rails.root + 'app/models/user.rb'
      end

      pr = PolicyManager::Term.create(description: "el", rule: "age")
      pr.publish!
    end

    it "return a collection" do
      User.any_instance.stubs(:foo_data).returns((1..100).map{|o| o} )
      @user = User.create(email: "a@a.cl")
      assert !@user.errors.any?

      collection = @user.portability_collection_exportable_data()
      assert collection.is_a?(Array)

      assert collection.size == 10

      collection = @user.portability_collection_exportable_data(2)
      assert collection.last == 20
    end

    it "return a member" do
      User.any_instance.stubs(:account_data).returns({name: "foo", last_name: "bar"} )
      @user = User.create(email: "a@a.cl")
      assert !@user.errors.any?

      member = @user.portability_member_my_account()
      assert member.is_a?(Hash)

      member = @user.portability_member_my_account()
      assert member[:name] == "foo"
    end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
gdpr_rails-0.5.1 spec/models/policy_manager/portability_rule_spec.rb
gdpr_rails-0.5.0 spec/models/policy_manager/portability_rule_spec.rb
gdpr_rails-0.4.0 spec/models/policy_manager/portability_rule_spec.rb
gdpr_rails-0.3.4 spec/models/policy_manager/portability_rule_spec.rb
gdpr_rails-0.3.3 spec/models/policy_manager/portability_rule_spec.rb
gdpr_rails-0.3.2 spec/models/policy_manager/portability_rule_spec.rb
gdpr_rails-0.3.1 spec/models/policy_manager/portability_rule_spec.rb