liveqa 1.4.6 → 1.8.3
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/.rubocop.yml +2 -0
- data/.travis.yml +1 -0
- data/README.md +94 -7
- data/lib/liveqa/api_operation/delete.rb +38 -0
- data/lib/liveqa/api_resource.rb +7 -6
- data/lib/liveqa/async_handlers/base.rb +1 -3
- data/lib/liveqa/config.rb +35 -11
- data/lib/liveqa/event.rb +4 -10
- data/lib/liveqa/group.rb +14 -0
- data/lib/liveqa/identity.rb +16 -0
- data/lib/liveqa/liveqa_object.rb +48 -8
- data/lib/liveqa/message.rb +31 -10
- data/lib/liveqa/plugins/rack/middleware.rb +50 -36
- data/lib/liveqa/plugins/rails/data.rb +19 -0
- data/lib/liveqa/plugins/rails/middleware_data.rb +2 -18
- data/lib/liveqa/plugins/sidekiq/client_middleware.rb +1 -1
- data/lib/liveqa/plugins/sidekiq/server_middleware.rb +2 -2
- data/lib/liveqa/plugins.rb +1 -0
- data/lib/liveqa/request.rb +2 -0
- data/lib/liveqa/store.rb +1 -1
- data/lib/liveqa/util.rb +81 -1
- data/lib/liveqa/version.rb +1 -1
- data/lib/liveqa/watcher.rb +15 -0
- data/lib/liveqa.rb +82 -4
- data/spec/lib/liveqa/api_resource_spec.rb +109 -0
- data/spec/lib/liveqa/async_handlers/base_spec.rb +13 -3
- data/spec/lib/liveqa/config_spec.rb +8 -6
- data/spec/lib/liveqa/event_spec.rb +2 -23
- data/spec/lib/liveqa/group_spec.rb +15 -0
- data/spec/lib/liveqa/identity_spec.rb +15 -0
- data/spec/lib/liveqa/liveqa_object_spec.rb +53 -2
- data/spec/lib/liveqa/message_spec.rb +75 -8
- data/spec/lib/liveqa/plugins/rack/middleware_spec.rb +8 -2
- data/spec/lib/liveqa/plugins/rails/data_spec.rb +22 -0
- data/spec/lib/liveqa/plugins/rails/middleware_data_spec.rb +2 -23
- data/spec/lib/liveqa/plugins/sidekiq/server_middleware_spec.rb +6 -12
- data/spec/lib/liveqa/util_spec.rb +40 -0
- data/spec/lib/liveqa/watcher_spec.rb +25 -0
- data/spec/lib/liveqa_spec.rb +88 -5
- data/spec/spec_helper.rb +3 -1
- metadata +17 -2
@@ -3,9 +3,77 @@ require 'spec_helper'
|
|
3
3
|
describe LiveQA::Message do
|
4
4
|
subject(:base) { LiveQA::Message }
|
5
5
|
|
6
|
-
describe '#
|
6
|
+
describe '#base' do
|
7
|
+
let(:expected_hash) {{
|
8
|
+
message_id: kind_of(String),
|
9
|
+
timestamp: kind_of(String),
|
10
|
+
session_tracker_id: kind_of(String),
|
11
|
+
}}
|
12
|
+
|
13
|
+
it { expect(base.base).to match(expected_hash) }
|
14
|
+
|
15
|
+
context 'with store' do
|
16
|
+
before do
|
17
|
+
LiveQA::Store.set(:session_tracker_id, 'hello')
|
18
|
+
end
|
19
|
+
|
20
|
+
let(:expected_hash) {{
|
21
|
+
message_id: kind_of(String),
|
22
|
+
timestamp: kind_of(String),
|
23
|
+
session_tracker_id: 'hello',
|
24
|
+
}}
|
25
|
+
|
26
|
+
it { expect(base.base).to match(expected_hash) }
|
27
|
+
end
|
28
|
+
|
29
|
+
context 'with metadata' do
|
30
|
+
|
31
|
+
|
32
|
+
let(:expected_hash) {{
|
33
|
+
message_id: kind_of(String),
|
34
|
+
timestamp: kind_of(String),
|
35
|
+
session_tracker_id: kind_of(String),
|
36
|
+
metadata: {
|
37
|
+
deployment_id: 42
|
38
|
+
}
|
39
|
+
}}
|
40
|
+
|
41
|
+
context 'hash type' do
|
42
|
+
before do
|
43
|
+
LiveQA.configurations.metadata = {
|
44
|
+
deployment_id: 42
|
45
|
+
}
|
46
|
+
end
|
47
|
+
|
48
|
+
it { expect(base.base).to match(expected_hash) }
|
49
|
+
end
|
50
|
+
|
51
|
+
context 'proc type' do
|
52
|
+
before do
|
53
|
+
LiveQA.configurations.metadata = {
|
54
|
+
deployment_id: lambda { 84 / 2 }
|
55
|
+
}
|
56
|
+
end
|
57
|
+
|
58
|
+
it { expect(base.base).to match(expected_hash) }
|
59
|
+
end
|
60
|
+
|
61
|
+
context 'proc & raise type' do
|
62
|
+
before do
|
63
|
+
LiveQA.configurations.metadata = {
|
64
|
+
deployment_id: -> { 84 / 2 },
|
65
|
+
other_id: -> { hello }
|
66
|
+
}
|
67
|
+
end
|
68
|
+
|
69
|
+
it { expect(base.base).to match(expected_hash) }
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
describe '#extended' do
|
7
76
|
let(:expected_hash) {{
|
8
|
-
tracker_id: kind_of(String),
|
9
77
|
message_id: kind_of(String),
|
10
78
|
timestamp: kind_of(String),
|
11
79
|
session_tracker_id: kind_of(String),
|
@@ -20,11 +88,11 @@ describe LiveQA::Message do
|
|
20
88
|
}
|
21
89
|
}}
|
22
90
|
|
23
|
-
it { expect(base.
|
91
|
+
it { expect(base.extended).to match(expected_hash) }
|
24
92
|
|
25
93
|
context 'with store' do
|
26
94
|
before do
|
27
|
-
LiveQA::Store.set(:
|
95
|
+
LiveQA::Store.set(:session_tracker_id, 'hello')
|
28
96
|
LiveQA::Store.set(:request,
|
29
97
|
url: 'http://www.test.com/',
|
30
98
|
ssl: true,
|
@@ -49,13 +117,12 @@ describe LiveQA::Message do
|
|
49
117
|
)
|
50
118
|
|
51
119
|
LiveQA::Store.bulk_set(
|
52
|
-
|
120
|
+
environment: 'production',
|
53
121
|
server_software: 'WEBrick/1.3.1 (Ruby/2.2.7/2017-03-28)'
|
54
122
|
)
|
55
123
|
end
|
56
124
|
|
57
125
|
let(:expected_hash) {{
|
58
|
-
tracker_id: 'hello',
|
59
126
|
message_id: kind_of(String),
|
60
127
|
timestamp: kind_of(String),
|
61
128
|
session_tracker_id: 'hello',
|
@@ -91,10 +158,10 @@ describe LiveQA::Message do
|
|
91
158
|
process_at: '2017-12-15T03:45:10Z',
|
92
159
|
args: ['LiveQA::Event']
|
93
160
|
},
|
94
|
-
|
161
|
+
environment: 'production'
|
95
162
|
}}
|
96
163
|
|
97
|
-
it { expect(base.
|
164
|
+
it { expect(base.extended).to match(expected_hash) }
|
98
165
|
end
|
99
166
|
end
|
100
167
|
|
@@ -4,7 +4,7 @@ require 'liveqa/plugins/rack/middleware'
|
|
4
4
|
|
5
5
|
describe LiveQA::Plugins::Rack::Middleware do
|
6
6
|
|
7
|
-
let(:app) {
|
7
|
+
let(:app) { lambda { |env| [200, {'Content-Type' => 'text/plain'}, ['All responses are OK']] } }
|
8
8
|
let(:middleware) { LiveQA::Plugins::Rack::Middleware.new(app) }
|
9
9
|
|
10
10
|
context 'reset the store' do
|
@@ -12,14 +12,20 @@ describe LiveQA::Plugins::Rack::Middleware do
|
|
12
12
|
2.times { middleware.call({}) }
|
13
13
|
end
|
14
14
|
|
15
|
-
it { expect(app.last_value).to eq(1) }
|
15
|
+
#it { expect(app.last_value).to eq(1) }
|
16
16
|
it { expect(LiveQA::Store.store).to eq({}) }
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'reset the store with error' do
|
20
|
+
allow(middleware).to receive(:call).and_raise(RuntimeError)
|
20
21
|
expect { middleware.call(error: true) }.to raise_error(RuntimeError)
|
21
22
|
|
22
23
|
expect(LiveQA::Store.store).to eq({})
|
23
24
|
end
|
24
25
|
|
26
|
+
it 'includes the secure flag in the cookie for a HTTPS connection' do
|
27
|
+
response = middleware.call({'HTTP_X_FORWARDED_SSL' => 'on'})
|
28
|
+
expect(response[1]['Set-Cookie']).to match(%r{liveqa_tracker_id.*secure.*})
|
29
|
+
end
|
30
|
+
|
25
31
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'rails'
|
3
|
+
require 'liveqa/plugins/rails/data'
|
4
|
+
|
5
|
+
describe LiveQA::Plugins::Rails::Data do
|
6
|
+
|
7
|
+
let(:middleware) { LiveQA::Plugins::Rails::Data }
|
8
|
+
|
9
|
+
describe '#store_data' do
|
10
|
+
|
11
|
+
context 'blank store' do
|
12
|
+
before { middleware.store_data }
|
13
|
+
|
14
|
+
let(:expected) {{
|
15
|
+
environment: kind_of(String)
|
16
|
+
}}
|
17
|
+
|
18
|
+
it { expect(LiveQA::Store.store).to match(expected) }
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
@@ -19,16 +19,9 @@ describe LiveQA::Plugins::Rails::MiddlewareData do
|
|
19
19
|
before { middleware.store_data(request) }
|
20
20
|
|
21
21
|
let(:expected) {{
|
22
|
-
environement: kind_of(String),
|
23
22
|
request: {
|
24
23
|
id: '42a'
|
25
|
-
}
|
26
|
-
stack: [
|
27
|
-
{
|
28
|
-
name: 'rails',
|
29
|
-
version: kind_of(String)
|
30
|
-
}
|
31
|
-
]
|
24
|
+
}
|
32
25
|
}}
|
33
26
|
|
34
27
|
it { expect(LiveQA::Store.store).to match(expected) }
|
@@ -37,31 +30,17 @@ describe LiveQA::Plugins::Rails::MiddlewareData do
|
|
37
30
|
context 'update the store' do
|
38
31
|
before do
|
39
32
|
LiveQA::Store.set(:request, { xhr: false })
|
40
|
-
LiveQA::Store.set(:stack, [{ name: 'rack' }])
|
41
33
|
end
|
42
34
|
before { middleware.store_data(request) }
|
43
35
|
|
44
36
|
let(:expected) {{
|
45
|
-
environement: kind_of(String),
|
46
37
|
request: {
|
47
38
|
id: '42a',
|
48
39
|
xhr: false
|
49
|
-
}
|
50
|
-
stack: [
|
51
|
-
{
|
52
|
-
name: 'rack'
|
53
|
-
},
|
54
|
-
{
|
55
|
-
name: 'rails',
|
56
|
-
version: kind_of(String)
|
57
|
-
}
|
58
|
-
]
|
40
|
+
}
|
59
41
|
}}
|
60
42
|
|
61
43
|
it { expect(LiveQA::Store.store).to match(expected) }
|
62
44
|
end
|
63
|
-
|
64
|
-
|
65
45
|
end
|
66
|
-
|
67
46
|
end
|
@@ -14,11 +14,7 @@ describe LiveQA::Plugins::Sidekiq::ServerMiddleware do
|
|
14
14
|
'queue' => 'default',
|
15
15
|
'jid' => '24cc849f71325b62ef470901',
|
16
16
|
'created_at' => 1513299839.2563882,
|
17
|
-
'
|
18
|
-
'tracker_id' => '06a09f70-6219-4860-babc-18aa47a62f7f',
|
19
|
-
'user_agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36',
|
20
|
-
'ip' => '127.0.0.1'
|
21
|
-
},
|
17
|
+
'liveqa_session_tracker_id' => '06a09f70-6219-4860-babc-18aa47a62f7f',
|
22
18
|
'enqueued_at' => 1513300328.8271549,
|
23
19
|
'error_message' => 'exit',
|
24
20
|
'error_class' => 'SystemExit',
|
@@ -38,22 +34,20 @@ describe LiveQA::Plugins::Sidekiq::ServerMiddleware do
|
|
38
34
|
before { middleware.call('MyWorker', job_attr, 'default') {} }
|
39
35
|
|
40
36
|
let(:expected) {{
|
41
|
-
|
42
|
-
user_agent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36',
|
43
|
-
ip: '127.0.0.1',
|
37
|
+
session_tracker_id: '06a09f70-6219-4860-babc-18aa47a62f7f',
|
44
38
|
worker: {
|
45
39
|
name: 'sidekiq',
|
46
40
|
version: kind_of(String),
|
47
41
|
queue: 'default',
|
48
42
|
class: 'MyWorker',
|
49
43
|
id: '24cc849f71325b62ef470901',
|
50
|
-
created_at: '2017-12-15T01:03:
|
51
|
-
process_at: '2017-12-15T01:12:
|
44
|
+
created_at: '2017-12-15T01:03:59.256Z',
|
45
|
+
process_at: '2017-12-15T01:12:08.827Z',
|
52
46
|
args: ['42'],
|
53
47
|
retried: true,
|
54
48
|
retry_number: 1,
|
55
|
-
failed_at: '2017-12-15T01:09:
|
56
|
-
}
|
49
|
+
failed_at: '2017-12-15T01:09:26.646Z'
|
50
|
+
},
|
57
51
|
}}
|
58
52
|
|
59
53
|
it { expect(LiveQA::Store.store).to match(expected) }
|
@@ -2,6 +2,15 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe LiveQA::Util do
|
4
4
|
|
5
|
+
describe '#camelize' do
|
6
|
+
it { expect(LiveQA::Util.except_keys({ a: 1, b: 2 }, :b)).to eq({ a: 1 }) }
|
7
|
+
end
|
8
|
+
|
9
|
+
describe '#camelize' do
|
10
|
+
it { expect(LiveQA::Util.camelize('model')).to eq("Model") }
|
11
|
+
it { expect(LiveQA::Util.camelize('my_model')).to eq("MyModel") }
|
12
|
+
end
|
13
|
+
|
5
14
|
describe '#compact' do
|
6
15
|
it { expect(LiveQA::Util.compact(test: nil, other: 'test')).to eq(other: 'test') }
|
7
16
|
end
|
@@ -120,4 +129,35 @@ describe LiveQA::Util do
|
|
120
129
|
it { expect(LiveQA::Util.deep_obfuscate_value(payload, fields)).to eq(expected) }
|
121
130
|
end
|
122
131
|
|
132
|
+
describe '.properties' do
|
133
|
+
before { LiveQA.configurations.custom_object_properties = { user: %w[id email name] }}
|
134
|
+
|
135
|
+
let(:group) { double('Group', id: 10, name: "John Doe", state: 'active', class: double('Class', name: 'Group')) }
|
136
|
+
let(:user) { double('User', id: 42, name: "John Doe", email: "admin@email.com", state: 'active', class: double('Class', name: 'User')) }
|
137
|
+
let(:error_message) {{ email: ["can't be blank", "Looks like you've entered an invalid email address"] }}
|
138
|
+
|
139
|
+
let(:expected) {{
|
140
|
+
'group' => {
|
141
|
+
'id' => group.id,
|
142
|
+
'name' => group.name
|
143
|
+
},
|
144
|
+
'user' => {
|
145
|
+
'id' => user.id,
|
146
|
+
'email' => user.email,
|
147
|
+
'name' => user.name
|
148
|
+
},
|
149
|
+
invited_by: {
|
150
|
+
'id' => user.id,
|
151
|
+
'email' => user.email,
|
152
|
+
'name' => user.name
|
153
|
+
},
|
154
|
+
errors: error_message,
|
155
|
+
other: 81.to_f,
|
156
|
+
another: 42,
|
157
|
+
'float' => 81.to_f
|
158
|
+
}}
|
159
|
+
|
160
|
+
it { expect(LiveQA::Util.properties(group, user, 81.to_f, invited_by: user, errors: error_message, other: 81.to_f, another: 42)).to match(expected) }
|
161
|
+
end
|
162
|
+
|
123
163
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe LiveQA::Identity do
|
4
|
+
|
5
|
+
describe '#create' do
|
6
|
+
let(:response) { double('LiveQA::Request', body: "{\"object\":\"watcher\",\"id\":1}") }
|
7
|
+
before { expect(LiveQA::Request).to receive(:execute).and_return(response) }
|
8
|
+
|
9
|
+
subject(:create) { LiveQA::Watcher.create(template_flow: 'My Flow', expected_times: 42) }
|
10
|
+
|
11
|
+
it { is_expected.to be_successful }
|
12
|
+
it { expect(create.id).to eq(1) }
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '#delete' do
|
16
|
+
let(:response) { double('LiveQA::Request', body: "{\"object\":\"watcher\",\"id\":1}") }
|
17
|
+
before { expect(LiveQA::Request).to receive(:execute).and_return(response) }
|
18
|
+
|
19
|
+
subject(:delete) { LiveQA::Watcher.delete(1) }
|
20
|
+
|
21
|
+
it { is_expected.to be_successful }
|
22
|
+
it { expect(delete.id).to eq(1) }
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
data/spec/lib/liveqa_spec.rb
CHANGED
@@ -16,7 +16,6 @@ describe LiveQA::Event do
|
|
16
16
|
name: 'test',
|
17
17
|
message_id: kind_of(String),
|
18
18
|
timestamp: kind_of(String),
|
19
|
-
tracker_id: kind_of(String),
|
20
19
|
session_tracker_id: kind_of(String),
|
21
20
|
properties: {
|
22
21
|
total: 10
|
@@ -29,10 +28,10 @@ describe LiveQA::Event do
|
|
29
28
|
server: {
|
30
29
|
host: kind_of(String),
|
31
30
|
pid: kind_of(Numeric)
|
32
|
-
}
|
31
|
+
},
|
33
32
|
}}
|
34
33
|
|
35
|
-
it { expect(LiveQA::Event).to receive(:create).with(expected_arg, { no_ssl: true }).and_return(response) }
|
34
|
+
it { expect(LiveQA::Event).to receive(:create).with(hash_including(expected_arg), { no_ssl: true }).and_return(response) }
|
36
35
|
|
37
36
|
context 'not enabled' do
|
38
37
|
before { LiveQA.configurations.enabled = false }
|
@@ -63,10 +62,10 @@ describe LiveQA::Event do
|
|
63
62
|
server: {
|
64
63
|
host: kind_of(String),
|
65
64
|
pid: kind_of(Numeric)
|
66
|
-
}
|
65
|
+
},
|
67
66
|
}}
|
68
67
|
|
69
|
-
it { expect(LiveQA::Event).to receive(:create).with(expected_arg, { no_ssl: true }).and_return(response) }
|
68
|
+
it { expect(LiveQA::Event).to receive(:create).with(hash_including(expected_arg), { no_ssl: true }).and_return(response) }
|
70
69
|
|
71
70
|
context 'not enabled' do
|
72
71
|
before { LiveQA.configurations.enabled = false }
|
@@ -75,4 +74,88 @@ describe LiveQA::Event do
|
|
75
74
|
end
|
76
75
|
end
|
77
76
|
|
77
|
+
describe '.set_group' do
|
78
|
+
let(:response) { double('LiveQA::Group', successful?: true) }
|
79
|
+
after { LiveQA.set_group(42, { properties: { name: 'John Group' }}, { no_ssl: true }) }
|
80
|
+
|
81
|
+
let(:expected_arg) {{
|
82
|
+
properties: {
|
83
|
+
name: 'John Group'
|
84
|
+
},
|
85
|
+
message_id: kind_of(String),
|
86
|
+
timestamp: kind_of(String),
|
87
|
+
session_tracker_id: kind_of(String),
|
88
|
+
}}
|
89
|
+
|
90
|
+
it { expect(LiveQA::Group).to receive(:update).with(42, expected_arg, { no_ssl: true }).and_return(response) }
|
91
|
+
|
92
|
+
context 'not enabled' do
|
93
|
+
before { LiveQA.configurations.enabled = false }
|
94
|
+
|
95
|
+
it { expect(LiveQA::Group).to_not receive(:update) }
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
describe '.set_identity' do
|
100
|
+
let(:response) { double('LiveQA::Identity', successful?: true) }
|
101
|
+
after { LiveQA.set_identity(42, { properties: { name: 'John Doe' }}, { no_ssl: true }) }
|
102
|
+
|
103
|
+
let(:expected_arg) {{
|
104
|
+
properties: {
|
105
|
+
name: 'John Doe'
|
106
|
+
},
|
107
|
+
message_id: kind_of(String),
|
108
|
+
timestamp: kind_of(String),
|
109
|
+
session_tracker_id: kind_of(String),
|
110
|
+
}}
|
111
|
+
|
112
|
+
it { expect(LiveQA::Identity).to receive(:update).with(42, expected_arg, { no_ssl: true }).and_return(response) }
|
113
|
+
|
114
|
+
context 'not enabled' do
|
115
|
+
before { LiveQA.configurations.enabled = false }
|
116
|
+
|
117
|
+
it { expect(LiveQA::Identity).to_not receive(:update) }
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
describe '.watch' do
|
122
|
+
let(:response) { double('LiveQA::Identity', successful?: true) }
|
123
|
+
|
124
|
+
|
125
|
+
context 'with session' do
|
126
|
+
after { LiveQA.watch('My Flow', { expected_times: 42 }, { no_ssl: true }) }
|
127
|
+
|
128
|
+
let(:expected_arg) {{
|
129
|
+
template_flow: 'My Flow',
|
130
|
+
expected_times: 42,
|
131
|
+
message_id: kind_of(String),
|
132
|
+
timestamp: kind_of(String),
|
133
|
+
session_tracker_id: kind_of(String),
|
134
|
+
}}
|
135
|
+
|
136
|
+
it { expect(LiveQA::Watcher).to receive(:create).with(expected_arg, { no_ssl: true }).and_return(response) }
|
137
|
+
end
|
138
|
+
|
139
|
+
context 'with session' do
|
140
|
+
after { LiveQA.watch('My Flow', { expected_times: 42, without_session: true }, { no_ssl: true }) }
|
141
|
+
|
142
|
+
let(:expected_arg) {{
|
143
|
+
template_flow: 'My Flow',
|
144
|
+
expected_times: 42,
|
145
|
+
message_id: kind_of(String),
|
146
|
+
timestamp: kind_of(String),
|
147
|
+
}}
|
148
|
+
|
149
|
+
it { expect(LiveQA::Watcher).to receive(:create).with(expected_arg, { no_ssl: true }).and_return(response) }
|
150
|
+
end
|
151
|
+
|
152
|
+
context 'not enabled' do
|
153
|
+
after { LiveQA.watch('My Flow', { expected_times: 42 }, { no_ssl: true }) }
|
154
|
+
|
155
|
+
before { LiveQA.configurations.enabled = false }
|
156
|
+
|
157
|
+
it { expect(LiveQA::Watcher).to_not receive(:create) }
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
78
161
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -15,7 +15,9 @@ RSpec.configure do |config|
|
|
15
15
|
config.before(:each) do
|
16
16
|
LiveQA.configure do |config|
|
17
17
|
config.api_host = 'localhost:4003'
|
18
|
-
config.
|
18
|
+
config.account_token = 'acc_xx'
|
19
|
+
config.space_name = 'LiveQA'
|
20
|
+
config.environment_name = 'test'
|
19
21
|
config.http_secure = false
|
20
22
|
end
|
21
23
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: liveqa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.8.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- LiveQA
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-06-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faker
|
@@ -97,6 +97,7 @@ files:
|
|
97
97
|
- README.md
|
98
98
|
- Rakefile
|
99
99
|
- lib/liveqa.rb
|
100
|
+
- lib/liveqa/api_operation/delete.rb
|
100
101
|
- lib/liveqa/api_operation/save.rb
|
101
102
|
- lib/liveqa/api_resource.rb
|
102
103
|
- lib/liveqa/async_handlers/base.rb
|
@@ -104,11 +105,14 @@ files:
|
|
104
105
|
- lib/liveqa/config.rb
|
105
106
|
- lib/liveqa/errors.rb
|
106
107
|
- lib/liveqa/event.rb
|
108
|
+
- lib/liveqa/group.rb
|
109
|
+
- lib/liveqa/identity.rb
|
107
110
|
- lib/liveqa/library_name.rb
|
108
111
|
- lib/liveqa/liveqa_object.rb
|
109
112
|
- lib/liveqa/message.rb
|
110
113
|
- lib/liveqa/plugins.rb
|
111
114
|
- lib/liveqa/plugins/rack/middleware.rb
|
115
|
+
- lib/liveqa/plugins/rails/data.rb
|
112
116
|
- lib/liveqa/plugins/rails/middleware_data.rb
|
113
117
|
- lib/liveqa/plugins/rails/railtie.rb
|
114
118
|
- lib/liveqa/plugins/sidekiq/client_middleware.rb
|
@@ -118,19 +122,25 @@ files:
|
|
118
122
|
- lib/liveqa/store.rb
|
119
123
|
- lib/liveqa/util.rb
|
120
124
|
- lib/liveqa/version.rb
|
125
|
+
- lib/liveqa/watcher.rb
|
121
126
|
- liveqa.gemspec
|
127
|
+
- spec/lib/liveqa/api_resource_spec.rb
|
122
128
|
- spec/lib/liveqa/async_handlers/base_spec.rb
|
123
129
|
- spec/lib/liveqa/async_handlers/sidekiq_spec.rb
|
124
130
|
- spec/lib/liveqa/config_spec.rb
|
125
131
|
- spec/lib/liveqa/event_spec.rb
|
132
|
+
- spec/lib/liveqa/group_spec.rb
|
133
|
+
- spec/lib/liveqa/identity_spec.rb
|
126
134
|
- spec/lib/liveqa/liveqa_object_spec.rb
|
127
135
|
- spec/lib/liveqa/message_spec.rb
|
128
136
|
- spec/lib/liveqa/plugins/rack/middleware_spec.rb
|
137
|
+
- spec/lib/liveqa/plugins/rails/data_spec.rb
|
129
138
|
- spec/lib/liveqa/plugins/rails/middleware_data_spec.rb
|
130
139
|
- spec/lib/liveqa/plugins/sidekiq/client_middleware_spec.rb
|
131
140
|
- spec/lib/liveqa/plugins/sidekiq/server_middleware_spec.rb
|
132
141
|
- spec/lib/liveqa/store_spec.rb
|
133
142
|
- spec/lib/liveqa/util_spec.rb
|
143
|
+
- spec/lib/liveqa/watcher_spec.rb
|
134
144
|
- spec/lib/liveqa_spec.rb
|
135
145
|
- spec/spec_helper.rb
|
136
146
|
- spec/support/rack_app.rb
|
@@ -159,18 +169,23 @@ signing_key:
|
|
159
169
|
specification_version: 4
|
160
170
|
summary: LiveQA ruby integration
|
161
171
|
test_files:
|
172
|
+
- spec/lib/liveqa/api_resource_spec.rb
|
162
173
|
- spec/lib/liveqa/async_handlers/base_spec.rb
|
163
174
|
- spec/lib/liveqa/async_handlers/sidekiq_spec.rb
|
164
175
|
- spec/lib/liveqa/config_spec.rb
|
165
176
|
- spec/lib/liveqa/event_spec.rb
|
177
|
+
- spec/lib/liveqa/group_spec.rb
|
178
|
+
- spec/lib/liveqa/identity_spec.rb
|
166
179
|
- spec/lib/liveqa/liveqa_object_spec.rb
|
167
180
|
- spec/lib/liveqa/message_spec.rb
|
168
181
|
- spec/lib/liveqa/plugins/rack/middleware_spec.rb
|
182
|
+
- spec/lib/liveqa/plugins/rails/data_spec.rb
|
169
183
|
- spec/lib/liveqa/plugins/rails/middleware_data_spec.rb
|
170
184
|
- spec/lib/liveqa/plugins/sidekiq/client_middleware_spec.rb
|
171
185
|
- spec/lib/liveqa/plugins/sidekiq/server_middleware_spec.rb
|
172
186
|
- spec/lib/liveqa/store_spec.rb
|
173
187
|
- spec/lib/liveqa/util_spec.rb
|
188
|
+
- spec/lib/liveqa/watcher_spec.rb
|
174
189
|
- spec/lib/liveqa_spec.rb
|
175
190
|
- spec/spec_helper.rb
|
176
191
|
- spec/support/rack_app.rb
|