aboutsummaryrefslogtreecommitdiff
path: root/internal/model/feed_test.go
diff options
context:
space:
mode:
authorGravatar Dror Levin <dror@psybear.com> 2023-08-24 12:02:46 +0200
committerGravatar Frédéric Guillot <f@miniflux.net> 2023-08-31 20:27:09 -0700
commitbea9017b4833ee8608657feb31d650fe48183c8d (patch)
tree88ac5340ed864150b63a2082fad03c034f9e2d1d /internal/model/feed_test.go
parent64c4c6b34743761d0f6ea02fc4d37594781afbf4 (diff)
downloadv2-bea9017b4833ee8608657feb31d650fe48183c8d.tar.gz
v2-bea9017b4833ee8608657feb31d650fe48183c8d.tar.zst
v2-bea9017b4833ee8608657feb31d650fe48183c8d.zip
Add factor for entry_frequency scheduler
Allow the user to increase the frequency of the entry_frequency scheduler by a configurable factor in order to shorten the time between updates.
Diffstat (limited to 'internal/model/feed_test.go')
-rw-r--r--internal/model/feed_test.go25
1 files changed, 25 insertions, 0 deletions
diff --git a/internal/model/feed_test.go b/internal/model/feed_test.go
index 91850f50..34f89e90 100644
--- a/internal/model/feed_test.go
+++ b/internal/model/feed_test.go
@@ -152,3 +152,28 @@ func TestFeedScheduleNextCheckEntryCountBasedMinInterval(t *testing.T) {
t.Error(`The next_check_at should not be before the now + min interval`)
}
}
+
+func TestFeedScheduleNextCheckEntryFrequencyFactor(t *testing.T) {
+ factor := 2
+ os.Clearenv()
+ os.Setenv("POLLING_SCHEDULER", "entry_frequency")
+ os.Setenv("SCHEDULER_ENTRY_FREQUENCY_FACTOR", fmt.Sprintf("%d", factor))
+
+ var err error
+ parser := config.NewParser()
+ config.Opts, err = parser.ParseEnvironmentVariables()
+ if err != nil {
+ t.Fatalf(`Parsing failure: %v`, err)
+ }
+ feed := &Feed{}
+ weeklyCount := 7
+ feed.ScheduleNextCheck(weeklyCount)
+
+ if feed.NextCheckAt.IsZero() {
+ t.Error(`The next_check_at must be set`)
+ }
+
+ if feed.NextCheckAt.After(time.Now().Add(time.Minute * time.Duration(config.Opts.SchedulerEntryFrequencyMaxInterval()/factor))) {
+ t.Error(`The next_check_at should not be after the now + factor * count`)
+ }
+}