|
8 | 8 | formatDateWithLocale, |
9 | 9 | getPeriodTypeByCode, |
10 | 10 | getPeriodTypeCode, |
| 11 | + getDayOfWeek, |
| 12 | + hasDayOfWeek, |
| 13 | + replaceDayOfWeek, |
11 | 14 | } from './date'; |
12 | 15 | import { formatWithLocale } from '.'; |
13 | 16 | import { createLocaleSettings, defaultLocale } from './locale'; |
@@ -538,3 +541,132 @@ describe('getPeriodTypeCode()', () => { |
538 | 541 | expect(val).toBe('BIWEEK1-SAT'); |
539 | 542 | }); |
540 | 543 | }); |
| 544 | + |
| 545 | +describe('hasDayOfWeek()', () => { |
| 546 | + const data = [ |
| 547 | + // Week |
| 548 | + [PeriodType.Week, false], |
| 549 | + [PeriodType.WeekSun, true], |
| 550 | + [PeriodType.WeekMon, true], |
| 551 | + [PeriodType.WeekTue, true], |
| 552 | + [PeriodType.WeekWed, true], |
| 553 | + [PeriodType.WeekThu, true], |
| 554 | + [PeriodType.WeekFri, true], |
| 555 | + [PeriodType.WeekSat, true], |
| 556 | + // BiWeek1 |
| 557 | + [PeriodType.BiWeek1, false], |
| 558 | + [PeriodType.BiWeek1Sun, true], |
| 559 | + [PeriodType.BiWeek1Mon, true], |
| 560 | + [PeriodType.BiWeek1Tue, true], |
| 561 | + [PeriodType.BiWeek1Wed, true], |
| 562 | + [PeriodType.BiWeek1Thu, true], |
| 563 | + [PeriodType.BiWeek1Fri, true], |
| 564 | + [PeriodType.BiWeek1Sat, true], |
| 565 | + // BiWeek2 |
| 566 | + [PeriodType.BiWeek2, false], |
| 567 | + [PeriodType.BiWeek2Sun, true], |
| 568 | + [PeriodType.BiWeek2Mon, true], |
| 569 | + [PeriodType.BiWeek2Tue, true], |
| 570 | + [PeriodType.BiWeek2Wed, true], |
| 571 | + [PeriodType.BiWeek2Thu, true], |
| 572 | + [PeriodType.BiWeek2Fri, true], |
| 573 | + [PeriodType.BiWeek2Sat, true], |
| 574 | + // Other |
| 575 | + [PeriodType.Day, false], |
| 576 | + [PeriodType.Month, false], |
| 577 | + [PeriodType.CalendarYear, false], |
| 578 | + ] as const; |
| 579 | + |
| 580 | + data.forEach(([periodType, dayOfWeek]) => { |
| 581 | + it(PeriodType[periodType], () => { |
| 582 | + const val = hasDayOfWeek(periodType); |
| 583 | + expect(val).toBe(dayOfWeek); |
| 584 | + }); |
| 585 | + }); |
| 586 | +}); |
| 587 | + |
| 588 | +describe('getDayOfWeek()', () => { |
| 589 | + const data = [ |
| 590 | + // Week |
| 591 | + [PeriodType.Week, null], |
| 592 | + [PeriodType.WeekSun, DayOfWeek.Sunday], |
| 593 | + [PeriodType.WeekMon, DayOfWeek.Monday], |
| 594 | + [PeriodType.WeekTue, DayOfWeek.Tuesday], |
| 595 | + [PeriodType.WeekWed, DayOfWeek.Wednesday], |
| 596 | + [PeriodType.WeekThu, DayOfWeek.Thursday], |
| 597 | + [PeriodType.WeekFri, DayOfWeek.Friday], |
| 598 | + [PeriodType.WeekSat, DayOfWeek.Saturday], |
| 599 | + // BiWeek1 |
| 600 | + [PeriodType.BiWeek1, null], |
| 601 | + [PeriodType.BiWeek1Sun, DayOfWeek.Sunday], |
| 602 | + [PeriodType.BiWeek1Mon, DayOfWeek.Monday], |
| 603 | + [PeriodType.BiWeek1Tue, DayOfWeek.Tuesday], |
| 604 | + [PeriodType.BiWeek1Wed, DayOfWeek.Wednesday], |
| 605 | + [PeriodType.BiWeek1Thu, DayOfWeek.Thursday], |
| 606 | + [PeriodType.BiWeek1Fri, DayOfWeek.Friday], |
| 607 | + [PeriodType.BiWeek1Sat, DayOfWeek.Saturday], |
| 608 | + // BiWeek2 |
| 609 | + [PeriodType.BiWeek2, null], |
| 610 | + [PeriodType.BiWeek2Sun, DayOfWeek.Sunday], |
| 611 | + [PeriodType.BiWeek2Mon, DayOfWeek.Monday], |
| 612 | + [PeriodType.BiWeek2Tue, DayOfWeek.Tuesday], |
| 613 | + [PeriodType.BiWeek2Wed, DayOfWeek.Wednesday], |
| 614 | + [PeriodType.BiWeek2Thu, DayOfWeek.Thursday], |
| 615 | + [PeriodType.BiWeek2Fri, DayOfWeek.Friday], |
| 616 | + [PeriodType.BiWeek2Sat, DayOfWeek.Saturday], |
| 617 | + // Other |
| 618 | + [PeriodType.Day, null], |
| 619 | + [PeriodType.Month, null], |
| 620 | + [PeriodType.CalendarYear, null], |
| 621 | + ] as const; |
| 622 | + |
| 623 | + data.forEach(([periodType, dayOfWeek]) => { |
| 624 | + it(PeriodType[periodType], () => { |
| 625 | + const val = getDayOfWeek(periodType); |
| 626 | + expect(val).toBe(dayOfWeek); |
| 627 | + }); |
| 628 | + }); |
| 629 | +}); |
| 630 | + |
| 631 | +describe('replaceDayOfWeek()', () => { |
| 632 | + const data = [ |
| 633 | + // Week |
| 634 | + [PeriodType.Week, DayOfWeek.Sunday, PeriodType.WeekSun], |
| 635 | + [PeriodType.WeekSun, DayOfWeek.Sunday, PeriodType.WeekSun], |
| 636 | + [PeriodType.WeekSun, DayOfWeek.Monday, PeriodType.WeekMon], |
| 637 | + [PeriodType.WeekSun, DayOfWeek.Tuesday, PeriodType.WeekTue], |
| 638 | + [PeriodType.WeekSun, DayOfWeek.Wednesday, PeriodType.WeekWed], |
| 639 | + [PeriodType.WeekWed, DayOfWeek.Thursday, PeriodType.WeekThu], |
| 640 | + [PeriodType.WeekWed, DayOfWeek.Friday, PeriodType.WeekFri], |
| 641 | + [PeriodType.WeekSat, DayOfWeek.Saturday, PeriodType.WeekSat], |
| 642 | + // BiWeek1 |
| 643 | + [PeriodType.BiWeek1, DayOfWeek.Sunday, PeriodType.BiWeek1Sun], |
| 644 | + [PeriodType.BiWeek1Sun, DayOfWeek.Sunday, PeriodType.BiWeek1Sun], |
| 645 | + [PeriodType.BiWeek1Sun, DayOfWeek.Monday, PeriodType.BiWeek1Mon], |
| 646 | + [PeriodType.BiWeek1Sun, DayOfWeek.Tuesday, PeriodType.BiWeek1Tue], |
| 647 | + [PeriodType.BiWeek1Sun, DayOfWeek.Wednesday, PeriodType.BiWeek1Wed], |
| 648 | + [PeriodType.BiWeek1Wed, DayOfWeek.Thursday, PeriodType.BiWeek1Thu], |
| 649 | + [PeriodType.BiWeek1Wed, DayOfWeek.Friday, PeriodType.BiWeek1Fri], |
| 650 | + [PeriodType.BiWeek1Sat, DayOfWeek.Saturday, PeriodType.BiWeek1Sat], |
| 651 | + // BiWeek2 |
| 652 | + [PeriodType.BiWeek2, DayOfWeek.Sunday, PeriodType.BiWeek2Sun], |
| 653 | + [PeriodType.BiWeek2Sun, DayOfWeek.Sunday, PeriodType.BiWeek2Sun], |
| 654 | + [PeriodType.BiWeek2Sun, DayOfWeek.Monday, PeriodType.BiWeek2Mon], |
| 655 | + [PeriodType.BiWeek2Sun, DayOfWeek.Tuesday, PeriodType.BiWeek2Tue], |
| 656 | + [PeriodType.BiWeek2Sun, DayOfWeek.Wednesday, PeriodType.BiWeek2Wed], |
| 657 | + [PeriodType.BiWeek2Wed, DayOfWeek.Thursday, PeriodType.BiWeek2Thu], |
| 658 | + [PeriodType.BiWeek2Wed, DayOfWeek.Friday, PeriodType.BiWeek2Fri], |
| 659 | + [PeriodType.BiWeek2Sat, DayOfWeek.Saturday, PeriodType.BiWeek2Sat], |
| 660 | + // Other |
| 661 | + [PeriodType.Day, DayOfWeek.Sunday, PeriodType.Day], |
| 662 | + [PeriodType.Month, DayOfWeek.Sunday, PeriodType.Month], |
| 663 | + [PeriodType.CalendarYear, DayOfWeek.Sunday, PeriodType.CalendarYear], |
| 664 | + ] as const; |
| 665 | + |
| 666 | + data.forEach(([periodType, dayOfWeek, expected]) => { |
| 667 | + it(`${PeriodType[periodType]} / ${DayOfWeek[dayOfWeek]}`, () => { |
| 668 | + const val = replaceDayOfWeek(periodType, dayOfWeek); |
| 669 | + expect(val).toBe(expected); |
| 670 | + }); |
| 671 | + }); |
| 672 | +}); |
0 commit comments