summaryrefslogtreecommitdiff
path: root/spec/lib
diff options
context:
space:
mode:
authorrpereira2 <rpereira@gitlab.com>2019-04-17 15:21:42 +0530
committersyasonik <syasonik@gitlab.com>2019-04-24 18:23:03 +0800
commitc2818d6b23543f288db3ae5464c3f3b473522836 (patch)
tree3de33b661e25ef7f4e6560d7fa26484853cb05ec /spec/lib
parent4a9002cee3c80a9de24f01a5eb313ff17d2e4931 (diff)
downloadgitlab-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.rb5
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