Quer ter certeza de que seu esquema Graphql não apresenta nenhuma alteração importante?
Instale esta gem: https://github.com/xuorig/graphql-schema_comparator
Adicione um arquivo de teste que compare um instantâneo do esquema presente no controle de versão com um instantâneo do esquema atual (não no controle de versão).
require 'test_helper'
class MySchemaTest < ActiveSupport::TestCase
test 'schema should not have changed' do
schema = GraphQL::Schema::Printer.print_schema(MySchema)
current_schema_path = Rails.root.join('tmp', 'current_my_schema.graphql')
File.write(current_schema_path, schema)
snapshot_schema_path = file_fixture('my_schema.graphql')
snapshot = snapshot_schema_path.read
result = GraphQL::SchemaComparator.compare(snapshot, schema)
assert_not result.breaking?, "Graphql schema has breaking changes:n"
"please run `bin/schema_comparator compare #{snapshot_schema_path} #{current_schema_path}` to see the changes"
assert result.identical?, "Graphql schema has changed:n"
'please run `bin/rails graphql:schema:dump` to update the snapshot'
end
end
Adicione o seguinte na parte inferior do seu Rakefile
require 'graphql/rake_task'
GraphQL::RakeTask.new(
schema_name: 'MySchema',
idl_outfile: 'test/fixtures/files/my_schema.graphql',
json_outfile: 'test/fixtures/files/my_schema.json'
)