2021-12-11 22:18:48 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
require 'spec_helper'
|
|
|
|
|
|
|
|
# We need to distinguish between known and unknown GraphQL operations. This spec
|
|
|
|
# tests that we set up Gitlab::Graphql::KnownOperations.default which requires
|
|
|
|
# integration of FE queries, webpack plugin, and BE.
|
2023-03-04 22:38:38 +05:30
|
|
|
RSpec.describe 'Graphql known operations', :js, feature_category: :integrations do
|
2021-12-11 22:18:48 +05:30
|
|
|
around do |example|
|
|
|
|
# Let's make sure we aren't receiving or leaving behind any side-effects
|
|
|
|
# https://gitlab.com/gitlab-org/gitlab/-/jobs/1743294100
|
|
|
|
::Gitlab::Graphql::KnownOperations.instance_variable_set(:@default, nil)
|
|
|
|
::Gitlab::Webpack::GraphqlKnownOperations.clear_memoization!
|
|
|
|
|
|
|
|
example.run
|
|
|
|
|
|
|
|
::Gitlab::Graphql::KnownOperations.instance_variable_set(:@default, nil)
|
|
|
|
::Gitlab::Webpack::GraphqlKnownOperations.clear_memoization!
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'collects known Graphql operations from the code', :aggregate_failures do
|
|
|
|
# Check that we include some arbitrary operation name we expect
|
|
|
|
known_operations = Gitlab::Graphql::KnownOperations.default.operations.map(&:name)
|
|
|
|
|
|
|
|
expect(known_operations).to include("searchProjects")
|
|
|
|
expect(known_operations.length).to be > 20
|
2023-01-13 00:05:48 +05:30
|
|
|
expect(known_operations).to all(match(%r{^[a-z]+}i))
|
2021-12-11 22:18:48 +05:30
|
|
|
end
|
|
|
|
end
|