-
-
Notifications
You must be signed in to change notification settings - Fork 763
/
helpers_spec.rb
104 lines (83 loc) · 2.86 KB
/
helpers_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
require 'spec_helper'
require 'rspec/core/formatters/helpers'
RSpec.describe RSpec::Core::Formatters::Helpers do
let(:helper) { Object.new.extend(RSpec::Core::Formatters::Helpers) }
describe "format duration" do
context '< 1' do
it "returns '0.xxxxx seconds' formatted string" do
expect(helper.format_duration(0.123456)).to eq("0.12346 seconds")
end
end
context '> 1 and < 60' do
it "returns 'xx.xx seconds' formatted string" do
expect(helper.format_duration(45.51)).to eq("45.51 seconds")
end
end
context '> 60 and < 120' do
it "returns 'x minute xx.xx seconds' formatted string" do
expect(helper.format_duration(70.14)).to eq("1 minute 10.14 seconds")
end
end
context '> 120 and < 300' do
it "returns 'x minutes xx.x seconds' formatted string" do
expect(helper.format_duration(135.14)).to eq("2 minutes 15.1 seconds")
end
end
context '> 300' do
it "returns 'x minutes xx seconds' formatted string" do
expect(helper.format_duration(335.14)).to eq("5 minutes 35 seconds")
end
end
context '= 61' do
it "returns 'x minute x second' formatted string" do
expect(helper.format_duration(61)).to eq("1 minute 1 second")
end
end
context '= 1' do
it "returns 'x second' formatted string" do
expect(helper.format_duration(1)).to eq("1 second")
end
end
context 'with mathn loaded' do
include MathnIntegrationSupport
it "returns 'x minutes xx.x seconds' formatted string", :slow do
with_mathn_loaded do
expect(helper.format_duration(133.7)).to eq("2 minutes 13.7 seconds")
end
end
end
end
describe "format seconds" do
it "uses passed in precision if specified unless result is 0" do
expect(helper.format_seconds(0.01234, 2)).to eq("0.01")
end
context "sub second times" do
it "returns 5 digits of precision" do
expect(helper.format_seconds(0.000006)).to eq("0.00001")
end
it "strips off trailing zeroes beyond sub-second precision" do
expect(helper.format_seconds(0.020000)).to eq("0.02")
end
context "0" do
it "strips off trailing zeroes" do
expect(helper.format_seconds(0.00000000001)).to eq("0")
end
end
context "> 1" do
it "strips off trailing zeroes" do
expect(helper.format_seconds(1.00000000001)).to eq("1")
end
end
end
context "second and greater times" do
it "returns 2 digits of precision" do
expect(helper.format_seconds(50.330340)).to eq("50.33")
end
it "returns human friendly elasped time" do
expect(helper.format_seconds(50.1)).to eq("50.1")
expect(helper.format_seconds(5)).to eq("5")
expect(helper.format_seconds(5.0)).to eq("5")
end
end
end
end