diff options
author | rpereira2 <rpereira@gitlab.com> | 2019-04-17 15:21:42 +0530 |
---|---|---|
committer | syasonik <syasonik@gitlab.com> | 2019-04-24 18:23:03 +0800 |
commit | c2818d6b23543f288db3ae5464c3f3b473522836 (patch) | |
tree | 3de33b661e25ef7f4e6560d7fa26484853cb05ec /spec/lib | |
parent | 4a9002cee3c80a9de24f01a5eb313ff17d2e4931 (diff) | |
download | gitlab-ce-c2818d6b23543f288db3ae5464c3f3b473522836.tar.gz |
Add schema validation spec
Validate the schema of the dashboard that is loaded by
Gitlab::MetricsDashboard::Service.
Diffstat (limited to 'spec/lib')
-rw-r--r-- | spec/lib/gitlab/metrics_dashboard/service_spec.rb | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/spec/lib/gitlab/metrics_dashboard/service_spec.rb b/spec/lib/gitlab/metrics_dashboard/service_spec.rb index f9574889314..127fc28bcd6 100644 --- a/spec/lib/gitlab/metrics_dashboard/service_spec.rb +++ b/spec/lib/gitlab/metrics_dashboard/service_spec.rb @@ -6,14 +6,15 @@ describe Gitlab::MetricsDashboard::Service, :use_clean_rails_memory_store_cachin let(:project) { build(:project) } describe 'get_dashboard' do + let(:dashboard_schema) { JSON.parse(fixture_file('lib/gitlab/metrics_dashboard/schemas/dashboard.json')) } + it 'returns a json representation of the environment dashboard' do result = described_class.new(project).get_dashboard expect(result.keys).to contain_exactly(:dashboard, :status) expect(result[:status]).to eq(:success) - expect(result[:dashboard]).to include('dashboard', 'order', 'panel_groups') - expect(result[:dashboard]['panel_groups']).to all( include('group', 'priority', 'panels') ) + expect(JSON::Validator.fully_validate(dashboard_schema, result[:dashboard])).to be_empty end it 'caches the dashboard for subsequent calls' do |