spec/unit/burndown_data_spec.rb in trollolo-0.0.5 vs spec/unit/burndown_data_spec.rb in trollolo-0.0.6
- old
+ new
@@ -1,11 +1,10 @@
require_relative 'spec_helper'
include GivenFilesystemSpecHelpers
describe BurndownData do
-
before(:each) do
@burndown = BurndownData.new(dummy_settings)
@burndown.board_id = "53186e8391ef8671265eba9d"
full_board_mock
end
@@ -13,84 +12,111 @@
describe BurndownData::Result do
it "calculates total" do
r = described_class.new
r.open = 7
r.done = 4
-
+
expect(r.total).to eq 11
end
end
describe "setters" do
it "sets open story points" do
@burndown.story_points.open = 13
expect(@burndown.story_points.open).to eq 13
end
-
+
it "sets open tasks" do
@burndown.tasks.open = 42
expect(@burndown.tasks.open).to eq 42
end
end
describe "#fetch" do
+ context "with meta data on sprint card" do
+ before do
+ @burndown.fetch
+ end
- before do
- @burndown.fetch
- end
+ it "returns story points" do
+ expect( @burndown.story_points.total ).to eq 16
+ expect( @burndown.story_points.open ).to eq 13
+ expect( @burndown.story_points.done ).to eq 3
+ end
- it "returns story points" do
- expect( @burndown.story_points.total ).to eq 16
- expect( @burndown.story_points.open ).to eq 13
- expect( @burndown.story_points.done ).to eq 3
- end
+ it "returns extra story points" do
+ expect( @burndown.extra_story_points.total ).to eq 8
+ expect( @burndown.extra_story_points.open ).to eq 8
+ expect( @burndown.extra_story_points.done ).to eq 0
+ end
- it "returns extra story points" do
- expect( @burndown.extra_story_points.total ).to eq 8
- expect( @burndown.extra_story_points.open ).to eq 8
- expect( @burndown.extra_story_points.done ).to eq 0
- end
+ it "returns unplanned story points" do
+ expect( @burndown.unplanned_story_points.total ).to eq 3
+ expect( @burndown.unplanned_story_points.open ).to eq 1
+ expect( @burndown.unplanned_story_points.done ).to eq 2
+ end
- it "returns tasks" do
- expect( @burndown.tasks.total ).to eq 13
- expect( @burndown.tasks.open ).to eq 9
- expect( @burndown.tasks.done ).to eq 4
- end
-
- it "returns extra tasks" do
- expect( @burndown.extra_tasks.total ).to eq 1
- expect( @burndown.extra_tasks.open ).to eq 1
- expect( @burndown.extra_tasks.done ).to eq 0
- end
+ it "returns tasks" do
+ expect( @burndown.tasks.total ).to eq 13
+ expect( @burndown.tasks.open ).to eq 9
+ expect( @burndown.tasks.done ).to eq 4
+ end
- it "returns meta data" do
- expect( @burndown.meta ).to eq({
- "sprint" => 10,
- "total_days" => 18,
- "weekend_lines" => [1.5, 6.5, 11.5, 16.5]
- })
+ it "returns extra tasks" do
+ expect( @burndown.extra_tasks.total ).to eq 1
+ expect( @burndown.extra_tasks.open ).to eq 1
+ expect( @burndown.extra_tasks.done ).to eq 0
+ end
+
+ it "returns unplanned tasks" do
+ expect( @burndown.unplanned_tasks.total ).to eq 2
+ expect( @burndown.unplanned_tasks.open ).to eq 1
+ expect( @burndown.unplanned_tasks.done ).to eq 1
+ end
+
+ it "returns meta data" do
+ expect( @burndown.meta ).to eq({
+ "sprint" => 10,
+ "total_days" => 18,
+ "weekend_lines" => [1.5, 6.5, 11.5, 16.5]
+ })
+ end
+
+ it "saves date and time" do
+ expected_date_time = DateTime.parse("2015-01-12T13:57:16+01:00")
+ allow(DateTime).to receive(:now).and_return(expected_date_time)
+ @burndown.fetch
+ expect(@burndown.date_time).to eq(expected_date_time)
+ end
end
- it "saves date and time" do
- expected_date_time = DateTime.parse("2015-01-12T13:57:16+01:00")
- allow(DateTime).to receive(:now).and_return(expected_date_time)
- @burndown.fetch
- expect(@burndown.date_time).to eq(expected_date_time)
+ context "without meta data on sprint card" do
+ before do
+ allow(Card).to receive(:parse_yaml_from_description).and_return(nil)
+ @burndown.fetch
+ end
+
+ it "does not fail" do
+ expect(@burndown.meta).to be(nil)
+ end
end
end
describe '#to_hash' do
-
it 'converts to hash' do
@burndown.story_points.open = 1
@burndown.story_points.done = 2
@burndown.tasks.open = 3
@burndown.tasks.done = 4
@burndown.extra_story_points.open = 5
@burndown.extra_story_points.done = 6
@burndown.extra_tasks.open = 7
@burndown.extra_tasks.done = 8
+ @burndown.unplanned_story_points.open = 1
+ @burndown.unplanned_story_points.done = 2
+ @burndown.unplanned_tasks.open = 1
+ @burndown.unplanned_tasks.done = 1
@burndown.date_time = DateTime.parse('20150115')
expected_hash = {
'date' => '2015-01-15',
'updated_at' => '2015-01-15T00:00:00+00:00',
@@ -105,14 +131,20 @@
'story_points_extra' => {
'done' => 6
},
'tasks_extra' => {
'done' => 8
+ },
+ 'unplanned_story_points' => {
+ 'total' => 3,
+ 'open' => 1
+ },
+ 'unplanned_tasks' => {
+ 'total' => 2,
+ 'open' => 1
}
}
expect(@burndown.to_hash).to eq(expected_hash)
end
-
end
-
end