Sha256: 2a5987c3265943c4b28d974426d3f5c062ccf6f072b9247e2b6928c456c780d5

Contents?: true

Size: 832 Bytes

Versions: 2

Compression:

Stored size: 832 Bytes

Contents

# frozen_string_literal: true

require 'securerandom'

require 'api-tester/definition/fields/field'

module ApiTester
  # Class for defining email fields in contract
  class EmailField < Field
    attr_accessor :randomize

    def initialize(name:, default: 'test@test.com', required: false, randomize: false)
      super name: name, default: default, required: required
      self.randomize = randomize
    end

    def default
      # Since many APIs have unique email checks, this allows us to generate hopefully unique emails
      if randomize
        "test#{SecureRandom.hex(10)}@test.com"
      else
        super
      end
    end

    def negative_boundary_values
      super +
        [
          'string',
          123,
          1,
          0,
          true,
          false,
          {}
        ]
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
api-tester-1.1.3 lib/api-tester/definition/fields/email_field.rb
api-tester-1.1.2 lib/api-tester/definition/fields/email_field.rb