-
-
Notifications
You must be signed in to change notification settings - Fork 62
Expand file tree
/
Copy pathconfiguration.rb
More file actions
91 lines (79 loc) · 2.75 KB
/
configuration.rb
File metadata and controls
91 lines (79 loc) · 2.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
require 'logger'
module CypressOnRails
class Configuration
attr_accessor :api_prefix
attr_accessor :install_folder
attr_accessor :use_middleware
attr_accessor :use_vcr_middleware
attr_accessor :use_vcr_use_cassette_middleware
attr_accessor :before_request
attr_accessor :logger
attr_accessor :vcr_options
# Server hooks for managing test lifecycle
attr_accessor :before_server_start
attr_accessor :after_server_start
attr_accessor :after_transaction_start
attr_accessor :after_state_reset
attr_accessor :before_server_stop
# Server configuration
attr_accessor :server_host
attr_accessor :server_port
attr_accessor :transactional_server
# HTTP path to check for server readiness (default: '/')
# Can be set via CYPRESS_RAILS_READINESS_PATH environment variable
attr_accessor :server_readiness_path
# Timeout in seconds for individual HTTP readiness checks (default: 5)
# Can be set via CYPRESS_RAILS_READINESS_TIMEOUT environment variable
attr_accessor :server_readiness_timeout
# Attributes for backwards compatibility
def cypress_folder
warn "cypress_folder is deprecated, please use install_folder"
install_folder
end
def cypress_folder=(v)
warn "cypress_folder= is deprecated, please use install_folder"
self.install_folder = v
end
def initialize
reset
end
alias :use_middleware? :use_middleware
alias :use_vcr_middleware? :use_vcr_middleware
alias :use_vcr_use_cassette_middleware? :use_vcr_use_cassette_middleware
def reset
self.api_prefix = ''
self.install_folder = 'spec/e2e'
self.use_middleware = true
self.use_vcr_middleware = false
self.use_vcr_use_cassette_middleware = false
self.before_request = -> (request) {}
self.logger = Logger.new(STDOUT)
self.vcr_options = {}
# Server hooks
self.before_server_start = nil
self.after_server_start = nil
self.after_transaction_start = nil
self.after_state_reset = nil
self.before_server_stop = nil
# Server configuration
self.server_host = ENV.fetch('CYPRESS_RAILS_HOST', 'localhost')
self.server_port = ENV.fetch('CYPRESS_RAILS_PORT', nil)
self.transactional_server = true
self.server_readiness_path = ENV.fetch('CYPRESS_RAILS_READINESS_PATH', '/')
self.server_readiness_timeout = ENV.fetch('CYPRESS_RAILS_READINESS_TIMEOUT', '5').to_i
end
def tagged_logged
if logger.respond_to?(:tagged)
logger.tagged('CY_DEV') { yield }
else
yield
end
end
end
def self.configuration
@configuration ||= Configuration.new
end
def self.configure
yield configuration if block_given?
end
end