spec/models/flyboy/ability_spec.rb in flyboy-1.0.7 vs spec/models/flyboy/ability_spec.rb in flyboy-1.1.0
- old
+ new
@@ -1,10 +1,10 @@
require 'spec_helper'
describe Flyboy::Ability do
let(:ability){
- Flyboy::Ability.new
+ Ability.new
}
describe Flyboy::Goal do
it "can list goals" do
expect(ability.can?(:list, Flyboy::Goal)).to be true
@@ -53,11 +53,11 @@
expect(ability.can?(:open, goal)).to be true
end
it "can't close goals with undone tasks" do
task = FactoryGirl.create(:flyboy_task, done: false)
- goal = task.goal
+ goal = task.taskable
expect(ability.can?(:close, goal)).to be false
end
it "can't open already open goal" do
goal = FactoryGirl.create(:flyboy_goal, status: "open")
@@ -87,29 +87,29 @@
expect(ability.can?(:read, task)).to be true
end
it "can update task in an open goal" do
goal = FactoryGirl.create(:flyboy_goal, status: "open")
- task = FactoryGirl.create(:flyboy_task, goal: goal)
+ task = FactoryGirl.create(:flyboy_task, taskable: goal)
expect(ability.can?(:update, task)).to be true
end
it "can't update task in an closed goal" do
goal = FactoryGirl.create(:flyboy_goal, status: "closed")
- task = FactoryGirl.create(:flyboy_task, goal: goal)
+ task = FactoryGirl.create(:flyboy_task, taskable: goal)
expect(ability.can?(:update, task)).to be false
end
it "can delete task in an open goal" do
goal = FactoryGirl.create(:flyboy_goal, status: "open")
- task = FactoryGirl.create(:flyboy_task, goal: goal)
+ task = FactoryGirl.create(:flyboy_task, taskable: goal)
expect(ability.can?(:delete, task)).to be true
end
it "can't delete task in an closed goal" do
goal = FactoryGirl.create(:flyboy_goal, status: "closed")
- task = FactoryGirl.create(:flyboy_task, goal: goal)
+ task = FactoryGirl.create(:flyboy_task, taskable: goal)
expect(ability.can?(:delete, task)).to be false
end
it "can complete a undone task" do
task = FactoryGirl.create(:flyboy_task, done: false)
@@ -132,9 +132,17 @@
end
it "can't snooze if reminder >= today" do
task = FactoryGirl.create(:flyboy_task, reminder: Date.today, term: Date.tomorrow)
expect(ability.can?(:snooze, task)).to be false
+ end
+
+ it "can't create a task if it can't read taskable" do
+ class DummyObject; end
+ task = build(:flyboy_task)
+ def task.taskable; DummyObject.new; end
+
+ expect(ability.can?(:create, task)).to be false
end
end
end