package web import ( "testing" "time" ) func TestComputeInsightsReminderOnlyForStory(t *testing.T) { now := time.Now() r := computeInsightsReminder("feed", now.Add(-time.Hour), now, false) if r.Show { t.Errorf("expected no reminder for a non-story post type, got %+v", r) } } func TestComputeInsightsReminderSkippedWhenAlreadySecured(t *testing.T) { now := time.Now() r := computeInsightsReminder("story", now.Add(-time.Hour), now, true) if r.Show { t.Errorf("expected no reminder once an insights asset already exists, got %+v", r) } } func TestComputeInsightsReminderUrgentWithinWindow(t *testing.T) { now := time.Now() r := computeInsightsReminder("story", now.Add(-2*time.Hour), now, false) if !r.Show || !r.Urgent || r.Expired { t.Fatalf("expected an urgent, non-expired reminder, got %+v", r) } } func TestComputeInsightsReminderExpiredAfterWindow(t *testing.T) { now := time.Now() r := computeInsightsReminder("story", now.Add(-25*time.Hour), now, false) if !r.Show || !r.Expired || r.Urgent { t.Fatalf("expected an expired reminder, got %+v", r) } } func TestComputeInsightsReminderSkippedWithoutPublishTime(t *testing.T) { r := computeInsightsReminder("story", time.Time{}, time.Now(), false) if r.Show { t.Errorf("expected no reminder without a known publish time, got %+v", r) } }