puppet-herald 0.2.0 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/.gitignore +3 -0
- data/.jshintrc +19 -0
- data/Gemfile +25 -12
- data/Gemfile.local.example +3 -0
- data/Guardfile +57 -0
- data/README.md +1 -1
- data/Rakefile +100 -20
- data/db/migrate/20141218200108_remove_no_of_reports_from_nodes.rb +7 -0
- data/lib/puppet-herald.rb +95 -65
- data/lib/puppet-herald/app/api.rb +79 -12
- data/lib/puppet-herald/app/configuration.rb +47 -15
- data/lib/puppet-herald/app/frontend.rb +6 -6
- data/lib/puppet-herald/app/views/app.erb +14 -20
- data/lib/puppet-herald/app/views/err500.erb +8 -5
- data/lib/puppet-herald/application.rb +9 -1
- data/lib/puppet-herald/cli.rb +5 -11
- data/lib/puppet-herald/database.rb +1 -7
- data/lib/puppet-herald/javascript.rb +16 -10
- data/lib/puppet-herald/models.rb +47 -0
- data/lib/puppet-herald/models/log-entry.rb +2 -0
- data/lib/puppet-herald/models/node.rb +49 -2
- data/lib/puppet-herald/models/report.rb +33 -9
- data/lib/puppet-herald/project.js +46 -0
- data/lib/puppet-herald/public/app.js +11 -9
- data/lib/puppet-herald/public/bower.json +10 -3
- data/lib/puppet-herald/public/components/artifact/artifact-directive.js +4 -0
- data/lib/puppet-herald/public/components/artifact/artifact.js +1 -3
- data/lib/puppet-herald/public/components/directives/directives.js +5 -1
- data/lib/puppet-herald/public/components/directives/status-button.html +1 -1
- data/lib/puppet-herald/public/components/directives/status-button.js +11 -11
- data/lib/puppet-herald/public/components/filters/filters.js +6 -2
- data/lib/puppet-herald/public/components/page.js +2 -2
- data/lib/puppet-herald/public/components/pagination.js +142 -0
- data/lib/puppet-herald/public/components/settings.js +25 -0
- data/lib/puppet-herald/public/css/herald.css +100 -3
- data/lib/puppet-herald/public/general/app.html +73 -0
- data/lib/puppet-herald/public/img/shield97-white.svg +53 -0
- data/lib/puppet-herald/public/img/shield97.png +0 -0
- data/lib/puppet-herald/public/node/node.html +27 -9
- data/lib/puppet-herald/public/node/node.js +43 -15
- data/lib/puppet-herald/public/nodes/nodes.html +25 -7
- data/lib/puppet-herald/public/nodes/nodes.js +29 -14
- data/lib/puppet-herald/public/report/report.html +60 -13
- data/lib/puppet-herald/public/report/report.js +21 -14
- data/lib/puppet-herald/public/router.js +55 -0
- data/lib/puppet-herald/purgecronjob.rb +35 -0
- data/lib/puppet-herald/version.rb +2 -2
- data/package.json +14 -16
- data/puppet-herald.gemspec +12 -7
- data/spec/integration/app/configuration_spec.rb +33 -0
- data/spec/integration/application_spec.rb +139 -20
- data/spec/integration/fixtures/nodes.yml +13 -0
- data/spec/integration/fixtures/pending-notify.yaml +346 -0
- data/spec/integration/fixtures/reports.yml +61 -0
- data/spec/integration/models/node_spec.rb +12 -3
- data/spec/integration/models/report_spec.rb +60 -4
- data/spec/spec_helper.rb +6 -10
- data/spec/support/active_record.rb +1 -0
- data/spec/support/fixtures.rb +16 -0
- data/spec/unit/puppet-herald/cli_spec.rb +4 -4
- data/spec/unit/puppet-herald/database_spec.rb +5 -3
- data/spec/unit/puppet-herald/purgecronjob_spec.rb +37 -0
- data/test/javascript/.bowerrc +3 -0
- data/test/javascript/bower.json +21 -0
- data/test/javascript/karma.conf.js +17 -22
- data/test/javascript/src/app_test.js +10 -61
- data/test/javascript/src/components/directives/status-button_test.js +10 -10
- data/test/javascript/src/components/paginate_test.js +183 -0
- data/test/javascript/src/node/node_test.js +16 -6
- data/test/javascript/src/nodes/nodes_test.js +14 -2
- data/test/javascript/src/report/report_test.js +6 -6
- data/test/javascript/src/router_test.js +79 -0
- metadata +642 -23
@@ -0,0 +1,61 @@
|
|
1
|
+
---
|
2
|
+
|
3
|
+
master_r1:
|
4
|
+
id: 1
|
5
|
+
status: 'changed'
|
6
|
+
environment: 'production'
|
7
|
+
transaction_uuid: '4dda18fb-c4cf-412a-94f6-43d9420e9582'
|
8
|
+
configuration_version: '12345678'
|
9
|
+
puppet_version: '3.7.3'
|
10
|
+
kind: 'apply'
|
11
|
+
host: 'master.vm'
|
12
|
+
time: '2014-12-17T15:34:08'
|
13
|
+
node_id: 1
|
14
|
+
|
15
|
+
master_r2:
|
16
|
+
id: 2
|
17
|
+
status: 'failed'
|
18
|
+
environment: 'production'
|
19
|
+
transaction_uuid: '1d9a613b-a8b1-44d4-87fa-ab8143c8d403'
|
20
|
+
configuration_version: '12345698'
|
21
|
+
puppet_version: '3.7.3'
|
22
|
+
kind: 'apply'
|
23
|
+
host: 'master.vm'
|
24
|
+
time: '2014-12-17T16:04:08'
|
25
|
+
node_id: 1
|
26
|
+
|
27
|
+
master_r3:
|
28
|
+
id: 3
|
29
|
+
status: 'unchanged'
|
30
|
+
environment: 'production'
|
31
|
+
transaction_uuid: 'd28a1795-cc74-42b3-ab9d-88df5fff14cc'
|
32
|
+
configuration_version: '12345712'
|
33
|
+
puppet_version: '3.7.3'
|
34
|
+
kind: 'apply'
|
35
|
+
host: 'master.vm'
|
36
|
+
time: '2014-12-17T16:34:08'
|
37
|
+
node_id: 1
|
38
|
+
|
39
|
+
master_r4:
|
40
|
+
id: 4
|
41
|
+
status: 'unchanged'
|
42
|
+
environment: 'production'
|
43
|
+
transaction_uuid: 'e33516ae-1b28-40b5-89da-615cd73cf324'
|
44
|
+
configuration_version: '12345721'
|
45
|
+
puppet_version: '3.7.3'
|
46
|
+
kind: 'apply'
|
47
|
+
host: 'master.vm'
|
48
|
+
time: '2014-12-17T17:04:08'
|
49
|
+
node_id: 1
|
50
|
+
|
51
|
+
master_r5:
|
52
|
+
id: 5
|
53
|
+
status: 'changed'
|
54
|
+
environment: 'production'
|
55
|
+
transaction_uuid: '7b639655-ba23-4e2c-b81b-80c7dbefd157'
|
56
|
+
configuration_version: '12345756'
|
57
|
+
puppet_version: '3.7.3'
|
58
|
+
kind: 'apply'
|
59
|
+
host: 'master.vm'
|
60
|
+
time: '2014-12-17T17:34:08'
|
61
|
+
node_id: 1
|
@@ -2,13 +2,14 @@ require 'model_helper'
|
|
2
2
|
require 'puppet-herald/models/report'
|
3
3
|
require 'puppet-herald/models/log-entry'
|
4
4
|
require 'puppet-herald/models/node'
|
5
|
+
require 'puppet-herald/models'
|
5
6
|
|
6
|
-
describe PuppetHerald::Models::Node, '.
|
7
|
+
describe PuppetHerald::Models::Node, '.with_reports', :rollback => true do
|
7
8
|
let(:yaml) { File.read(File.expand_path("../../fixtures/changed-notify.yaml", __FILE__)) }
|
8
9
|
let(:id) { PuppetHerald::Models::Report.create_from_yaml(yaml).node_id }
|
9
10
|
|
10
11
|
context 'fetching an existing node' do
|
11
|
-
subject { PuppetHerald::Models::Node.
|
12
|
+
subject { PuppetHerald::Models::Node.with_reports id }
|
12
13
|
|
13
14
|
it "should return value that isn't nil" do
|
14
15
|
subject.should_not be_nil
|
@@ -17,10 +18,18 @@ describe PuppetHerald::Models::Node, '.get_with_reports', :rollback => true do
|
|
17
18
|
subject.class.should eq(PuppetHerald::Models::Node)
|
18
19
|
end
|
19
20
|
it "should return persisted node" do
|
20
|
-
subject.persisted?.should
|
21
|
+
subject.persisted?.should be_falsy
|
21
22
|
end
|
22
23
|
it "should have status 'changed'" do
|
23
24
|
subject.status.should eq('changed')
|
24
25
|
end
|
25
26
|
end
|
27
|
+
|
28
|
+
context 'paginating nodes' do
|
29
|
+
let(:pagination) { PuppetHerald::Models::Pagination.new(1, 10) }
|
30
|
+
subject { PuppetHerald::Models::Node.paginate(pagination) }
|
31
|
+
it "should return value that isn't nil" do
|
32
|
+
expect(subject).to_not be_nil
|
33
|
+
end
|
34
|
+
end
|
26
35
|
end
|
@@ -3,7 +3,7 @@ require 'puppet-herald/models/report'
|
|
3
3
|
require 'puppet-herald/models/log-entry'
|
4
4
|
|
5
5
|
describe PuppetHerald::Models::Report, ".create_from_yaml", :rollback => true do
|
6
|
-
context 'for
|
6
|
+
context 'for `changed` status report' do
|
7
7
|
let(:yaml) { File.read(File.expand_path("../../fixtures/changed-notify.yaml", __FILE__)) }
|
8
8
|
it 'that is really not empty' do
|
9
9
|
yaml.should_not be_empty
|
@@ -28,21 +28,53 @@ describe PuppetHerald::Models::Report, ".create_from_yaml", :rollback => true do
|
|
28
28
|
log.persisted?.should be_truthy
|
29
29
|
end
|
30
30
|
end
|
31
|
-
it "should have parent node, that is
|
31
|
+
it "should have parent node, that is persisted and has status 'changed'" do
|
32
32
|
subject.node.should_not be_nil
|
33
33
|
subject.node.status.should eq('changed')
|
34
34
|
subject.node.persisted?.should be_truthy
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
38
|
+
context 'for `pending` status report' do
|
39
|
+
let(:yaml) { File.read(File.expand_path("../../fixtures/pending-notify.yaml", __FILE__)) }
|
40
|
+
it 'that is really not empty' do
|
41
|
+
expect(yaml).to_not be_empty
|
42
|
+
end
|
43
|
+
context 'running on real sqlite3 db' do
|
44
|
+
subject { PuppetHerald::Models::Report.create_from_yaml yaml }
|
45
|
+
it "should return value that isn't nil" do
|
46
|
+
subject.should_not be_nil
|
47
|
+
end
|
48
|
+
it "should return a report object" do
|
49
|
+
subject.class.should eq(PuppetHerald::Models::Report)
|
50
|
+
end
|
51
|
+
it "should return persisted report" do
|
52
|
+
subject.persisted?.should be_truthy
|
53
|
+
end
|
54
|
+
it "should have status 'pending'" do
|
55
|
+
subject.status.should eq('pending')
|
56
|
+
end
|
57
|
+
it "should have 11 log entries, also persisted" do
|
58
|
+
subject.log_entries.size.should eq(11)
|
59
|
+
subject.log_entries.each do |log|
|
60
|
+
log.persisted?.should be_truthy
|
61
|
+
end
|
62
|
+
end
|
63
|
+
it "should have parent node, that is persisted and has status 'pending'" do
|
64
|
+
subject.node.should_not be_nil
|
65
|
+
subject.node.status.should eq('pending')
|
66
|
+
subject.node.persisted?.should be_truthy
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
38
70
|
end
|
39
71
|
|
40
|
-
describe PuppetHerald::Models::Report, '.
|
72
|
+
describe PuppetHerald::Models::Report, '.with_log_entries', :rollback => true do
|
41
73
|
let(:yaml) { File.read(File.expand_path("../../fixtures/changed-notify.yaml", __FILE__)) }
|
42
74
|
let(:id) { PuppetHerald::Models::Report.create_from_yaml(yaml).id }
|
43
75
|
|
44
76
|
context 'fetching an existing report' do
|
45
|
-
subject { PuppetHerald::Models::Report.
|
77
|
+
subject { PuppetHerald::Models::Report.with_log_entries id }
|
46
78
|
|
47
79
|
it "should return value that isn't nil" do
|
48
80
|
subject.should_not be_nil
|
@@ -68,4 +100,28 @@ describe PuppetHerald::Models::Report, '.get_with_log_entries', :rollback => tru
|
|
68
100
|
subject.node.persisted?.should be_truthy
|
69
101
|
end
|
70
102
|
end
|
103
|
+
end
|
104
|
+
|
105
|
+
describe PuppetHerald::Models::Report, '.purge_older_then', :rollback => true do
|
106
|
+
let(:yaml1) { File.read(File.expand_path("../../fixtures/changed-notify.yaml", __FILE__)) }
|
107
|
+
let(:yaml2) { File.read(File.expand_path("../../fixtures/pending-notify.yaml", __FILE__)) }
|
108
|
+
let(:date) { DateTime.new(2015, 4, 8, 14, 20, 0, '+2') }
|
109
|
+
before(:each) do
|
110
|
+
PuppetHerald::Models::LogEntry.delete_all
|
111
|
+
PuppetHerald::Models::Report.delete_all
|
112
|
+
PuppetHerald::Models::Node.delete_all
|
113
|
+
PuppetHerald::Models::Report.create_from_yaml(yaml1)
|
114
|
+
PuppetHerald::Models::Report.create_from_yaml(yaml1)
|
115
|
+
PuppetHerald::Models::Report.create_from_yaml(yaml2)
|
116
|
+
end
|
117
|
+
subject { PuppetHerald::Models::Report.purge_older_then(date) }
|
118
|
+
context 'running on real sqlite3 db with date `2015-04-08 14:20:00+0200`' do
|
119
|
+
it 'return `2` as a number of a reports purged' do
|
120
|
+
expect(PuppetHerald::Models::Node.count).to eq(1)
|
121
|
+
expect(PuppetHerald::Models::Report.count).to eq(3)
|
122
|
+
expect(subject).to eq(2)
|
123
|
+
expect(PuppetHerald::Models::Report.count).to eq(1)
|
124
|
+
expect(PuppetHerald::Models::Node.count).to eq(1)
|
125
|
+
end
|
126
|
+
end
|
71
127
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -3,6 +3,12 @@ require 'rspec/its'
|
|
3
3
|
begin
|
4
4
|
gem 'simplecov'
|
5
5
|
require 'simplecov'
|
6
|
+
require 'simplecov-lcov'
|
7
|
+
SimpleCov::Formatter::LcovFormatter.report_with_single_file = true
|
8
|
+
SimpleCov.formatters = [
|
9
|
+
SimpleCov::Formatter::HTMLFormatter,
|
10
|
+
SimpleCov::Formatter::LcovFormatter,
|
11
|
+
]
|
6
12
|
SimpleCov.start do
|
7
13
|
add_filter '/test/'
|
8
14
|
add_filter '/spec/'
|
@@ -21,16 +27,6 @@ rescue Gem::LoadError
|
|
21
27
|
# do nothing
|
22
28
|
end
|
23
29
|
|
24
|
-
begin
|
25
|
-
gem 'coveralls'
|
26
|
-
require 'coveralls'
|
27
|
-
if ENV['TRAVIS']
|
28
|
-
Coveralls.wear!
|
29
|
-
end
|
30
|
-
rescue Gem::LoadError
|
31
|
-
# do nothing
|
32
|
-
end
|
33
|
-
|
34
30
|
begin
|
35
31
|
gem 'pry'
|
36
32
|
require 'pry'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'sinatra/activerecord'
|
2
|
+
require 'rspec-activerecord'
|
3
|
+
|
4
|
+
RSpec.configure do |c|
|
5
|
+
c.fixture_path = File.expand_path("../../integration/fixtures", __FILE__)
|
6
|
+
c.use_transactional_fixtures = true
|
7
|
+
end
|
8
|
+
|
9
|
+
def fixtures(symbol)
|
10
|
+
ActiveRecord::FixtureSet.create_fixtures(RSpec.configuration.fixture_path, symbol.to_s)
|
11
|
+
end
|
12
|
+
|
13
|
+
def fixture(type, name)
|
14
|
+
fixture_set = ActiveRecord::FixtureSet.all_loaded_fixtures[type.to_s]
|
15
|
+
fixture_set.fixtures.find { |k, v| k == name.to_s }.second
|
16
|
+
end
|
@@ -2,6 +2,7 @@ require 'spec_helper'
|
|
2
2
|
require 'puppet-herald'
|
3
3
|
require 'puppet-herald/cli'
|
4
4
|
require 'sinatra/base'
|
5
|
+
require 'sinatra/activerecord'
|
5
6
|
|
6
7
|
class TestCLI < PuppetHerald::CLI
|
7
8
|
def test_parse(argv)
|
@@ -14,9 +15,9 @@ context 'With silenced loggers' do
|
|
14
15
|
let(:cli) { TestCLI.new }
|
15
16
|
|
16
17
|
before :each do
|
17
|
-
|
18
|
-
|
19
|
-
PuppetHerald
|
18
|
+
PuppetHerald.environment = :test
|
19
|
+
PuppetHerald.logger.level = 100
|
20
|
+
PuppetHerald.errlogger.level = 100
|
20
21
|
PuppetHerald::database::dbconn = nil
|
21
22
|
allow(FileUtils).to receive(:touch)
|
22
23
|
end
|
@@ -43,7 +44,6 @@ context 'With silenced loggers' do
|
|
43
44
|
context 'on defaults' do
|
44
45
|
let(:argv) { [] }
|
45
46
|
before :each do
|
46
|
-
expect(PuppetHerald).to receive(:in_dev?).at_least(:once).and_return(false)
|
47
47
|
expect(Kernel).to receive(:exit).with(0)
|
48
48
|
expect(Sinatra::Application).to receive(:run!).and_return :none
|
49
49
|
dbconn = { :adapter => 'sqlite3', :database => ':memory:' }
|
@@ -2,6 +2,11 @@ require 'spec_helper'
|
|
2
2
|
require 'puppet-herald'
|
3
3
|
|
4
4
|
describe PuppetHerald::Database, '.spec' do
|
5
|
+
before(:each) do
|
6
|
+
PuppetHerald.environment = :test
|
7
|
+
PuppetHerald.logger.level = 100
|
8
|
+
PuppetHerald.errlogger.level = 100
|
9
|
+
end
|
5
10
|
let(:tempdir) { Dir.tmpdir }
|
6
11
|
let(:echo) { false }
|
7
12
|
subject { PuppetHerald::database::spec echo }
|
@@ -26,9 +31,6 @@ describe PuppetHerald::Database, '.spec' do
|
|
26
31
|
its(:size) { should eq 2 }
|
27
32
|
context 'while echoing!!' do
|
28
33
|
let(:echo) { true }
|
29
|
-
before :each do
|
30
|
-
PuppetHerald::database::logger.level = Logger::FATAL
|
31
|
-
end
|
32
34
|
its(:class) { should be Hash }
|
33
35
|
its(:size) { should eq 2 }
|
34
36
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'puppet-herald/purgecronjob'
|
2
|
+
|
3
|
+
describe PuppetHerald::PurgeCronJob do
|
4
|
+
let(:job) { PuppetHerald::PurgeCronJob.new }
|
5
|
+
let(:now) { DateTime.new(2015,4,9,20,3,2,'+2') }
|
6
|
+
let(:minus30d) { DateTime.new(2015,3,10,20,3,2,'+2') }
|
7
|
+
let(:minus45d) { DateTime.new(2015,2,23,20,3,2,'+2') }
|
8
|
+
before(:each) do
|
9
|
+
expect(DateTime).to receive(:now).and_return(now)
|
10
|
+
ENV['PUPPET_HERALD_PURGE_CRON'] = '*/15 * * * * *'
|
11
|
+
ENV['PUPPET_HERALD_PURGE_LIMIT'] = '45d'
|
12
|
+
end
|
13
|
+
describe '.parse_limit' do
|
14
|
+
it 'with "30d" to be equal to `2015-03-10 20:03:02 +0200`' do
|
15
|
+
expect(job.parse_limit '30d').to eq(minus30d)
|
16
|
+
end
|
17
|
+
it 'with "45d" to be equal to `2015-02-23 20:03:02 +0200`' do
|
18
|
+
expect(job.parse_limit '45d').to eq(minus45d)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
describe '.run!' do
|
22
|
+
level = nil
|
23
|
+
before(:each) do
|
24
|
+
require 'puppet-herald'
|
25
|
+
require 'puppet-herald/models/report'
|
26
|
+
expect(PuppetHerald::Models::Report).to receive(:purge_older_then).with(minus45d).and_return(2)
|
27
|
+
level = PuppetHerald.logger.level
|
28
|
+
PuppetHerald.logger.level = 100
|
29
|
+
end
|
30
|
+
after(:each) do
|
31
|
+
PuppetHerald.logger.level = level
|
32
|
+
end
|
33
|
+
it 'executes properlly' do
|
34
|
+
expect(job.run!).to be_nil
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
{
|
2
|
+
"name": "puppet-herald",
|
3
|
+
"description": "Report processor for Puppet",
|
4
|
+
"version": "0.2.0",
|
5
|
+
"homepage": "https://github.com/wavesoftware/gem-puppet-herald",
|
6
|
+
"license": "Apache-2.0",
|
7
|
+
"private": false,
|
8
|
+
"dependencies": {
|
9
|
+
"angular": "1.3.x",
|
10
|
+
"angular-moment": "0.10.x",
|
11
|
+
"angular-ui-router": "0.2.x",
|
12
|
+
"bootstrap": "3.3.x",
|
13
|
+
"angular-utils-pagination": "0.6.x",
|
14
|
+
"angular-breadcrumb": "0.3.x",
|
15
|
+
"ngstorage": "0.3.x"
|
16
|
+
},
|
17
|
+
"devDependencies": {
|
18
|
+
"angular-loader": "1.3.x",
|
19
|
+
"angular-mocks": "1.3.x"
|
20
|
+
}
|
21
|
+
}
|
@@ -1,7 +1,15 @@
|
|
1
|
+
var project = require('../../lib/puppet-herald/project');
|
2
|
+
|
3
|
+
var files = project.dependencies.
|
4
|
+
concat(project.devDependencies).
|
5
|
+
concat(project.files.js).
|
6
|
+
concat(project.files.html).
|
7
|
+
concat(project.files.tests);
|
8
|
+
|
1
9
|
module.exports = function(config) {
|
2
10
|
config.set({
|
3
11
|
|
4
|
-
basePath:
|
12
|
+
basePath: project.cwd,
|
5
13
|
|
6
14
|
singleRun: true,
|
7
15
|
|
@@ -9,23 +17,20 @@ module.exports = function(config) {
|
|
9
17
|
|
10
18
|
reporters: ['story', 'coverage'],
|
11
19
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
'lib/puppet-herald/public/**/*.js': ['coverage'],
|
17
|
-
'lib/puppet-herald/public/**/*.html': ['ng-html2js']
|
18
|
-
},
|
20
|
+
// source files, that you wanna generate coverage for
|
21
|
+
// do not include tests or libraries
|
22
|
+
// (these files will be instrumented by Istanbul)
|
23
|
+
preprocessors: project.preprocessors,
|
19
24
|
|
20
25
|
// optionally, configure the reporter
|
21
26
|
coverageReporter: {
|
22
27
|
dir : 'coverage/javascript',
|
23
28
|
reporters: [
|
24
29
|
// reporters not supporting the `file` property
|
25
|
-
{ type: '
|
30
|
+
{ type: 'lcov', subdir: 'lcov' },
|
26
31
|
// reporters supporting the `file` property, use `subdir` to directly
|
27
32
|
// output them in the `dir` directory
|
28
|
-
{ type: 'cobertura', subdir: '.', file: 'cobertura.
|
33
|
+
{ type: 'cobertura', subdir: '.', file: 'cobertura.xml' },
|
29
34
|
{ type: 'text', subdir: '.', file: 'text.txt' },
|
30
35
|
{ type: 'text-summary', subdir: '.', file: 'text-summary.txt' },
|
31
36
|
]
|
@@ -33,19 +38,9 @@ module.exports = function(config) {
|
|
33
38
|
|
34
39
|
ngHtml2JsPreprocessor: {
|
35
40
|
// strip this from the file path
|
36
|
-
stripPrefix: '
|
41
|
+
stripPrefix: project.publicDir + '/',
|
37
42
|
},
|
38
43
|
|
39
|
-
files:
|
40
|
-
'node_modules/angular/angular.js',
|
41
|
-
'node_modules/angular-loader/angular-loader.js',
|
42
|
-
'node_modules/angular-mocks/angular-mocks.js',
|
43
|
-
'node_modules/angular-route/angular-route.js',
|
44
|
-
'node_modules/moment/moment.js',
|
45
|
-
'node_modules/angular-moment/angular-moment.js',
|
46
|
-
'lib/puppet-herald/public/**/*.js',
|
47
|
-
'lib/puppet-herald/public/**/*.html',
|
48
|
-
'test/javascript/src/**/*.js'
|
49
|
-
]
|
44
|
+
files: files
|
50
45
|
});
|
51
46
|
};
|
@@ -13,78 +13,27 @@ describe('herald module', function() {
|
|
13
13
|
}));
|
14
14
|
|
15
15
|
it('should have a `null` as page set by default', function() {
|
16
|
-
expect(
|
16
|
+
expect(scope.page).toEqual(null);
|
17
17
|
});
|
18
18
|
|
19
|
-
it('should have
|
19
|
+
it('should have ("Nodes", null), after Page.title("Nodes") call', function() {
|
20
20
|
Page.title('Nodes');
|
21
|
-
expect(
|
22
|
-
expect(
|
21
|
+
expect(scope.page).toEqual("Nodes");
|
22
|
+
expect(scope.target).toEqual(undefined);
|
23
23
|
});
|
24
24
|
|
25
|
-
it('should have
|
25
|
+
it('should have ("Report", 1234567), after Page.title("Report", 1234567) call', function() {
|
26
26
|
Page.title('Report', 1234567);
|
27
|
-
expect(
|
28
|
-
expect(
|
27
|
+
expect(scope.page).toEqual("Report");
|
28
|
+
expect(scope.target).toEqual(1234567);
|
29
29
|
});
|
30
30
|
|
31
|
-
it('should have
|
31
|
+
it('should have ("Node", "master"), after Page.title("Node", "master", " - ") call', function() {
|
32
32
|
Page.title('Node', "master", ' - ');
|
33
|
-
expect(
|
34
|
-
expect(
|
33
|
+
expect(scope.page).toEqual("Node");
|
34
|
+
expect(scope.target).toEqual('master');
|
35
35
|
});
|
36
36
|
|
37
37
|
});
|
38
38
|
|
39
|
-
describe('routes mapping', function() {
|
40
|
-
|
41
|
-
var $route, $location, $rootScope, navigateTo;
|
42
|
-
beforeEach(module('nodes/nodes.html'));
|
43
|
-
beforeEach(module('node/node.html'));
|
44
|
-
beforeEach(module('report/report.html'));
|
45
|
-
beforeEach(inject(function(_$route_, _$location_, _$rootScope_) {
|
46
|
-
$route = _$route_;
|
47
|
-
$location = _$location_;
|
48
|
-
$rootScope = _$rootScope_;
|
49
|
-
navigateTo = function(address) {
|
50
|
-
expect($route.current).toBeUndefined();
|
51
|
-
$location.path(address);
|
52
|
-
$rootScope.$digest();
|
53
|
-
};
|
54
|
-
}));
|
55
|
-
|
56
|
-
it('should map NodesController for unknown address', function() {
|
57
|
-
expect($route.routes[null].redirectTo).toEqual('/nodes');
|
58
|
-
});
|
59
|
-
it('should map NodesController if given "/nodes"', function() {
|
60
|
-
expect($route.routes['/nodes'].controller).toBe('NodesController');
|
61
|
-
});
|
62
|
-
|
63
|
-
it('should navigate to "/nodes" if given "/" a address', function() {
|
64
|
-
navigateTo('/');
|
65
|
-
expect($route.current.controller).toBe('NodesController');
|
66
|
-
expect($route.current.originalPath).toBe('/nodes');
|
67
|
-
});
|
68
|
-
|
69
|
-
it('should navigate to "/nodes" if given "/non-existing-link-0" a address', function() {
|
70
|
-
navigateTo('/non-existing-link-0');
|
71
|
-
expect($route.current.controller).toBe('NodesController');
|
72
|
-
expect($route.current.originalPath).toBe('/nodes');
|
73
|
-
});
|
74
|
-
|
75
|
-
it('should navigate to "/node/1" if given "/node/1" a address', function() {
|
76
|
-
navigateTo('/node/1');
|
77
|
-
expect($route.current.controller).toBe('NodeController');
|
78
|
-
expect($route.current.originalPath).toBe('/node/:nodeId');
|
79
|
-
expect($route.current.pathParams.nodeId).toBe('1');
|
80
|
-
});
|
81
|
-
|
82
|
-
it('should navigate to "/report/1" if given "/report/1" a address', function() {
|
83
|
-
navigateTo('/report/1');
|
84
|
-
expect($route.current.controller).toBe('ReportController');
|
85
|
-
expect($route.current.originalPath).toBe('/report/:reportId');
|
86
|
-
expect($route.current.pathParams.reportId).toBe('1');
|
87
|
-
});
|
88
|
-
|
89
|
-
});
|
90
39
|
});
|