Sha256: b5156e5c20a07968c7e1d828ce583536c9e93eec880560f91c372153d369d360

Contents?: true

Size: 895 Bytes

Versions: 10

Compression:

Stored size: 895 Bytes

Contents

# frozen_string_literal: true

module Spout
  module Tests
    module DomainFormat
      # Verifies the format of a domain.
      def assert_domain_format(item)
        result = begin
          json = JSON.parse(File.read(item))
          if json.is_a?(Array)
            json.empty? || json.select { |o| !o.is_a?(Hash) }.empty?
          else
            false
          end
        rescue JSON::ParserError
          false
        end
        message = \
          "Must be an array of choice hashes. Ex:\n[\n  {\n    \"value\":     "\
          "   \"1\",\n    \"display_name\": \"Option 1\",\n    \"description\""\
          ":  \"...\"\n  },\n  { ... },\n  ...\n]"
        assert result, message
      end

      Dir.glob("domains/**/*.json").each do |file|
        define_method("test_domain_format: #{file}") do
          assert_domain_format file
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
spout-1.0.0.beta1 lib/spout/tests/domain_format.rb
spout-0.14.1 lib/spout/tests/domain_format.rb
spout-0.14.0 lib/spout/tests/domain_format.rb
spout-0.14.0.rc lib/spout/tests/domain_format.rb
spout-0.14.0.beta3 lib/spout/tests/domain_format.rb
spout-0.14.0.beta2 lib/spout/tests/domain_format.rb
spout-0.14.0.beta1 lib/spout/tests/domain_format.rb
spout-0.13.0 lib/spout/tests/domain_format.rb
spout-0.13.0.beta2 lib/spout/tests/domain_format.rb
spout-0.13.0.beta1 lib/spout/tests/domain_format.rb