Module: Workarea::Factories::Segment

Defined in:
lib/workarea/testing/factories/segment.rb

Instance Method Summary collapse

Instance Method Details

#create_life_cycle_segmentsObject



6
7
8
# File 'lib/workarea/testing/factories/segment.rb', line 6

def create_life_cycle_segments
  Workarea::Segment::LifeCycle.create!
end

#create_segment(overrides = {}) ⇒ Object



10
11
12
13
# File 'lib/workarea/testing/factories/segment.rb', line 10

def create_segment(overrides = {})
  attributes = factory_defaults(:segment).merge(overrides)
  Workarea::Segment.create!(attributes)
end

#create_visit(overrides = {}) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/workarea/testing/factories/segment.rb', line 15

def create_visit(overrides = {})
  attributes = sample_rack_env.merge(overrides.except(:email, :sessions))
  result = Workarea::Visit.new(attributes)

  if overrides[:email].present?
    result.cookies.signed[:email] = overrides[:email]
  end

  if overrides[:sessions].present?
    result.cookies[:sessions] = overrides[:sessions]
  end

  if overrides.key?(:logged_in)
    result.stubs(logged_in?: overrides[:logged_in])
  end

  result
end

#sample_rack_envObject



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/workarea/testing/factories/segment.rb', line 34

def sample_rack_env
  Rails.application.env_config.merge(
    'rack.version' => [1, 3],
    'rack.multithread' => true,
    'rack.multiprocess' => true,
    'rack.run_once' => false,
    'REQUEST_METHOD' => 'GET',
    'SERVER_NAME' => 'www.example.com',
    'SERVER_PORT' => '80',
    'QUERY_STRING' => '',
    'PATH_INFO' => '/current_user.json',
    'rack.url_scheme' => 'http',
    'HTTPS' => 'off',
    'SCRIPT_NAME' => '',
    'CONTENT_LENGTH' => '0',
    'rack.test' => true,
    'REMOTE_ADDR' => '127.0.0.1',
    'REQUEST_URI' => '/current_user.json',
    'HTTP_HOST' => 'www.example.com',
    'CONTENT_TYPE' => nil,
    'HTTP_ACCEPT' => 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5',
    'HTTP_COOKIE' => '',
    'ORIGINAL_FULLPATH' => '/current_user.json',
    'ORIGINAL_SCRIPT_NAME' => ''
  )
end