Class: ApiTester::EmailField

Inherits:
Field
  • Object
show all
Defined in:
lib/api-tester/definition/fields/email_field.rb

Overview

Class for defining email fields in contract

Instance Attribute Summary collapse

Attributes inherited from Field

#has_key, #is_seen, #name, #required

Instance Method Summary collapse

Methods inherited from Field

#display_class, #fields, #good_cases, #is_not_required, #is_required, #seen, #subfields?, #type

Constructor Details

#initialize(name:, default: '[email protected]', required: false, randomize: false) ⇒ EmailField

Returns a new instance of EmailField.



12
13
14
15
# File 'lib/api-tester/definition/fields/email_field.rb', line 12

def initialize(name:, default: '[email protected]', required: false, randomize: false)
  super name: name, default: default, required: required
  self.randomize = randomize
end

Instance Attribute Details

#randomizeObject

Returns the value of attribute randomize.



10
11
12
# File 'lib/api-tester/definition/fields/email_field.rb', line 10

def randomize
  @randomize
end

Instance Method Details

#defaultObject



17
18
19
20
21
22
23
24
# File 'lib/api-tester/definition/fields/email_field.rb', line 17

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

#negative_boundary_valuesObject



26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/api-tester/definition/fields/email_field.rb', line 26

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