lib/rspec/openapi/hooks.rb in rspec-openapi-0.6.1 vs lib/rspec/openapi/hooks.rb in rspec-openapi-0.7.0
- old
+ new
@@ -1,11 +1,13 @@
require 'rspec'
+require 'rspec/openapi/components_updater'
require 'rspec/openapi/default_schema'
require 'rspec/openapi/record_builder'
require 'rspec/openapi/schema_builder'
require 'rspec/openapi/schema_file'
require 'rspec/openapi/schema_merger'
+require 'rspec/openapi/schema_cleaner'
path_records = Hash.new { |h, k| h[k] = [] }
error_records = {}
RSpec.configuration.after(:each) do |example|
@@ -21,16 +23,21 @@
path_records.each do |path, records|
RSpec::OpenAPI::SchemaFile.new(path).edit do |spec|
schema = RSpec::OpenAPI::DefaultSchema.build(title)
schema[:info].merge!(RSpec::OpenAPI.info)
RSpec::OpenAPI::SchemaMerger.merge!(spec, schema)
+ new_from_zero = {}
records.each do |record|
begin
- RSpec::OpenAPI::SchemaMerger.merge!(spec, RSpec::OpenAPI::SchemaBuilder.build(record))
+ record_schema = RSpec::OpenAPI::SchemaBuilder.build(record)
+ RSpec::OpenAPI::SchemaMerger.merge!(spec, record_schema)
+ RSpec::OpenAPI::SchemaMerger.merge!(new_from_zero, record_schema)
rescue StandardError, NotImplementedError => e # e.g. SchemaBuilder raises a NotImplementedError
error_records[e] = record # Avoid failing the build
end
end
+ RSpec::OpenAPI::SchemaCleaner.cleanup!(spec, new_from_zero)
+ RSpec::OpenAPI::ComponentsUpdater.update!(spec, new_from_zero)
end
end
if error_records.any?
error_message = <<~EOS
RSpec::OpenAPI got errors building #{error_records.size} requests