logster 1.3.4 → 1.4.0.pre

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.
@@ -198,28 +198,29 @@ class TestRedisStore < Minitest::Test
198
198
  end
199
199
 
200
200
  def test_search
201
- @store.report(Logger::INFO, "test", "A")
202
- @store.report(Logger::INFO, "test", "B")
201
+ @store.report(Logger::INFO, "test", "ABCDEFG")
202
+ @store.report(Logger::INFO, "test", "TUVWXYZ")
203
203
 
204
204
  messages = @store.latest
205
205
  assert_equal(2, messages.length)
206
206
 
207
- latest = @store.latest(search: "B")
207
+ latest = @store.latest(search: "TUVWXYZ")
208
208
 
209
209
  assert_equal(1, latest.length)
210
+ assert_equal("TUVWXYZ", latest[0].message)
210
211
  end
211
212
 
212
213
  def test_search_exclude_results
213
- @store.report(Logger::INFO, "test", "A")
214
- @store.report(Logger::INFO, "test", "B")
214
+ @store.report(Logger::INFO, "test", "ABCDEFG")
215
+ @store.report(Logger::INFO, "test", "TUVWXYZ")
215
216
 
216
217
  messages = @store.latest
217
218
  assert_equal(2, messages.length)
218
219
 
219
- latest = @store.latest(search: "-A")
220
+ latest = @store.latest(search: "-ABCD")
220
221
 
221
222
  assert_equal(1, latest.length)
222
- assert_equal("B", latest[0].message)
223
+ assert_equal("TUVWXYZ", latest[0].message)
223
224
  end
224
225
 
225
226
  def test_regex_search
@@ -234,6 +235,128 @@ class TestRedisStore < Minitest::Test
234
235
  assert_equal(1, latest.length)
235
236
  end
236
237
 
238
+ def test_env_search
239
+ @store.report(Logger::INFO, "test", "message ABCD", env: { cluster: "business5" })
240
+ @store.report(Logger::INFO, "test", "message WXYZ", env: { cluster: "business7" })
241
+
242
+ messages = @store.latest
243
+ assert_equal(2, messages.length)
244
+
245
+ latest = @store.latest(search: "business5")
246
+
247
+ assert_equal(1, latest.length)
248
+ assert_equal("message ABCD", latest[0].message)
249
+
250
+ latest = @store.latest(search: "-business5")
251
+
252
+ assert_equal(1, latest.length)
253
+ assert_equal("message WXYZ", latest[0].message)
254
+
255
+ latest = @store.latest(search: /business/)
256
+
257
+ assert_equal(2, latest.length)
258
+ assert_equal(["message ABCD", "message WXYZ"], latest.map(&:message).sort)
259
+ end
260
+
261
+ def test_array_env_search_preserve_env
262
+ m1_original_env = [{ cluster: "business5" }, { cluster: "standard3" }]
263
+ m2_original_env = [{ cluster: "business2" }, { cluster: "standard7" }]
264
+
265
+ @store.report(Logger::INFO, "test", "message ABCD", env: m1_original_env, count: 2)
266
+ @store.report(Logger::INFO, "test", "message WXYZ", env: m2_original_env, count: 2)
267
+
268
+ messages = @store.latest
269
+ assert_equal(2, messages.length)
270
+
271
+ m1_key = messages[0].key
272
+ m2_key = messages[1].key
273
+
274
+ messages = @store.latest(search: "business")
275
+ assert_equal(2, messages.size)
276
+
277
+ # any hashes that don't match should be stripped from the env
278
+ # array but only temporarily until it's sent to the client
279
+ # env array should remain untouched in redis memory
280
+ assert_equal(["business5"], messages[0].env.map { |env| env["cluster"]})
281
+ assert_equal(1, messages[0].count)
282
+ assert_equal(["business2"], messages[1].env.map { |env| env["cluster"]})
283
+ assert_equal(1, messages[1].count)
284
+
285
+ m1 = @store.get(m1_key)
286
+ m2 = @store.get(m2_key)
287
+ # original env should preserved in redis memory
288
+ assert_equal(["business5", "standard3"], m1.env.map { |env| env["cluster"] })
289
+ assert_equal(["business2", "standard7"], m2.env.map { |env| env["cluster"] })
290
+ end
291
+
292
+ def test_both_env_and_title_match_search
293
+ @store.report(Logger::INFO, "test", "message", env: [{ cluster: "business15" }])
294
+ @store.report(Logger::INFO, "test", "message2", env: { cluster: "business15" })
295
+
296
+ messages = @store.latest
297
+ assert_equal(2, messages.size)
298
+
299
+ messages = @store.latest(search: "-business15")
300
+ assert_equal(0, messages.size)
301
+ end
302
+
303
+ def test_data_kept_intact_on_report_when_env_matches_an_ignore_pattern
304
+ begin
305
+ Logster.config.allow_grouping = true
306
+ backtrace = caller
307
+ message = @store.report(Logger::WARN, "", "my error", env: { whatever: "something", backtrace: backtrace })
308
+
309
+ @store.ignore = [
310
+ Logster::IgnorePattern.new("business")
311
+ ]
312
+ message2 = @store.report(Logger::WARN, "", "my error", env: { cluster: "business17", backtrace: backtrace })
313
+
314
+ message = @store.get(message.key)
315
+ assert(Array === message.env)
316
+ assert_equal(2, message.env.size)
317
+ # message2 shouldn't vanish even if
318
+ # its env matches an ignore pattern
319
+ # however it should be merged with message1
320
+ assert_equal("business17", message.env[1]["cluster"])
321
+ ensure
322
+ # reset so it doesn't affect other tests
323
+ @store.ignore = nil
324
+ Logster.config.allow_grouping = false
325
+ end
326
+ end
327
+
328
+ def test_array_env_negative_search
329
+ @store.report(Logger::INFO, "test", "message ABCD", env: [{ cluster: "business5" }, { cluster: "standard3" }], count: 2)
330
+ @store.report(Logger::INFO, "test", "message WXYZ", env: [{ cluster: "business2" }, { cluster: "standard7" }], count: 2)
331
+
332
+ messages = @store.latest
333
+ assert_equal(2, messages.length)
334
+
335
+ messages = @store.latest(search: "-business")
336
+ assert_equal(2, messages.size)
337
+
338
+ assert_equal(["standard3"], messages[0].env.map { |env| env["cluster"]})
339
+ assert_equal(1, messages[0].count)
340
+ assert_equal(["standard7"], messages[1].env.map { |env| env["cluster"]})
341
+ assert_equal(1, messages[1].count)
342
+ end
343
+
344
+ def test_negative_search_MUST_not_match_title_in_order_to_include_message
345
+ @store.report(Logger::INFO, "test", "message ABCD", env: [{ cluster: "business5" }, { cluster: "standard3" }], count: 2)
346
+
347
+ messages = @store.latest(search: "-ABCD")
348
+ assert_equal(0, messages.size) # cause title has ABCD
349
+ end
350
+
351
+ def test_positive_search_looks_at_title_OR_env
352
+ @store.report(Logger::INFO, "test", "message", env: [{ cluster: "business5 ABCDEFG" }, { cluster: "standard3" }], count: 2)
353
+
354
+ messages = @store.latest(search: "ABCDEFG")
355
+ assert_equal(1, messages.size)
356
+ assert_equal(1, messages[0].env.size)
357
+ assert_equal("business5 ABCDEFG", messages[0].env[0]["cluster"])
358
+ end
359
+
237
360
  def test_backtrace
238
361
  @store.report(Logger::INFO, "test", "pattern_1")
239
362
  message = @store.latest(limit: 1).first
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logster
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.4
4
+ version: 1.4.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - UI for viewing logs in Rack
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-30 00:00:00.000000000 Z
11
+ date: 2019-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -162,6 +162,7 @@ files:
162
162
  - client-app/README.md
163
163
  - client-app/app/app.js
164
164
  - client-app/app/components/actions-menu.js
165
+ - client-app/app/components/env-tab.js
165
166
  - client-app/app/components/message-info.js
166
167
  - client-app/app/components/message-row.js
167
168
  - client-app/app/components/panel-resizer.js
@@ -185,6 +186,7 @@ files:
185
186
  - client-app/app/styles/app.css
186
187
  - client-app/app/templates/application.hbs
187
188
  - client-app/app/templates/components/actions-menu.hbs
189
+ - client-app/app/templates/components/env-tab.hbs
188
190
  - client-app/app/templates/components/message-info.hbs
189
191
  - client-app/app/templates/components/message-row.hbs
190
192
  - client-app/app/templates/components/panel-resizer.hbs
@@ -201,6 +203,7 @@ files:
201
203
  - client-app/testem.js
202
204
  - client-app/tests/index.html
203
205
  - client-app/tests/integration/components/actions-menu-test.js
206
+ - client-app/tests/integration/components/env-tab-test.js
204
207
  - client-app/tests/integration/components/message-info-test.js
205
208
  - client-app/tests/integration/components/message-row-test.js
206
209
  - client-app/tests/integration/components/panel-resizer-test.js
@@ -258,9 +261,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
258
261
  version: '0'
259
262
  required_rubygems_version: !ruby/object:Gem::Requirement
260
263
  requirements:
261
- - - ">="
264
+ - - ">"
262
265
  - !ruby/object:Gem::Version
263
- version: '0'
266
+ version: 1.3.1
264
267
  requirements: []
265
268
  rubygems_version: 3.0.1
266
269
  signing_key: