107 lines
3.6 KiB
Ruby
107 lines
3.6 KiB
Ruby
require_relative '../lib/task'
|
|
|
|
describe Task do
|
|
|
|
context "Task#new" do
|
|
context "When task already includes pomodori" do
|
|
subject { Task.new(1, "Write Task spec (#pomo: 3/5)")}
|
|
specify { expect(subject.pomodori).to eq(3) }
|
|
specify { expect(subject.planned).to eq(5) }
|
|
specify { expect(subject.text).to eq("Write Task spec") }
|
|
specify { expect(subject.to_s).to eq("Write Task spec (#pomo: 3/5)") }
|
|
end
|
|
|
|
context "When task does not include pomodori" do
|
|
subject { Task.new(1, "Write Task spec")}
|
|
specify { expect(subject.pomodori).to eq(0) }
|
|
specify { expect(subject.planned).to eq(0) }
|
|
specify { expect(subject.text).to eq("Write Task spec") }
|
|
specify { expect(subject.to_s).to eq("Write Task spec (#pomo: 0/0)") }
|
|
end
|
|
end
|
|
|
|
context "Task#add_pomo" do
|
|
context "Prioritized task" do
|
|
subject { Task.new(1, "(A) Write Task spec (#pomo: 3/5)")}
|
|
specify { expect(subject.pomodori).to eq(3) }
|
|
|
|
context "Adding pomo to a tagged task" do
|
|
before { subject.add_pomo }
|
|
specify { expect(subject.pomodori).to eq(4) }
|
|
specify { expect(subject.to_s).to eq("Write Task spec (#pomo: 4/5)") }
|
|
specify { subject.add_pomo; expect(subject.to_s).to eq("Write Task spec (#pomo: 5/5)") }
|
|
end
|
|
end
|
|
|
|
context "Already tagged task" do
|
|
subject { Task.new(1, "Write Task spec (#pomo: 3/5)")}
|
|
specify { expect(subject.pomodori).to eq(3) }
|
|
|
|
context "Adding pomo to a tagged task" do
|
|
before { subject.add_pomo }
|
|
specify { expect(subject.pomodori).to eq(4) }
|
|
specify { expect(subject.to_s).to eq("Write Task spec (#pomo: 4/5)") }
|
|
end
|
|
end
|
|
|
|
context "Normal task" do
|
|
subject { Task.new(1, "Write Task spec")}
|
|
specify { expect(subject.pomodori).to eq(0) }
|
|
|
|
context "Adding pomo to a normal task" do
|
|
before { subject.add_pomo }
|
|
specify { expect(subject.pomodori).to eq(1) }
|
|
specify { expect(subject.to_s).to eq("Write Task spec (#pomo: 1/0)") }
|
|
end
|
|
end
|
|
end
|
|
|
|
context "Task#plan" do
|
|
context "When task already includes pomodori" do
|
|
subject { Task.new(1, "Write Task spec (#pomo: 3/5)")}
|
|
before { subject.plan(10) }
|
|
specify { expect(subject.pomodori).to eq(3) }
|
|
specify { expect(subject.planned).to eq(10) }
|
|
specify { expect(subject.text).to eq("Write Task spec") }
|
|
specify { expect(subject.to_s).to eq("Write Task spec (#pomo: 3/10)") }
|
|
end
|
|
|
|
context "When task does not include pomodori" do
|
|
subject { Task.new(1, "Write Task spec")}
|
|
before { subject.plan(10) }
|
|
specify { expect(subject.pomodori).to eq(0) }
|
|
specify { expect(subject.planned).to eq(10) }
|
|
specify { expect(subject.text).to eq("Write Task spec") }
|
|
specify { expect(subject.to_s).to eq("Write Task spec (#pomo: 0/10)") }
|
|
end
|
|
end
|
|
|
|
context "Task#status" do
|
|
subject { Task.new(1, "Write Task spec")}
|
|
|
|
context "new task" do
|
|
specify { expect(subject.status).to eq :new }
|
|
end
|
|
|
|
context "planned task" do
|
|
before { subject.plan(10) }
|
|
specify { expect(subject.status).to eq :planned }
|
|
end
|
|
|
|
context "in progress task" do
|
|
before { subject.plan(10); subject.add_pomo }
|
|
specify { expect(subject.status).to eq :in_progress }
|
|
end
|
|
|
|
context "completed task" do
|
|
before { subject.plan(1); subject.add_pomo }
|
|
specify { expect(subject.status).to eq :completed }
|
|
end
|
|
|
|
context "underestimated task" do
|
|
before { subject.plan(1); 2.times { subject.add_pomo } }
|
|
specify { expect(subject.status).to eq :underestimated }
|
|
end
|
|
end
|
|
end
|
|
|