job_notifier 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,8 +6,10 @@ RSpec.describe JobNotifier::Adapters do
6
6
  end
7
7
 
8
8
  describe "#get_adapter_path" do
9
- it { expect(subject.get_adapter_path("notifier").to_s).to match(
10
- "app/assets/javascripts/job_notifier/notifier.js") }
9
+ it do
10
+ expect(subject.get_adapter_path("notifier").to_s).to match(
11
+ "app/assets/javascripts/job_notifier/notifier.js")
12
+ end
11
13
 
12
14
  it "raises error with invalid adapter" do
13
15
  expect { subject.get_adapter_path("invalid") } .to raise_error(
@@ -0,0 +1,79 @@
1
+ require "rails_helper"
2
+
3
+ RSpec.describe JobNotifier::Logger do
4
+ describe "#call" do
5
+ let(:status) { 200 }
6
+ let(:result) do
7
+ [
8
+ [
9
+ { "status" => "pending" },
10
+ { "status" => "pending" },
11
+ { "status" => "finished" },
12
+ { "status" => "failed" }
13
+ ].to_json.to_s
14
+ ]
15
+ end
16
+ let(:response) { [status, nil, result] }
17
+
18
+ let(:env) { { "PATH_INFO" => "/job_notifier/XXX/jobs/pending.json" } }
19
+ let(:app) { double(:app, call: response) }
20
+
21
+ let(:logger) { described_class.new(app) }
22
+
23
+ before { allow(DateTime).to receive(:now).and_return("1984-06-04 10:00:00".to_datetime) }
24
+
25
+ RSpec.shared_examples "invalid candidate for logging" do
26
+ it "does not write log info" do
27
+ allow(logger).to receive(:log_jobs_info)
28
+ logger.call(env)
29
+ expect(logger).not_to have_received(:log_jobs_info)
30
+ end
31
+
32
+ it { expect(logger.call(env)).to eq(response) }
33
+ end
34
+
35
+ RSpec.shared_examples "invalid request result" do
36
+ it "calls logger with result" do
37
+ allow(logger).to receive(:log_jobs_info)
38
+ logger.call(env)
39
+ expect(logger).to have_received(:log_jobs_info).with(result)
40
+ end
41
+
42
+ it "does not build log msg" do
43
+ allow(logger).to receive(:build_log_msg)
44
+ logger.call(env)
45
+ expect(logger).not_to have_received(:build_log_msg)
46
+ end
47
+
48
+ it { expect(logger.call(env)).to eq(response) }
49
+ end
50
+
51
+ context "with other than 200 status" do
52
+ let(:status) { 500 }
53
+ it_behaves_like("invalid candidate for logging")
54
+ end
55
+
56
+ context "with invalid path info" do
57
+ let(:env) { { "PATH_INFO" => "/invalid/path" } }
58
+ it_behaves_like("invalid candidate for logging")
59
+ end
60
+
61
+ context "with blank result" do
62
+ let(:result) { [""] }
63
+ it_behaves_like("invalid request result")
64
+ end
65
+
66
+ context "with empty array result" do
67
+ let(:result) { ["[]"] }
68
+ it_behaves_like("invalid request result")
69
+ end
70
+
71
+ it "prints log" do
72
+ out = "\e[0;94;49m[1984-06-04 10:00:00] JOBS\e[0m \e[0;33;49mPending: 2\e[0m \
73
+ \e[0;32;49mFinished: 1\e[0m \e[0;31;49mFailed: 1\e[0m\n"
74
+ expect { logger.call(env) }.to output(out).to_stdout
75
+ end
76
+
77
+ it { expect(logger.call(env)).to eq(response) }
78
+ end
79
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: job_notifier
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Platanus
@@ -72,6 +72,20 @@ dependencies:
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
74
  version: 0.7.7
75
+ - !ruby/object:Gem::Dependency
76
+ name: silencer
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - '='
80
+ - !ruby/object:Gem::Version
81
+ version: 1.0.0.rc3
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - '='
87
+ - !ruby/object:Gem::Version
88
+ version: 1.0.0.rc3
75
89
  - !ruby/object:Gem::Dependency
76
90
  name: pry
77
91
  requirement: !ruby/object:Gem::Requirement
@@ -539,10 +553,10 @@ files:
539
553
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/zOXm0fB3RP5lEZn8K0XLe2Fb2FA_lBFW82FCmFjpvpY.cache
540
554
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/zQ/zQTqJeOz-Koa7PhvVTyhn-cid6B6Ws-h8MHTOrRpW70.cache
541
555
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/zyjOXS82e6TASMmjcGsoBMiZ3uxt7D8DLxVHPvajMDU.cache
542
- - spec/dummy/tmp/pids/server.pid
543
556
  - spec/factories/job_notifier_jobs.rb
544
557
  - spec/lib/job_notifier/adapters_spec.rb
545
558
  - spec/lib/job_notifier/identifier_spec.rb
559
+ - spec/lib/job_notifier/logger_spec.rb
546
560
  - spec/lib/job_notifier/notifier_spec.rb
547
561
  - spec/models/job_notifier/job_spec.rb
548
562
  - spec/rails_helper.rb
@@ -939,10 +953,10 @@ test_files:
939
953
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/zOXm0fB3RP5lEZn8K0XLe2Fb2FA_lBFW82FCmFjpvpY.cache
940
954
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/zQ/zQTqJeOz-Koa7PhvVTyhn-cid6B6Ws-h8MHTOrRpW70.cache
941
955
  - spec/dummy/tmp/cache/assets/sprockets/v3.0/zyjOXS82e6TASMmjcGsoBMiZ3uxt7D8DLxVHPvajMDU.cache
942
- - spec/dummy/tmp/pids/server.pid
943
956
  - spec/factories/job_notifier_jobs.rb
944
957
  - spec/lib/job_notifier/adapters_spec.rb
945
958
  - spec/lib/job_notifier/identifier_spec.rb
959
+ - spec/lib/job_notifier/logger_spec.rb
946
960
  - spec/lib/job_notifier/notifier_spec.rb
947
961
  - spec/models/job_notifier/job_spec.rb
948
962
  - spec/rails_helper.rb
@@ -1 +0,0 @@
1
- 52012