|
1 | | -import { dayDiff, dayFromDate, dayFromString, dayIterator, dayMonthStart, dayOffset, dayRange, dayToParts, dayToString, dayYearStart } from './day' |
| 1 | +import { dayDiff, dayFromAny, dayFromDate, dayFromString, dayFromTimestamp, dayFromTimestampSeconds, dayFromToday, dayIterator, dayMonthStart, dayOffset, dayRange, dayToDate, dayToParts, dayToString, dayToTimestamp, dayToTimestampSeconds, dayYearStart } from './day' |
2 | 2 | import { Day, dateStringToDays, forEachDay } from './day-legacy' |
3 | 3 |
|
4 | 4 | describe('days', () => { |
@@ -201,4 +201,53 @@ describe('days', () => { |
201 | 201 |
|
202 | 202 | expect(dayIterator(-6, 20130104).next().value).toEqual(20121230) |
203 | 203 | }) |
| 204 | + |
| 205 | + it('dayFromAny with string input', () => { |
| 206 | + const _res = dayFromAny('2022-10-05') |
| 207 | + expect(_res).toBe(20221005) |
| 208 | + }) |
| 209 | + |
| 210 | + it('dayFromAny with array input', () => { |
| 211 | + const _res = dayFromAny([2023]) |
| 212 | + expect(_res).toBe(20230101) |
| 213 | + }) |
| 214 | + |
| 215 | + it('dayFromAny with date input', () => { |
| 216 | + const date = new Date('1995-12-17T03:24:00') |
| 217 | + const _res = dayFromAny(date) |
| 218 | + expect(_res).toBe(19951217) |
| 219 | + }) |
| 220 | + |
| 221 | + it('dayFromAny ignores short numbers', () => { |
| 222 | + const _res = dayFromAny(42) |
| 223 | + expect(_res).toBeUndefined() |
| 224 | + }) |
| 225 | + |
| 226 | + it('dayFromTimestamp', () => { |
| 227 | + const _day = 20220815 |
| 228 | + const _stamp = dayToTimestamp(_day) |
| 229 | + const _res = dayFromTimestamp(_stamp) |
| 230 | + expect(_res).toBe(_day) |
| 231 | + }) |
| 232 | + |
| 233 | + it('dayToTimestampSeconds', () => { |
| 234 | + const _day = 20220815 |
| 235 | + const _secs = dayToTimestampSeconds(_day) |
| 236 | + expect(_secs).toBeCloseTo(Math.floor(dayToDate(_day, true).getTime() / 1000)) |
| 237 | + }) |
| 238 | + |
| 239 | + it('dayFromTimestampSeconds', () => { |
| 240 | + const _day = 20220815 |
| 241 | + const _secs = dayToTimestampSeconds(_day) |
| 242 | + expect(_secs).toBeCloseTo(Math.floor(dayToDate(_day, true).getTime() / 1000)) |
| 243 | + const _res = dayFromTimestampSeconds(_secs) |
| 244 | + // Multiplying by 1000 to match the ms input for dayFromTimestampSeconds |
| 245 | + expect(_res).toBe(_day) |
| 246 | + }) |
| 247 | + |
| 248 | + it('dayFromToday', () => { |
| 249 | + const _today = dayFromToday() |
| 250 | + // Should be current day in YYYYMMDD format |
| 251 | + expect(typeof _today).toBe('number') |
| 252 | + }) |
204 | 253 | }) |
0 commit comments