spec/lib/dotiw_spec.rb in dotiw-5.3.1 vs spec/lib/dotiw_spec.rb in dotiw-5.3.2
- old
+ new
@@ -318,13 +318,40 @@
expect(distance_of_time_in_words(start, finish, true, options)).to eq(output)
end
end
if defined?(ActionView)
- describe 'ActionView' do
+ describe 'ActionView without include seconds argument' do
[
[START_TIME,
+ START_TIME + 1.year + 2.months + 3.weeks + 4.days + 5.hours + 6.minutes + 7.seconds,
+ { vague: true },
+ 'about 1 year'],
+ [START_TIME,
+ START_TIME + 1.year + 2.months + 3.weeks + 4.days + 5.hours + 6.minutes + 7.seconds,
+ { vague: 'Yes please' },
+ 'about 1 year'],
+ [START_TIME,
+ START_TIME + 1.year + 2.months + 3.weeks + 4.days + 5.hours + 6.minutes + 7.seconds,
+ { vague: false },
+ '1 year, 2 months, 3 weeks, 4 days, 5 hours, and 6 minutes'],
+ [START_TIME,
+ START_TIME + 1.year + 2.months + 3.weeks + 4.days + 5.hours + 6.minutes + 7.seconds,
+ { vague: nil },
+ '1 year, 2 months, 3 weeks, 4 days, 5 hours, and 6 minutes']
+ ].each do |start, finish, options, output|
+ it "should be #{output}" do
+ expect(distance_of_time_in_words(start, finish, options)).to eq(output)
+ end
+ end
+ end
+ end
+
+ if defined?(ActionView)
+ describe 'ActionView with include seconds argument' do
+ [
+ [START_TIME,
START_TIME + 1.year + 2.months + 3.weeks + 4.days + 5.hours + 6.minutes + 7.seconds,
{ vague: true },
'about 1 year'],
[START_TIME,
START_TIME + 1.year + 2.months + 3.weeks + 4.days + 5.hours + 6.minutes + 7.seconds,
@@ -341,11 +368,11 @@
].each do |start, finish, options, output|
it "should be #{output}" do
expect(distance_of_time_in_words(start, finish, true, options)).to eq(output)
end
end
-
+
context 'via ActionController::Base.helpers' do
it '#distance_of_time_in_words' do
end_time = START_TIME + 1.year + 2.months + 3.weeks + 4.days + 5.hours + 6.minutes + 7.seconds
expected = '1 year, 2 months, 3 weeks, 4 days, 5 hours, 6 minutes, and 7 seconds'
actual = ActionController::Base.helpers.distance_of_time_in_words(START_TIME, end_time, true,
@@ -367,35 +394,96 @@
end.to raise_error(ArgumentError)
end
end
context 'without options' do
- it 'shows detailed duration' do
+ it 'shows detailed duration without seconds' do
expected = '3 days and 14 minutes'
actual = ActionController::Base.helpers.distance_of_time_in_words_to_now(Time.now - 3.days - 14.minutes)
expect(actual).to eq(expected)
end
end
- context 'with vague option true' do
+ context 'with seconds false and vague option true' do
it 'shows vague duration' do
expected = '3 days'
actual = ActionController::Base.helpers.distance_of_time_in_words_to_now(
- Time.now - 3.days - 14.minutes, false, vague: true
+ Time.now - 3.days - 14.minutes - 20.seconds, false, vague: true
)
expect(actual).to eq(expected)
end
end
- context 'with vague option false' do
- it 'shows detailed duration' do
+ context 'with seconds true and vague option true' do
+ it 'shows vague duration' do
+ expected = '3 days'
+ actual = ActionController::Base.helpers.distance_of_time_in_words_to_now(
+ Time.now - 3.days - 14.minutes - 20.seconds, true, vague: true
+ )
+ expect(actual).to eq(expected)
+ end
+ end
+
+ context 'with seconds false and vague option false' do
+ it 'shows detailed duration without seconds' do
expected = '3 days and 14 minutes'
actual = ActionController::Base.helpers.distance_of_time_in_words_to_now(
- Time.now - 3.days - 14.minutes, false, vague: false
+ Time.now - 3.days - 14.minutes - 20.seconds, false, vague: false
)
expect(actual).to eq(expected)
end
end
+
+ context 'with seconds true and vague option false' do
+ it 'shows detailed duration with seconds' do
+ expected = '3 days, 14 minutes, and 20 seconds'
+ actual = ActionController::Base.helpers.distance_of_time_in_words_to_now(
+ Time.now - 3.days - 14.minutes - 20.seconds, true, vague: false
+ )
+ expect(actual).to eq(expected)
+ end
+ end
+
+ context 'without seconds and vague option false' do
+ it 'shows detailed duration without seconds' do
+ expected = '3 days and 14 minutes'
+ actual = ActionController::Base.helpers.distance_of_time_in_words_to_now(
+ Time.now - 3.days - 14.minutes - 20.seconds, vague: false
+ )
+ expect(actual).to eq(expected)
+ end
+ end
+
+ context 'without seconds and vague option true' do
+ it 'shows vague duration' do
+ expected = '3 days'
+ actual = ActionController::Base.helpers.distance_of_time_in_words_to_now(
+ Time.now - 3.days - 14.minutes - 20.seconds, vague: true
+ )
+ expect(actual).to eq(expected)
+ end
+ end
+
+ context 'with options include_seconds true and vague option false' do
+ it 'shows detailed duration with seconds' do
+ expected = '3 days, 14 minutes, and 20 seconds'
+ actual = ActionController::Base.helpers.distance_of_time_in_words_to_now(
+ Time.now - 3.days - 14.minutes - 20.seconds, {include_seconds: true, vague: false}
+ )
+ expect(actual).to eq(expected)
+ end
+ end
+
+ context 'with options include_seconds false and vague option true' do
+ it 'shows vague duration' do
+ expected = '3 days'
+ actual = ActionController::Base.helpers.distance_of_time_in_words_to_now(
+ Time.now - 3.days - 14.minutes - 20.seconds, {include_seconds: false, vague: true}
+ )
+ expect(actual).to eq(expected)
+ end
+ end
+
end
end
end
end