| 666 | } |
| 667 | |
| 668 | func TestConfigTimeouts(t *testing.T) { |
| 669 | var testCases = []struct { |
| 670 | name string |
| 671 | file string |
| 672 | expectedCfg TimeoutCfg |
| 673 | }{ |
| 674 | { |
| 675 | "default", |
| 676 | "testdata/default_values.yml", |
| 677 | TimeoutCfg{ |
| 678 | ReadTimeout: Duration(time.Minute), |
| 679 | WriteTimeout: Duration(3 * time.Minute), // defaultExecutionTime + 1 min |
| 680 | IdleTimeout: Duration(10 * time.Minute), |
| 681 | }, |
| 682 | }, |
| 683 | { |
| 684 | "defined", |
| 685 | "testdata/timeouts.defined.yml", |
| 686 | TimeoutCfg{ |
| 687 | ReadTimeout: Duration(time.Minute), |
| 688 | WriteTimeout: Duration(time.Hour), |
| 689 | IdleTimeout: Duration(24 * time.Hour), |
| 690 | }, |
| 691 | }, |
| 692 | { |
| 693 | "calculated write 1", |
| 694 | "testdata/timeouts.write.calculated.yml", |
| 695 | TimeoutCfg{ |
| 696 | ReadTimeout: Duration(time.Minute), |
| 697 | // 10 + 1 minute |
| 698 | WriteTimeout: Duration(11 * 60 * time.Second), |
| 699 | IdleTimeout: Duration(10 * time.Minute), |
| 700 | }, |
| 701 | }, |
| 702 | { |
| 703 | "calculated write 2", |
| 704 | "testdata/timeouts.write.calculated2.yml", |
| 705 | TimeoutCfg{ |
| 706 | ReadTimeout: Duration(time.Minute), |
| 707 | // 20 + 1 minute |
| 708 | WriteTimeout: Duration(21 * 60 * time.Second), |
| 709 | IdleTimeout: Duration(10 * time.Minute), |
| 710 | }, |
| 711 | }, |
| 712 | { |
| 713 | "calculated write 3", |
| 714 | "testdata/timeouts.write.calculated3.yml", |
| 715 | TimeoutCfg{ |
| 716 | ReadTimeout: Duration(time.Minute), |
| 717 | // 50 + 1 minute |
| 718 | WriteTimeout: Duration(51 * 60 * time.Second), |
| 719 | IdleTimeout: Duration(10 * time.Minute), |
| 720 | }, |
| 721 | }, |
| 722 | } |
| 723 | |
| 724 | for _, tc := range testCases { |
| 725 | t.Run(tc.name, func(t *testing.T) { |