Module: Lambdatest::Sdk::Utils

Defined in:
lib/lambdatest/sdk/utils.rb,
lib/lambdatest/sdk/utils/logger.rb,
lib/lambdatest/sdk/utils/version.rb,
lib/lambdatest/sdk/utils/constants.rb

Constant Summary collapse

VERSION =
"1.0.2".freeze

Class Method Summary collapse

Class Method Details

.fetch_dom_serializerObject



25
26
27
# File 'lib/lambdatest/sdk/utils.rb', line 25

def self.fetch_dom_serializer
  make_api_call('/domserializer', method: :get,data: nil)
end

.get_logger(pkgName) ⇒ Object



27
28
29
30
31
32
# File 'lib/lambdatest/sdk/utils/logger.rb', line 27

def self.get_logger(pkgName)
  logger = Logger.new(STDOUT)
  logger.level = log_level
  logger.progname = pkgName
  logger
end

.get_pkg_nameObject



5
6
7
# File 'lib/lambdatest/sdk/utils/constants.rb', line 5

def self.get_pkg_name
  "@lambdatest/lambdatest-sdk-utils".freeze
end

.get_smart_ui_server_addressObject



9
10
11
12
13
14
# File 'lib/lambdatest/sdk/utils/constants.rb', line 9

def self.get_smart_ui_server_address
  unless ENV.fetch('SMARTUI_SERVER_ADDRESS')
    raise 'SmartUI server address not found'
  end
  ENV.fetch('SMARTUI_SERVER_ADDRESS')
end

.is_smartui_enabled?Boolean

Returns:

  • (Boolean)


15
16
17
18
19
20
21
22
23
# File 'lib/lambdatest/sdk/utils.rb', line 15

def self.is_smartui_enabled?
  begin
    make_api_call("/healthcheck", method: :get, data: nil)
    return true
  rescue => exception
     @logger.debug("#{exception.message}")
    return false
  end
end

.log_levelObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/lambdatest/sdk/utils/logger.rb', line 7

def self.log_level
  if ENV['LT_SDK_DEBUG'] == 'true'
    Logger::DEBUG
  else
    log_level_str = ENV.fetch('LT_SDK_LOG_LEVEL', 'info').downcase
    case log_level_str
    when 'debug'
      Logger::DEBUG
    when 'warning'
      Logger::WARN
    when 'error'
      Logger::ERROR
    when 'critical'
      Logger::FATAL
    else
      Logger::INFO
    end
  end
end

.make_api_call(endpoint, method: :get, data: nil) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/lambdatest/sdk/utils.rb', line 41

def self.make_api_call(endpoint, method: :get, data: nil)
  uri = URI("#{get_smart_ui_server_address}#{endpoint}")

  response = case method
             when :get
               Net::HTTP.get_response(uri)
             when :post
               Net::HTTP.post(uri, data, 'Content-Type' => 'application/json')
             end

  unless response.is_a? Net::HTTPSuccess
      raise StandardError, "Failed with HTTP error code: #{response.code}"
  end

  response.is_a?(Net::HTTPSuccess) ? response.body : nil
end

.post_snapshot(snapshot, pkg_name, options = {}) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
# File 'lib/lambdatest/sdk/utils.rb', line 29

def self.post_snapshot(snapshot,pkg_name,options={})
  uri = URI("#{get_smart_ui_server_address}/snapshot")
  data = JSON.generate({
    snapshot: {
      **snapshot,
      options: options
    },
    testType: pkg_name
  })
  make_api_call('/snapshot', method: :post, data: data)
end