smoke_detector 0.1.0 → 1.0.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.
@@ -5,8 +5,8 @@ describe SmokeDetector do
5
5
  let(:err) { Exception.new }
6
6
 
7
7
  before do
8
- SmokeDetector.register_provider(:airbrake, 'key', 'client_key')
9
- SmokeDetector.register_provider(:rollbar, 'key', 'client_key')
8
+ SmokeDetector.register_provider(:airbrake, 'key', {api_key: 'client_key'})
9
+ SmokeDetector.register_provider(:rollbar, 'key', {api_key: 'client_key'})
10
10
  SmokeDetector.providers.size.should > 1
11
11
  end
12
12
 
@@ -15,7 +15,7 @@ describe SmokeDetector::JavaScriptMonitors do
15
15
 
16
16
  context 'with a Rollbar client API key configured' do
17
17
  before do
18
- SmokeDetector.register_provider(:rollbar, 'key', 'client_key')
18
+ SmokeDetector.register_provider(:rollbar, 'key', {api_key: 'client_key' })
19
19
  end
20
20
 
21
21
  it 'injects the Rollbar JS snippet into the <head>' do
@@ -35,4 +35,59 @@ describe SmokeDetector::JavaScriptMonitors do
35
35
  end
36
36
  end
37
37
 
38
+ context 'hostWhitelist' do
39
+ before do
40
+ SmokeDetector.register_provider(:rollbar, 'key', {api_key: 'client_key', host_whitelist: host_whitelist})
41
+ end
42
+
43
+ shared_examples "a properly set hostWhiteList" do
44
+ it 'injects the Rollbar JS snippet into the <head>' do
45
+ get '/widgets'
46
+ rollbar_snippet = Nokogiri::HTML(response.body).css('head script:contains("_rollbarConfig")').children.first
47
+ expect(rollbar_snippet).to_not be_nil
48
+ end
49
+
50
+ it 'sets hostWhitelist' do
51
+ get '/widgets'
52
+ script_content = Nokogiri::HTML(response.body).css('head script:contains("_rollbarConfig")').children.first
53
+ position = /hostWhiteList:\s*#{Regexp.escape(host_whitelist.to_s)}/i =~ script_content
54
+ expect(position).to_not be_nil
55
+ end
56
+ end
57
+
58
+ context 'with hostWhitelist Rollbar client setting configured' do
59
+ let(:host_whitelist) { ['example.com', 'facebook.com'] }
60
+ it_behaves_like "a properly set hostWhiteList"
61
+ end
62
+
63
+ context 'with hostWhitelist Rollbar client setting unset' do
64
+ let(:host_whitelist) { nil }
65
+ it_behaves_like "a properly set hostWhiteList"
66
+ end
67
+ end
68
+
69
+ context 'ignoredMessages' do
70
+ before do
71
+ SmokeDetector.register_provider(:rollbar, 'key', {api_key: 'client_key', ignored_messages: ignored_messages})
72
+ end
73
+
74
+ shared_examples "a properly set ignoredMessages" do
75
+ it 'injects the Rollbar JS snippet into the <head> with ignoredMessages set' do
76
+ get '/widgets'
77
+ script_content = Nokogiri::HTML(response.body).css('head script:contains("_rollbarConfig")').children.first
78
+ position = /ignoredMessages:\s*#{Regexp.escape(ignored_messages.to_s)}/i =~ script_content
79
+ expect(position).to_not be_nil
80
+ end
81
+ end
82
+
83
+ context "with ignoredMessages Rollbar client setting configured" do
84
+ let(:ignored_messages) { ['Error: Llamas are actually pretty cool.', 'Exception: The jerkstore called, and they ran out of you.'] }
85
+ it_behaves_like "a properly set ignoredMessages"
86
+ end
87
+
88
+ context 'with ignoredMessages Rollbar client setting unset' do
89
+ let(:ignored_messages) { nil }
90
+ it_behaves_like "a properly set ignoredMessages"
91
+ end
92
+ end
38
93
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smoke_detector
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Friedrich
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-04 00:00:00.000000000 Z
11
+ date: 2014-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - ~>
46
46
  - !ruby/object:Gem::Version
47
- version: '0.11'
47
+ version: 1.0.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
54
- version: '0.11'
54
+ version: 1.0.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: nokogiri
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -211,10 +211,8 @@ files:
211
211
  - spec/dummy/config/locales/en.yml
212
212
  - spec/dummy/config/routes.rb
213
213
  - spec/dummy/config.ru
214
- - spec/dummy/db/development.sqlite3
215
214
  - spec/dummy/db/schema.rb
216
215
  - spec/dummy/db/test.sqlite3
217
- - spec/dummy/log/development.log
218
216
  - spec/dummy/log/test.log
219
217
  - spec/dummy/public/404.html
220
218
  - spec/dummy/public/422.html
@@ -284,10 +282,8 @@ test_files:
284
282
  - spec/dummy/config/locales/en.yml
285
283
  - spec/dummy/config/routes.rb
286
284
  - spec/dummy/config.ru
287
- - spec/dummy/db/development.sqlite3
288
285
  - spec/dummy/db/schema.rb
289
286
  - spec/dummy/db/test.sqlite3
290
- - spec/dummy/log/development.log
291
287
  - spec/dummy/log/test.log
292
288
  - spec/dummy/public/404.html
293
289
  - spec/dummy/public/422.html
@@ -1,7 +0,0 @@
1
- Connecting to database specified by database.yml
2
-  (0.1ms) select sqlite_version(*)
3
-  (0.9ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)
4
-  (0.7ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
5
-  (0.1ms) SELECT version FROM "schema_migrations"
6
-  (0.7ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
7
-  (1.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations"