Как проверить Pundit ApplicationPolicy? - PullRequest
0 голосов
/ 18 мая 2019

Это первый раз, когда я использую Pundit, и я не очень знаком с ним.Я хочу проверить свою политику приложения, чтобы убедиться, что все методы вызывают NotImplementError, поскольку я хочу убедиться, что все методы реализованы в политике подкласса.

Я пытался смоделировать подкласс, но я не уверен в том, что я делаю, любойпомощь будет оценена.

# frozen_string_literal: true

# This class wrap the application policy
# and raise NotImplementedError if a method is not implemented
class ApplicationPolicy
  attr_reader :user, :record

  def initialize(user, record)
    @user = user
    @record = record
  end

  def index?
    raise NotImplementedError
  end

  def show?
    raise NotImplementedError
  end

  def create?
    raise NotImplementedError
  end

  def new?
    raise NotImplementedError
  end

  def update?
    raise NotImplementedError
  end

  def edit?
    raise NotImplementedError
  end

  def destroy?
    raise NotImplementedError
  end

  # Scopes are used to define view listing records
  # which a particular user has access to.
  class Scope
    attr_reader :user, :scope

    def initialize(user, scope)
      @user = user
      @scope = scope
    end

    def resolve
      scope.all
    end
  end
end

Я ожидаю, что подкласс вызовет NotImplementedError при регулярном тестировании с Rpsec.

Любая помощь / предложение будет высоко оценена!

...