gitlab-org--gitlab-foss/spec/lib/gitlab/tracking/snowplow_schema_validation_spec.rb

33 lines
840 B
Ruby

# frozen_string_literal: true
require 'spec_helper'
RSpec.describe 'Snowplow Schema Validation' do
context 'snowplow events definition' do
shared_examples 'matches schema' do
it 'conforms schema json' do
paths = Dir[Rails.root.join(yaml_path)]
events = paths.each_with_object([]) do |path, metrics|
metrics.push(
YAML.safe_load(File.read(path), aliases: true)
)
end
expect(events).to all match_schema(Rails.root.join('config/events/schema.json'))
end
end
describe 'matches the schema for CE' do
let(:yaml_path) { 'config/events/*.yml' }
it_behaves_like 'matches schema'
end
describe 'matches the schema for EE' do
let(:yaml_path) { 'ee/config/events/*.yml' }
it_behaves_like 'matches schema'
end
end
end