diff options
author | Brett Walker <bwalker@gitlab.com> | 2018-01-11 14:16:22 +0100 |
---|---|---|
committer | Brett Walker <bwalker@gitlab.com> | 2018-01-22 17:25:10 +0100 |
commit | 1a075899007da589a788b6b95c4b1f2a6396499d (patch) | |
tree | a5017cf40513bc180d237c92fd7b825709cbd864 | |
parent | b8189816214e817605082516e9d8b604dc851d58 (diff) | |
download | gitlab-ce-1a075899007da589a788b6b95c4b1f2a6396499d.tar.gz |
created new 'Runtime::Session' and refactored 'Browser::Session'
-rw-r--r-- | qa/qa.rb | 1 | ||||
-rw-r--r-- | qa/qa/runtime/api.rb | 29 | ||||
-rw-r--r-- | qa/qa/runtime/browser.rb | 15 | ||||
-rw-r--r-- | qa/qa/runtime/session.rb | 27 |
4 files changed, 32 insertions, 40 deletions
@@ -16,6 +16,7 @@ module QA autoload :Browser, 'qa/runtime/browser' autoload :Env, 'qa/runtime/env' autoload :API, 'qa/runtime/api' + autoload :Session, 'qa/runtime/session' end ## diff --git a/qa/qa/runtime/api.rb b/qa/qa/runtime/api.rb index d72c7a2e465..05df1af5301 100644 --- a/qa/qa/runtime/api.rb +++ b/qa/qa/runtime/api.rb @@ -16,33 +16,10 @@ module QA # In case of an address that is a symbol we will try to guess address # based on `Runtime::Scenario#something_address`. def self.get(address, page, *args) - page = self.add_query_values(page, args) - API::Response.new(Faraday.get(API::Client::Session.new(address, page).address)) - end - - def self.add_query_values(path, args) - if args.any? - query_string = Hash(*args).map { |key, value| "#{key}=#{value}" }.join('&') - - if query_string - path << (path.index('?') ? '&' : '?') - path << query_string - end - end - path - end - - class Session - attr_reader :address - - def initialize(instance, page = nil) - @instance = instance - @address = host + (page.is_a?(String) ? page : page&.path) - end - - def host - @instance.is_a?(Symbol) ? Runtime::Scenario.send("#{@instance}_address") : @instance.to_s + session = Session.new(address, page).tap do |s| + s.add_query_values(args) end + API::Response.new(Faraday.get(session.address)) end end diff --git a/qa/qa/runtime/browser.rb b/qa/qa/runtime/browser.rb index 14b2a488760..7882c8a0947 100644 --- a/qa/qa/runtime/browser.rb +++ b/qa/qa/runtime/browser.rb @@ -90,22 +90,9 @@ module QA end end - class Session + class Session < QA::Runtime::Session include Capybara::DSL - def initialize(instance, page = nil) - @instance = instance - @address = host + page&.path - end - - def host - if @instance.is_a?(Symbol) - Runtime::Scenario.send("#{@instance}_address") - else - @instance.to_s - end - end - def perform(&block) visit(@address) diff --git a/qa/qa/runtime/session.rb b/qa/qa/runtime/session.rb new file mode 100644 index 00000000000..1a92455221a --- /dev/null +++ b/qa/qa/runtime/session.rb @@ -0,0 +1,27 @@ +module QA + module Runtime + class Session + attr_reader :address + + def initialize(instance, page = nil) + @instance = instance + @address = host + (page.is_a?(String) ? page : page&.path) + end + + def host + @instance.is_a?(Symbol) ? Runtime::Scenario.send("#{@instance}_address") : @instance.to_s + end + + def add_query_values(args) + if args.any? + query_string = Hash(*args).map { |key, value| "#{key}=#{value}" }.join('&') + + if query_string + @address << (@address.index('?') ? '&' : '?') + @address << query_string + end + end + end + end + end +end |