34 lines
840 B
Ruby
34 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
|