require 'spec_helper' describe PolicyManager::CategoriesController do routes { PolicyManager::Engine.routes } render_views before :each do @config = PolicyManager::Config.setup do |c| c.is_admin_method = ->(o){true} c.add_rule({name: "age", validates_on: [:create, :update], blocking: true, if: ->(o){ o.enabled_for_validation } }) end @category = @config.rules.first.name pr = PolicyManager::Term.create(description: "desc 1", rule: "age") pr.publish! User.any_instance.stubs(:enabled_for_validation).returns(false) @user = User.new @user.email = "a@a.cl" @user.save PolicyManager::ApplicationController.any_instance.stubs(:current_user).returns(User.first) end it "should get index" do ApplicationController.any_instance.stubs(:current_user).returns(User.first) PolicyManager::Config.stubs(:is_admin?).returns(true) get :index assert_response :success assert_select "table td", "age" end it "should get index" do get :show , params: { id: (@category) } assert_response :success assert_select "table td", "desc 1" pr = PolicyManager::Term.create(description: "desc 2", rule: "age") pr.publish! get :show , params: { id: (@category) } assert_response :success assert_select "table td", "desc 2" end it "should get index will not render other terms" do PolicyManager::Config.stubs(:is_admin?).returns(true) get :show , params: { id: (@category) } assert_response :success assert_select "table td", "desc 1" pr = PolicyManager::Term.create(description: "desc 2", rule: "age-non") pr.publish! get :show , params: {id: @category} assert_response :success assert_select "table td", {count: 0, text: "desc 2"} end it "should show category" do PolicyManager::Config.stubs(:is_admin?).returns(true) get :show , params: {id: @category} assert_response :success assert_select "h2", "age Policy" assert_select ".btn", "New Term" end end