flu_shot 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +3 -3
- data/README.md +6 -5
- data/flu_shot.gemspec +1 -1
- data/lib/flu_shot.rb +2 -2
- data/lib/flu_shot/version.rb +1 -1
- data/specs/integration/inject_spec.rb +11 -2
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 92dc8c66c089288acb1fa1047c6aa3cabf63dfc65435bfb360cc340963898b5e
|
4
|
+
data.tar.gz: 2e752359f28d198afbfbf6d260bd7d16d1ee98932048d2aacc567b4d922ce098
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6653c0206835101d9715a12487263cd89bef5cd89f5d44952781b481d93114934c22fa431747ebfc15433b6928d8bb035438fd781a2ba12872fca01d60ef78ec
|
7
|
+
data.tar.gz: 04a071463e16bf0d02afab4beae520ea322207ae5befb0c98afb6affee46557b67151b18dc0299b49f86d2e49f2bf114bb4d9d1cf805d9593a1839ccf9cb337f
|
data/Gemfile.lock
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
flu_shot (0.
|
4
|
+
flu_shot (0.2.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
9
|
minitest (5.14.0)
|
10
10
|
mocha (1.11.2)
|
11
|
-
rake (
|
11
|
+
rake (13.0.1)
|
12
12
|
redis (4.1.3)
|
13
13
|
|
14
14
|
PLATFORMS
|
@@ -19,7 +19,7 @@ DEPENDENCIES
|
|
19
19
|
flu_shot!
|
20
20
|
minitest (~> 5.0)
|
21
21
|
mocha (~> 1.11.0)
|
22
|
-
rake
|
22
|
+
rake
|
23
23
|
redis (~> 4.1.0)
|
24
24
|
|
25
25
|
BUNDLED WITH
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
|
1
|
+
<img align='right' height='150px' src="https://raw.githubusercontent.com/Nucc/flu_shot/assets/logo.png"/>
|
2
2
|
|
3
|
-
|
3
|
+
# FluShot
|
4
4
|
|
5
5
|
FluShot is a Chaos Testing tool for Ruby applications. It can inject unexpected behaviors into your system, like adding extra latency to a network request, simulating infinite loops, raising exceptions.
|
6
6
|
|
@@ -13,9 +13,10 @@ First we specify the area where the flu shot needs to be injected:
|
|
13
13
|
```
|
14
14
|
class UserController < ApplicationController
|
15
15
|
def show
|
16
|
-
|
17
|
-
|
18
|
-
|
16
|
+
# Inject some harmful code, the behaviour is specified in the prespcription definition later.
|
17
|
+
FluShot.inject(:user_controller_show)
|
18
|
+
|
19
|
+
User.find(params[:user_id])
|
19
20
|
end
|
20
21
|
end
|
21
22
|
```
|
data/flu_shot.gemspec
CHANGED
@@ -37,7 +37,7 @@ Gem::Specification.new do |spec|
|
|
37
37
|
spec.require_paths = ["lib"]
|
38
38
|
|
39
39
|
spec.add_development_dependency "bundler", "~> 1.17"
|
40
|
-
spec.add_development_dependency "rake"
|
40
|
+
spec.add_development_dependency "rake"
|
41
41
|
spec.add_development_dependency "minitest", "~> 5.0"
|
42
42
|
spec.add_development_dependency "mocha", "~> 1.11.0"
|
43
43
|
spec.add_development_dependency "redis", "~> 4.1.0"
|
data/lib/flu_shot.rb
CHANGED
@@ -13,13 +13,13 @@ module FluShot
|
|
13
13
|
|
14
14
|
class Error < StandardError; end
|
15
15
|
|
16
|
-
def self.inject(name, &block)
|
16
|
+
def self.inject(name, params = {}, &block)
|
17
17
|
if !before_filter.call
|
18
18
|
return
|
19
19
|
end
|
20
20
|
|
21
21
|
Prescription.for(name).each do |prescription|
|
22
|
-
Vaccine.find(prescription[:vaccine]).new(prescription[:params])
|
22
|
+
Vaccine.find(prescription[:vaccine]).new(prescription[:params].merge(params))
|
23
23
|
end
|
24
24
|
|
25
25
|
# @test
|
data/lib/flu_shot/version.rb
CHANGED
@@ -6,10 +6,10 @@ describe :inject do
|
|
6
6
|
label :injection_test_vaccine
|
7
7
|
|
8
8
|
def initialize(*args)
|
9
|
-
test
|
9
|
+
test(*args)
|
10
10
|
end
|
11
11
|
|
12
|
-
def test
|
12
|
+
def test(*args)
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
@@ -31,4 +31,13 @@ describe :inject do
|
|
31
31
|
Rand123.any_instance.expects(:test).once
|
32
32
|
FluShot.inject(:injection_name)
|
33
33
|
end
|
34
|
+
|
35
|
+
it 'can receive local context variables' do
|
36
|
+
FluShot::Prescription.spec(:injection_name) do |p|
|
37
|
+
p.add(:injection_test_vaccine, {})
|
38
|
+
end
|
39
|
+
|
40
|
+
Rand123.any_instance.expects(:test).with(account: 'account_name').once
|
41
|
+
FluShot.inject(:injection_name, account: 'account_name')
|
42
|
+
end
|
34
43
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flu_shot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Laszlo Papp
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-03-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|