|
5 | 5 | package timeutil
|
6 | 6 |
|
7 | 7 | import (
|
| 8 | + "fmt" |
8 | 9 | "os"
|
9 | 10 | "testing"
|
10 | 11 | "time"
|
@@ -47,27 +48,39 @@ func TestTimeSince(t *testing.T) {
|
47 | 48 |
|
48 | 49 | // test that each diff in `diffs` yields the expected string
|
49 | 50 | test := func(expected string, diffs ...time.Duration) {
|
50 |
| - for _, diff := range diffs { |
51 |
| - actual := timeSince(BaseDate, BaseDate.Add(diff), "en") |
52 |
| - assert.Equal(t, i18n.Tr("en", "tool.ago", expected), actual) |
53 |
| - actual = timeSince(BaseDate.Add(diff), BaseDate, "en") |
54 |
| - assert.Equal(t, i18n.Tr("en", "tool.from_now", expected), actual) |
55 |
| - } |
| 51 | + t.Run(expected, func(t *testing.T) { |
| 52 | + for _, diff := range diffs { |
| 53 | + actual := timeSince(BaseDate, BaseDate.Add(diff), "en") |
| 54 | + assert.Equal(t, i18n.Tr("en", "tool.ago", expected), actual) |
| 55 | + actual = timeSince(BaseDate.Add(diff), BaseDate, "en") |
| 56 | + assert.Equal(t, i18n.Tr("en", "tool.from_now", expected), actual) |
| 57 | + } |
| 58 | + }) |
56 | 59 | }
|
57 | 60 | test("1 second", time.Second, time.Second+50*time.Millisecond)
|
58 | 61 | test("2 seconds", 2*time.Second, 2*time.Second+50*time.Millisecond)
|
59 |
| - test("1 minute", time.Minute, time.Minute+30*time.Second) |
60 |
| - test("2 minutes", 2*time.Minute, 2*time.Minute+30*time.Second) |
61 |
| - test("1 hour", time.Hour, time.Hour+30*time.Minute) |
62 |
| - test("2 hours", 2*time.Hour, 2*time.Hour+30*time.Minute) |
63 |
| - test("1 day", DayDur, DayDur+12*time.Hour) |
64 |
| - test("2 days", 2*DayDur, 2*DayDur+12*time.Hour) |
| 62 | + test("1 minute", time.Minute, time.Minute+29*time.Second) |
| 63 | + test("2 minutes", 2*time.Minute, time.Minute+30*time.Second) |
| 64 | + test("2 minutes", 2*time.Minute, 2*time.Minute+29*time.Second) |
| 65 | + test("1 hour", time.Hour, time.Hour+29*time.Minute) |
| 66 | + test("2 hours", 2*time.Hour, time.Hour+30*time.Minute) |
| 67 | + test("2 hours", 2*time.Hour, 2*time.Hour+29*time.Minute) |
| 68 | + test("3 hours", 3*time.Hour, 2*time.Hour+30*time.Minute) |
| 69 | + test("1 day", DayDur, DayDur+11*time.Hour) |
| 70 | + test("2 days", 2*DayDur, DayDur+12*time.Hour) |
| 71 | + test("2 days", 2*DayDur, 2*DayDur+11*time.Hour) |
| 72 | + test("3 days", 3*DayDur, 2*DayDur+12*time.Hour) |
65 | 73 | test("1 week", WeekDur, WeekDur+3*DayDur)
|
| 74 | + test("2 weeks", 2*WeekDur, WeekDur+4*DayDur) |
66 | 75 | test("2 weeks", 2*WeekDur, 2*WeekDur+3*DayDur)
|
67 |
| - test("1 month", MonthDur, MonthDur+15*DayDur) |
68 |
| - test("2 months", 2*MonthDur, 2*MonthDur+15*DayDur) |
69 |
| - test("1 year", YearDur, YearDur+6*MonthDur) |
70 |
| - test("2 years", 2*YearDur, 2*YearDur+6*MonthDur) |
| 76 | + test("3 weeks", 3*WeekDur, 2*WeekDur+4*DayDur) |
| 77 | + test("1 month", MonthDur, MonthDur+14*DayDur) |
| 78 | + test("2 months", 2*MonthDur, MonthDur+15*DayDur) |
| 79 | + test("2 months", 2*MonthDur, 2*MonthDur+14*DayDur) |
| 80 | + test("1 year", YearDur, YearDur+5*MonthDur) |
| 81 | + test("2 years", 2*YearDur, YearDur+6*MonthDur) |
| 82 | + test("2 years", 2*YearDur, 2*YearDur+5*MonthDur) |
| 83 | + test("3 years", 3*YearDur, 2*YearDur+6*MonthDur) |
71 | 84 | }
|
72 | 85 |
|
73 | 86 | func TestTimeSincePro(t *testing.T) {
|
@@ -114,38 +127,47 @@ func TestHtmlTimeSince(t *testing.T) {
|
114 | 127 | }
|
115 | 128 | test("1 second", time.Second)
|
116 | 129 | test("3 minutes", 3*time.Minute+5*time.Second)
|
117 |
| - test("1 day", DayDur+18*time.Hour) |
118 |
| - test("1 week", WeekDur+6*DayDur) |
119 |
| - test("3 months", 3*MonthDur+3*WeekDur) |
| 130 | + test("1 day", DayDur+11*time.Hour) |
| 131 | + test("1 week", WeekDur+3*DayDur) |
| 132 | + test("3 months", 3*MonthDur+2*WeekDur) |
120 | 133 | test("2 years", 2*YearDur)
|
121 |
| - test("3 years", 3*YearDur+11*MonthDur+4*WeekDur) |
| 134 | + test("3 years", 2*YearDur+11*MonthDur+4*WeekDur) |
122 | 135 | }
|
123 | 136 |
|
124 | 137 | func TestComputeTimeDiff(t *testing.T) {
|
125 | 138 | // test that for each offset in offsets,
|
126 | 139 | // computeTimeDiff(base + offset) == (offset, str)
|
127 | 140 | test := func(base int64, str string, offsets ...int64) {
|
128 | 141 | for _, offset := range offsets {
|
129 |
| - diff, diffStr := computeTimeDiff(base+offset, "en") |
130 |
| - assert.Equal(t, offset, diff) |
131 |
| - assert.Equal(t, str, diffStr) |
| 142 | + t.Run(fmt.Sprintf("%s:%d", str, offset), func(t *testing.T) { |
| 143 | + diff, diffStr := computeTimeDiff(base+offset, "en") |
| 144 | + assert.Equal(t, offset, diff) |
| 145 | + assert.Equal(t, str, diffStr) |
| 146 | + }) |
132 | 147 | }
|
133 | 148 | }
|
134 | 149 | test(0, "now", 0)
|
135 | 150 | test(1, "1 second", 0)
|
136 | 151 | test(2, "2 seconds", 0)
|
137 |
| - test(Minute, "1 minute", 0, 1, 30, Minute-1) |
138 |
| - test(2*Minute, "2 minutes", 0, Minute-1) |
139 |
| - test(Hour, "1 hour", 0, 1, Hour-1) |
140 |
| - test(5*Hour, "5 hours", 0, Hour-1) |
141 |
| - test(Day, "1 day", 0, 1, Day-1) |
142 |
| - test(5*Day, "5 days", 0, Day-1) |
143 |
| - test(Week, "1 week", 0, 1, Week-1) |
144 |
| - test(3*Week, "3 weeks", 0, 4*Day+25000) |
145 |
| - test(Month, "1 month", 0, 1, Month-1) |
146 |
| - test(10*Month, "10 months", 0, Month-1) |
147 |
| - test(Year, "1 year", 0, Year-1) |
148 |
| - test(3*Year, "3 years", 0, Year-1) |
| 152 | + test(Minute, "1 minute", 0, 1, 29) |
| 153 | + test(Minute, "2 minutes", 30, Minute-1) |
| 154 | + test(2*Minute, "2 minutes", 0, 29) |
| 155 | + test(2*Minute, "3 minutes", 30, Minute-1) |
| 156 | + test(Hour, "1 hour", 0, 1, 29*Minute) |
| 157 | + test(Hour, "2 hours", 30*Minute, Hour-1) |
| 158 | + test(5*Hour, "5 hours", 0, 29*Minute) |
| 159 | + test(Day, "1 day", 0, 1, 11*Hour) |
| 160 | + test(Day, "2 days", 12*Hour, Day-1) |
| 161 | + test(5*Day, "5 days", 0, 11*Hour) |
| 162 | + test(Week, "1 week", 0, 1, 3*Day) |
| 163 | + test(Week, "2 weeks", 4*Day, Week-1) |
| 164 | + test(3*Week, "3 weeks", 0, 3*Day) |
| 165 | + test(Month, "1 month", 0, 1) |
| 166 | + test(Month, "2 months", 16*Day, Month-1) |
| 167 | + test(10*Month, "10 months", 0, 13*Day) |
| 168 | + test(Year, "1 year", 0, 179*Day) |
| 169 | + test(Year, "2 years", 180*Day, Year-1) |
| 170 | + test(3*Year, "3 years", 0, 179*Day) |
149 | 171 | }
|
150 | 172 |
|
151 | 173 | func TestMinutesToFriendly(t *testing.T) {
|
|
0 commit comments