From c10f286804d08c4871270cd6df3e4ffac75e4c8c Mon Sep 17 00:00:00 2001 From: Gareth Chapman Date: Thu, 4 Feb 2016 13:31:10 +0000 Subject: [PATCH] Adding failure-capture information to exception message. --- .gitignore | 1 + lib/svelte/errors/version_error.rb | 8 +++++++- lib/svelte/swagger_builder.rb | 5 +++-- spec/lib/svelte_spec.rb | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 72098d4..a930a41 100755 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ /tmp/ .tags .DS_Store +/.idea/ diff --git a/lib/svelte/errors/version_error.rb b/lib/svelte/errors/version_error.rb index 2cf5d32..73a4f0b 100644 --- a/lib/svelte/errors/version_error.rb +++ b/lib/svelte/errors/version_error.rb @@ -2,8 +2,14 @@ module Svelte # Svelte error class to represent version errors. # Raised when a Swagger v1 JSON is fed into Svelte class VersionError < StandardError + + def initialize(supplied_version) + @supplied_version = supplied_version + end + def message - 'Invalid Swagger version spec supplied. Svelte supports Swagger v2 only' + %-"swagger" field is #{@supplied_version or 'empty'}. Svelte only supports Swagger v2.0.- end + end end diff --git a/lib/svelte/swagger_builder.rb b/lib/svelte/swagger_builder.rb index bf73579..1496d8e 100755 --- a/lib/svelte/swagger_builder.rb +++ b/lib/svelte/swagger_builder.rb @@ -68,8 +68,9 @@ def validate end def validate_version - if raw_hash['swagger'] != '2.0' - raise VersionError + swagger_version = raw_hash['swagger'] + if swagger_version != '2.0' + raise VersionError.new(swagger_version) end end diff --git a/spec/lib/svelte_spec.rb b/spec/lib/svelte_spec.rb index 9883fc2..1b0c596 100755 --- a/spec/lib/svelte_spec.rb +++ b/spec/lib/svelte_spec.rb @@ -148,7 +148,7 @@ it 'raises a VersionError exception' do expect { described_class.create(json: json, module_name: module_name) } .to raise_error(Svelte::VersionError, - 'Invalid Swagger version spec supplied. Svelte supports Swagger v2 only') + '"swagger" field is empty. Svelte only supports Swagger v2.0.') end end end