require "spec_helper" require "byebug" describe ActsAsFullCalendarEvent do it "adds methods" do expect(Event.respond_to?(:calendar_items)).to eq(true) expect(Event.respond_to?(:calendar_items_filter_by_category)).to eq(true) expect(Event.respond_to?(:calendar_items_filter_by_user)).to eq(true) expect(Event.respond_to?(:calendar_items_filter_by_date)).to eq(true) expect(Event.respond_to?(:calendar_items_categories)).to eq(true) expect(Event.respond_to?(:calendar_category_class)).to eq(true) expect(Event.new.respond_to?(:calendar_item_start_at)).to eq(true) expect(Event.new.respond_to?(:calendar_item_end_at)).to eq(true) expect(Event.new.respond_to?(:calendar_item_title)).to eq(true) expect(Event.new.respond_to?(:calendar_item_text_color)).to eq(true) expect(Event.new.respond_to?(:calendar_item_color)).to eq(true) expect(Event.new.respond_to?(:calendar_item_url)).to eq(true) expect(Event.new.respond_to?(:calendar_item_link_data_toggle)).to eq(true) expect(Event.new.respond_to?(:calendar_item_link_data_target)).to eq(true) end context "methods return value" do let!(:event1) { create(:event, start_at: Date.new(2018, 1, 1), end_at: Date.new(2018, 1, 31), category_id: 1, user_id: 1) } let!(:event2) { create(:event, start_at: Date.new(2018, 1, 15), end_at: Date.new(2018, 1, 31), category_id: 1, user_id: 2) } let!(:event3) { create(:event, start_at: Date.new(2018, 2, 1), end_at: Date.new(2018, 2, 2), category_id: 1, user_id: 2) } let!(:event4) { create(:event, start_at: Date.new(2018, 1, 1), end_at: Date.new(2018, 1, 31), category_id: 2, user_id: 2) } let!(:category) { create(:category, id: 1, name: "Category 1") } let!(:category2) { create(:category, id: 2, name: "Category 2") } let!(:category3) { create(:category, id: 3, name: "Category 3") } it "#calendar_items" do expect(Event.calendar_items).to eq([event1, event2, event3, event4]) end it "#calendar_items_filter_by_category" do expect(Event.calendar_items_filter_by_category(1)).to eq([event1, event2, event3]) expect(Event.calendar_items_filter_by_category(2)).to eq([event4]) end it "#calendar_items_filter_by_user" do expect(Event.calendar_items_filter_by_user(1)).to eq([event1]) expect(Event.calendar_items_filter_by_user(2)).to eq([event2, event3, event4]) end it "#calendar_items_filter_by_date" do expect(Event.calendar_items_filter_by_date(Date.new(2018, 1, 1), Date.new(2018, 1, 31))).to eq([event1, event2, event4]) expect(Event.calendar_items_filter_by_date(Date.new(2018, 1, 1), Date.new(2018, 2, 10))).to eq([event1, event2, event3, event4]) expect(Event.calendar_items_filter_by_date(Date.new(2018, 1, 10), Date.new(2018, 2, 10))).to eq([event2, event3]) end it "#calendar_items_categories" do expect(Event.calendar_items_categories.map(&:name)).to eq(["Category 1", "Category 2", "Category 3"]) end it "#calendar_category_class" do expect(Event.calendar_category_class).to eq(Category) end it "#calendar_item_start_at" do expect(event1.calendar_item_start_at).to eq(Date.new(2018, 1, 1)) end it "#calendar_item_end_at" do expect(event1.calendar_item_end_at).to eq(Date.new(2018, 1, 31)) end it "#calendar_item_title" do expect(event1.calendar_item_title).to eq("title") end it "#calendar_item_color" do expect(event1.calendar_item_color).to eq("#FF0000") end it "#calendar_item_text_color" do expect(event1.calendar_item_text_color).to eq("#AAFFBB") end it "#calendar_item_url" do expect(event1.calendar_item_url).to eq("URL") end it "#calendar_item_link_data_toggle" do expect(event1.calendar_item_link_data_toggle).to eq("modal") end it "#calendar_item_link_data_target" do expect(event1.calendar_item_link_data_target).to eq("#modal") end end end