Files
grecia/spec/components/admin/duration_component_spec.rb
Javi Martín 7227815a16 Split duration component in two
We were displaying dates in two different formats in the same component,
leading to strange hacks like manually calling the `call` method or not
being able to use `render_inline` in the tests.

Since we're going to reuse one of these formats outside the budgets
section, we're splitting the component. We're also removing the
mentioned hacks.
2022-09-14 15:14:23 +02:00

33 lines
1.0 KiB
Ruby

require "rails_helper"
describe Admin::DurationComponent do
it "shows both dates when both are defined" do
durable = double(
starts_at: Time.zone.local(2015, 8, 1, 12, 0, 0),
ends_at: Time.zone.local(2016, 9, 30, 16, 30, 00)
)
render_inline Admin::DurationComponent.new(durable)
expect(page.text).to eq "2015-08-01 12:00 - 2016-09-30 16:29"
expect(page).to have_css "time", exact_text: "2015-08-01 12:00"
expect(page).to have_css "time", exact_text: "2016-09-30 16:29"
end
it "shows the start date when no end date is defined" do
durable = double(starts_at: Time.zone.local(2015, 8, 1, 12, 0, 0), ends_at: nil)
render_inline Admin::DurationComponent.new(durable)
expect(page.text).to eq "2015-08-01 12:00 - "
end
it "shows the end date when no start date is defined" do
durable = double(starts_at: nil, ends_at: Time.zone.local(2016, 9, 30, 16, 30, 00))
render_inline Admin::DurationComponent.new(durable)
expect(page.text).to eq "- 2016-09-30 16:29"
end
end