BUS-OGD/arrthorizer

View on GitHub
lib/generators/rspec/context_role/templates/role_spec.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'spec_helper'

describe <%= class_name %> do
  subject(:role) { <%= class_name %> }

  let(:user) { double(:user) }

  let(:current_context) { { } }

  describe :applies_to_user? do
    context "when some_condition" do
      before :each do
        # TODO: Add the required elements to the current_context
        # to make the ContextRole apply to the user
      end

      it "returns true" do
        pending

        expect(role).to apply_to_user(user).with_context(current_context)
      end

      # This is an extremely important test - it safeguards against
      # persisting data between requests.
      # if you want to rename the 'role' or 'current_context' variables,
      # you can call this shared example with different options like so:
      # it_behaves_like "not persisting state in the role object", role: some_role, current_context: some_context
      it_behaves_like "not persisting state in the role object"
    end

    context "when some_other_condition" do
      before :each do
        # TODO: Add the required elements to the current_context
        # to make the ContextRole *not* apply to the user
      end

      it "returns false" do
        pending

        expect(role).not_to apply_to_user(user).with_context(current_context)
      end

      # This is an extremely important test - it safeguards against
      # persisting data between requests.
      # if you want to rename the 'role' or 'current_context' variables,
      # you can call this shared example with different options like so:
      # it_behaves_like "not persisting state in the role object", role: some_role, current_context: some_context
      it_behaves_like "not persisting state in the role object"
    end
  end
end