jacoblearned/kitchen-pulumi

View on GitHub
lib/kitchen/pulumi/config_schemas/stack_settings_hash.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
# frozen_string_literal: true

require 'dry-validation'
require 'kitchen/pulumi/config_schemas'

module Kitchen
  module Pulumi
    ConfigSchemas::StackSettingsHash = ::Dry::Validation.Schema do
      configure do
        config.messages_file = "#{__dir__}/error_messages.yml"

        def stack_settings_hash?(value)
          value.all? { |_, nested_hash| nested_hash.is_a?(Hash) }
        end
      end

      required(:value).maybe(:hash?, :stack_settings_hash?)
    end
  end
end