Sha256: 56c125e47690ebd6b86d44d64731873d6302cbcddea1af3d0d7fcb3c81cdbbce

Contents?: true

Size: 1.86 KB

Versions: 11

Compression:

Stored size: 1.86 KB

Contents

require 'test_plugin_helper'

module Mutations
  module OvalPolicies
    class DeleteMutationTest < ActiveSupport::TestCase
      let(:policy) { FactoryBot.create(:oval_policy, :oval_content => FactoryBot.create(:oval_content)) }
      let(:policy_id) { Foreman::GlobalId.for(policy) }
      let(:variables) do
        {
          id: policy_id,
        }
      end
      let(:query) do
        <<-GRAPHQL
        mutation DeleteOvalPolicyMutation($id:ID!){
          deleteOvalPolicy(input:{id:$id}) {
            id
            errors {
              message
              path
            }
          }
        }
        GRAPHQL
      end

      context 'with admin user' do
        let(:user) { FactoryBot.create(:user, :admin) }

        test 'should delete oval policy' do
          context = { current_user: user }

          policy

          assert_difference('::ForemanOpenscap::OvalPolicy.count', -1) do
            result = ForemanGraphqlSchema.execute(query, variables: variables, context: context)
            assert_empty result['errors']
            assert_empty result['data']['deleteOvalPolicy']['errors']
            assert_equal policy_id, result['data']['deleteOvalPolicy']['id']
          end
          assert_equal user.id, Audit.last.user_id
        end
      end

      context 'with user with view permissions' do
        setup do
          policy
          @user = setup_user 'view', 'oval_policies'
        end

        test 'should not delete oval policy' do
          context = { current_user: @user }

          assert_difference('ForemanOpenscap::OvalPolicy.count', 0) do
            result = ForemanGraphqlSchema.execute(query, variables: variables, context: context)
            assert_not_empty result['errors']
            assert_includes result['errors'].map { |error| error['message'] }.to_sentence, 'Unauthorized.'
          end
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
foreman_openscap-8.0.0 test/graphql/mutations/oval_policies/delete_mutation_test.rb
foreman_openscap-7.1.1 test/graphql/mutations/oval_policies/delete_mutation_test.rb
foreman_openscap-7.1.0 test/graphql/mutations/oval_policies/delete_mutation_test.rb
foreman_openscap-7.0.0 test/graphql/mutations/oval_policies/delete_mutation_test.rb
foreman_openscap-6.0.0 test/graphql/mutations/oval_policies/delete_mutation_test.rb
foreman_openscap-5.2.3 test/graphql/mutations/oval_policies/delete_mutation_test.rb
foreman_openscap-5.2.2 test/graphql/mutations/oval_policies/delete_mutation_test.rb
foreman_openscap-5.1.1 test/graphql/mutations/oval_policies/delete_mutation_test.rb
foreman_openscap-5.2.1 test/graphql/mutations/oval_policies/delete_mutation_test.rb
foreman_openscap-5.2.0 test/graphql/mutations/oval_policies/delete_mutation_test.rb
foreman_openscap-5.1.0 test/graphql/mutations/oval_policies/delete_mutation_test.rb