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