nonnative 1.43.0 → 1.44.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 62f3c862b3f62e6cbb6ada5723b5d533db060ef8c801a60b1fccbbc50d3dd99c
4
- data.tar.gz: 22d05748db137d668e7366bed697abdffe6fddb97a0a5c445a6dc32568013c14
3
+ metadata.gz: f2baafe2a724951013706a01a247386b01a6eecde9194f6cefbc04348e787f07
4
+ data.tar.gz: 99d3a81f1ba4ac6bbc217d0aa48f8d37b11682e6bc18067c07a2e9cf62cd6580
5
5
  SHA512:
6
- metadata.gz: da5be400a905ea0f6eeb6d62609664046e246ed95ea0f32661f03d1fe242d1cdefe3d2d787c8f92c770cc991237a39aa132bdedcdc241f29db5119ed9feebc29
7
- data.tar.gz: f37ddb08dc0f67363f0bb5bca5f2611999d9dd2ebe22e26d3b8bcbe0f7bbb6a0564c3010a3e5eeca98c404712cfb8364f945194c579235d5158b7a660908aab9
6
+ metadata.gz: cf6dc4e8c8e5e7501c83f05080faba0cda93813ce47cb6b548341114c83f41757228dd0a9c58a2e326c828e7873cb7b85cd121e8ed5eb52ce92a6ebfa636581b
7
+ data.tar.gz: 831daa9769dcb510ac649010bd430bc74d335e93ce9f1791ebd420b37570735ba7cbb46ddb810310ccc0ed659138526e8b84060117c4e048cf55b9e9e8388298
data/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [1.44.0](https://github.com/alexfalkowski/nonnative/compare/v1.43.0...v1.44.0) (2021-05-01)
6
+
7
+
8
+ ### Features
9
+
10
+ * move to reusable steps ([#84](https://github.com/alexfalkowski/nonnative/issues/84)) ([37b6175](https://github.com/alexfalkowski/nonnative/commit/37b6175e920dfb70f3d6f13226240dd045c2db3d))
11
+
5
12
  ## [1.43.0](https://github.com/alexfalkowski/nonnative/compare/v1.42.2...v1.43.0) (2021-04-30)
6
13
 
7
14
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nonnative (1.43.0)
4
+ nonnative (1.44.0)
5
5
  concurrent-ruby (~> 1.0, >= 1.0.5)
6
6
  cucumber (>= 6, < 7)
7
7
  grpc (>= 1, < 2)
data/README.md CHANGED
@@ -505,6 +505,13 @@ server.proxy.close_all # To use close_all.
505
505
  server.proxy.reset # To reset it back to a good state.
506
506
  ```
507
507
 
508
+ With cucumber:
509
+
510
+ ```cucumber
511
+ Given I set the proxy for process 'process_1' to 'close_all'
512
+ Then And I should reset the proxy for process 'process_1'
513
+ ```
514
+
508
515
  ###### Servers
509
516
 
510
517
  Setup it up programmatically:
@@ -517,6 +524,13 @@ server.proxy.close_all # To use close_all.
517
524
  server.proxy.reset # To reset it back to a good state.
518
525
  ```
519
526
 
527
+ With cucumber:
528
+
529
+ ```cucumber
530
+ Given I set the proxy for server 'server_1' to 'close_all'
531
+ Then And I should reset the proxy for server 'server_1'
532
+ ```
533
+
520
534
  ###### Services
521
535
 
522
536
  Setup it up programmatically:
@@ -529,6 +543,13 @@ service.proxy.close_all # To use close_all.
529
543
  service.proxy.reset # To reset it back to a good state.
530
544
  ```
531
545
 
546
+ With cucumber:
547
+
548
+ ```cucumber
549
+ Given I set the proxy for service 'service_1' to 'close_all'
550
+ Then And I should reset the proxy for service 'service_1'
551
+ ```
552
+
532
553
  ### Go
533
554
 
534
555
  As we love using go as a language for services we have added support to start binaries with defined parameters. This expects that you build your services in the format of `command sub_command --params`
data/lib/nonnative.rb CHANGED
@@ -11,11 +11,13 @@ require 'rest-client'
11
11
  require 'puma'
12
12
  require 'puma/server'
13
13
  require 'concurrent'
14
+ require 'cucumber'
14
15
 
15
16
  require 'nonnative/version'
16
17
  require 'nonnative/error'
17
18
  require 'nonnative/start_error'
18
19
  require 'nonnative/stop_error'
20
+ require 'nonnative/not_found_error'
19
21
  require 'nonnative/timeout'
20
22
  require 'nonnative/port'
21
23
  require 'nonnative/configuration'
@@ -44,6 +46,7 @@ require 'nonnative/invalid_data_socket_pair'
44
46
  require 'nonnative/socket_pair_factory'
45
47
  require 'nonnative/strategy'
46
48
  require 'nonnative/go_command'
49
+ require 'nonnative/cucumber'
47
50
 
48
51
  module Nonnative
49
52
  class << self
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'cucumber'
4
-
5
3
  Before do
6
4
  Nonnative.start
7
5
  end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ Given('I set the proxy for process {string} to {string}') do |name, operation|
4
+ server = Nonnative.pool.process_by_name(name)
5
+ server.proxy.send(operation)
6
+ end
7
+
8
+ Given('I set the proxy for server {string} to {string}') do |name, operation|
9
+ server = Nonnative.pool.server_by_name(name)
10
+ server.proxy.send(operation)
11
+ end
12
+
13
+ Given('I set the proxy for service {string} to {string}') do |name, operation|
14
+ service = Nonnative.pool.service_by_name(name)
15
+ service.proxy.send(operation)
16
+ end
17
+
18
+ Then('I should reset the proxy for process {string}') do |name|
19
+ server = Nonnative.pool.process_by_name(name)
20
+ server.proxy.reset
21
+ end
22
+
23
+ Then('I should reset the proxy for server {string}') do |name|
24
+ server = Nonnative.pool.server_by_name(name)
25
+ server.proxy.reset
26
+ end
27
+
28
+ Then('I should reset the proxy for service {string}') do |name|
29
+ service = Nonnative.pool.service_by_name(name)
30
+ service.proxy.reset
31
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nonnative
4
+ class NotFoundError < Nonnative::Error
5
+ end
6
+ end
@@ -17,24 +17,28 @@ module Nonnative
17
17
  end
18
18
 
19
19
  def process_by_name(name)
20
- index = configuration.processes.find_index { |s| s.name == name }
21
- processes[index].first
20
+ processes[runner_index(configuration.processes, name)].first
22
21
  end
23
22
 
24
23
  def server_by_name(name)
25
- index = configuration.servers.find_index { |s| s.name == name }
26
- servers[index].first
24
+ servers[runner_index(configuration.servers, name)].first
27
25
  end
28
26
 
29
27
  def service_by_name(name)
30
- index = configuration.services.find_index { |s| s.name == name }
31
- services[index]
28
+ services[runner_index(configuration.services, name)]
32
29
  end
33
30
 
34
31
  private
35
32
 
36
33
  attr_reader :configuration
37
34
 
35
+ def runner_index(runners, name)
36
+ index = runners.find_index { |s| s.name == name }
37
+ raise NotFoundError, "Could not find runner with name '#{name}'" if index.nil?
38
+
39
+ index
40
+ end
41
+
38
42
  def processes
39
43
  @processes ||= configuration.processes.map do |p|
40
44
  [Nonnative::Process.new(p), Nonnative::Port.new(p)]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nonnative
4
- VERSION = '1.43.0'
4
+ VERSION = '1.44.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nonnative
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.43.0
4
+ version: 1.44.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Falkowski
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-04-30 00:00:00.000000000 Z
11
+ date: 2021-05-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -265,6 +265,7 @@ files:
265
265
  - lib/nonnative/configuration_runner.rb
266
266
  - lib/nonnative/configuration_server.rb
267
267
  - lib/nonnative/configuration_service.rb
268
+ - lib/nonnative/cucumber.rb
268
269
  - lib/nonnative/delay_socket_pair.rb
269
270
  - lib/nonnative/error.rb
270
271
  - lib/nonnative/fault_injection_proxy.rb
@@ -275,6 +276,7 @@ files:
275
276
  - lib/nonnative/invalid_data_socket_pair.rb
276
277
  - lib/nonnative/manual.rb
277
278
  - lib/nonnative/no_proxy.rb
279
+ - lib/nonnative/not_found_error.rb
278
280
  - lib/nonnative/observability.rb
279
281
  - lib/nonnative/pool.rb
280
282
  - lib/nonnative/port.rb