spec/models/dorsale/flyboy/task_spec.rb in dorsale-3.8.1 vs spec/models/dorsale/flyboy/task_spec.rb in dorsale-3.9.0

- old
+ new

@@ -1,6 +1,6 @@ -require 'rails_helper' +require "rails_helper" describe Dorsale::Flyboy::Task do it { is_expected.to belong_to(:taskable) } it { is_expected.to belong_to :owner } it { is_expected.to have_many(:comments).dependent(:destroy) } @@ -34,12 +34,12 @@ it "#progress should be 0" do expect(@task.progress).to eq 0 end end - describe '#validation' do - it 'factory should be #valid?' do + describe "#validation" do + it "factory should be #valid?" do expect(create(:flyboy_task)).to be_valid end end # describe '#validation' describe "reminders" do @@ -58,96 +58,120 @@ task.valid? expect(task.errors).to have_key :reminder_date end it "should auto reset reminder_date" do - task = described_class.new(term: "2017-04-12", reminder_type: "custom", reminder_date: "2017-04-11") + task = described_class.new( + :term => "2017-04-12", + :reminder_type => "custom", + :reminder_date => "2017-04-11", + ) task.reminder_type = nil expect(task.reminder_date).to eq nil end it "should auto set reminder_date by with days" do - task = described_class.new(term: "2017-04-12", reminder_type: "duration", reminder_duration: 1, reminder_unit: "days") + task = described_class.new( + :term => "2017-04-12", + :reminder_type => "duration", + :reminder_duration => 1, + :reminder_unit => "days", + ) expect(task.reminder_date).to eq Date.parse("2017-04-11") end it "should auto set reminder_date by with weeks" do - task = described_class.new(term: "2017-04-12", reminder_type: "duration", reminder_duration: 2, reminder_unit: "weeks") + task = described_class.new( + :term => "2017-04-12", + :reminder_type => "duration", + :reminder_duration => 2, + :reminder_unit => "weeks", + ) expect(task.reminder_date).to eq Date.parse("2017-03-29") end it "should auto set reminder_date by with months" do - task = described_class.new(term: "2017-04-12", reminder_type: "duration", reminder_duration: 1, reminder_unit: "months") + task = described_class.new( + :term => "2017-04-12", + :reminder_type => "duration", + :reminder_duration => 1, + :reminder_unit => "months", + ) expect(task.reminder_date).to eq Date.parse("2017-03-12") end it "update term should update reminder_date" do - task = described_class.new(term: "2017-04-12", reminder_type: "duration", reminder_duration: 1, reminder_unit: "days") + task = described_class.new( + :term => "2017-04-12", + :reminder_type => "duration", + :reminder_duration => 1, + :reminder_unit => "days", + ) expect(task.reminder_date).to eq Date.parse("2017-04-11") task.term = "2017-04-25" expect(task.reminder_date).to eq Date.parse("2017-04-24") end end # describe "reminders" describe "scopes" do it "should return delayed undone tasks" do - task = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date+1) - task_1 = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date-1, done: true) - task_2 = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date-1, done: false) - task_3 = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date-2, done: true) - task_4 = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date-2, done: false) + task = create(:flyboy_task, owner: @user1, term: Date.current+1) + task1 = create(:flyboy_task, owner: @user1, term: Date.current-1, done: true) + task2 = create(:flyboy_task, owner: @user1, term: Date.current-1, done: false) + task3 = create(:flyboy_task, owner: @user1, term: Date.current-2, done: true) + task4 = create(:flyboy_task, owner: @user1, term: Date.current-2, done: false) tasks = ::Dorsale::Flyboy::Task.delayed - expect(tasks).to contain_exactly(task_2, task_4) + expect(tasks).to contain_exactly(task2, task4) end it "should return today undone tasks" do - task = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date+1) - task_1 = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date, done: true) - task_2 = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date, done: false) + task = create(:flyboy_task, owner: @user1, term: Date.current+1) + task1 = create(:flyboy_task, owner: @user1, term: Date.current, done: true) + task2 = create(:flyboy_task, owner: @user1, term: Date.current, done: false) tasks = ::Dorsale::Flyboy::Task.today - expect(tasks).to contain_exactly(task_2) + expect(tasks).to contain_exactly(task2) end it "should return tomorrow undone tasks" do - task = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date) - task_1 = create(:flyboy_task, owner: @user1, term: Date.tomorrow, done: true) - task_2 = create(:flyboy_task, owner: @user1, term: Date.tomorrow, done: false) + task = create(:flyboy_task, owner: @user1, term: Date.current) + task1 = create(:flyboy_task, owner: @user1, term: Date.tomorrow, done: true) + task2 = create(:flyboy_task, owner: @user1, term: Date.tomorrow, done: false) tasks = ::Dorsale::Flyboy::Task.tomorrow - expect(tasks).to contain_exactly(task_2) + expect(tasks).to contain_exactly(task2) end it "should return this week undone tasks" do Timecop.freeze(2015, 5, 21, 12, 0, 0) - task = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date-7, done: false) - task_1 = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date+2, done: true) - task_2 = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date+2, done: false) - task_3 = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date+3, done: false) - task_4 = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date+5, done: false) + task = create(:flyboy_task, owner: @user1, term: Date.current-7, done: false) + task1 = create(:flyboy_task, owner: @user1, term: Date.current+2, done: true) + task2 = create(:flyboy_task, owner: @user1, term: Date.current+2, done: false) + task3 = create(:flyboy_task, owner: @user1, term: Date.current+3, done: false) + task4 = create(:flyboy_task, owner: @user1, term: Date.current+5, done: false) tasks = ::Dorsale::Flyboy::Task.this_week - expect(tasks).to contain_exactly(task_2, task_3) + expect(tasks).to contain_exactly(task2, task3) end it "should return next week undone tasks" do Timecop.freeze(2015, 5, 21) - task = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date, done: false) - task_1 = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date+7, done: true) - task_2 = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date+7, done: false) - task_3 = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date+9, done: false) - task_4 = create(:flyboy_task, owner: @user1, term: Time.zone.now.to_date+12, done: false) + task = create(:flyboy_task, owner: @user1, term: Date.current, done: false) + task1 = create(:flyboy_task, owner: @user1, term: Date.current+7, done: true) + task2 = create(:flyboy_task, owner: @user1, term: Date.current+7, done: false) + task3 = create(:flyboy_task, owner: @user1, term: Date.current+9, done: false) + task4 = create(:flyboy_task, owner: @user1, term: Date.current+12, done: false) tasks = ::Dorsale::Flyboy::Task.next_week - expect(tasks).to contain_exactly(task_2, task_3) + expect(tasks).to contain_exactly(task2, task3) end end # describe "scopes" describe "states" do # L’affichage de la couleur de la tâche dépend de son achèvement: # Si date jour < date relance alors noir let(:task_ontime) { create(:flyboy_task, :reminder_type => "custom", - :reminder_date => Time.zone.now.to_date + 1.day, - :term => Time.zone.now.to_date + 3.days, + :reminder_date => Date.current + 1.day, + :term => Date.current + 3.days, :done => false, ) } it "should return :ontime" do @@ -157,12 +181,12 @@ # Si date relance <= date jour let(:task_onwarning) { create(:flyboy_task, :reminder_type => "custom", - :reminder_date => Time.zone.now.to_date, - :term => Time.zone.now.to_date + 3.days, + :reminder_date => Date.current, + :term => Date.current + 3.days, :done => false, ) } it "should return :onwarning" do @@ -172,12 +196,12 @@ # Si date butoir <= date jour alors rouge let(:task_onalert) { create(:flyboy_task, :reminder_type => "custom", - :reminder_date => Time.zone.now.to_date - 3.days, - :term => Time.zone.now.to_date, + :reminder_date => Date.current - 3.days, + :term => Date.current, :done => false, ) } it "should return :onalert" do @@ -187,11 +211,11 @@ # Si action faite alors vert let(:task_done) { create(:flyboy_task, :reminder_type => "custom", - :reminder_date => Time.zone.now.to_date - 3.days, - :term => Time.zone.now.to_date - 1.day, + :reminder_date => Date.current - 3.days, + :term => Date.current - 1.day, :done => true, ) } it "should return :done" do