summaryrefslogtreecommitdiff
path: root/spec/support/shared_examples/graphql/mutations/can_mutate_spammable_examples.rb
blob: fc795012ce7d72efa337961bd5386f9aab85696e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# frozen_string_literal: true

require 'spec_helper'

RSpec.shared_examples 'a mutation which can mutate a spammable' do
  describe "#additional_spam_params" do
    it 'passes additional spam params to the service' do
      args = [
        anything,
        anything,
        hash_including(
          api: true,
          request: instance_of(ActionDispatch::Request),
          captcha_response: captcha_response,
          spam_log_id: spam_log_id
        )
      ]
      expect(service).to receive(:new).with(*args).and_call_original

      subject
    end
  end

  describe "#spam_action_response_fields" do
    it 'resolves with spam action fields' do
      subject

      # NOTE: We do not need to assert on the specific values of spam action fields here, we only need
      # to verify that #spam_action_response_fields was invoked and that the fields are present in the
      # response. The specific behavior of #spam_action_response_fields is covered in the
      # HasSpamActionResponseFields unit tests.
      expect(mutation_response.keys)
        .to include('spam', 'spamLogId', 'needsCaptchaResponse', 'captchaSiteKey')
    end
  end
end