package matcher

import (
	"fmt"
	"time"

	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"
)

var _ = Describe("ConsistentlyWithMetrics", func() {
	Context("should works fine", func() {
		const duration = 200 * time.Millisecond

		It("within 1.1 times defaultConsistentlyWithMetricsDuration", func() {
			SetDefaultConsistentlyWithMetricsDuration(duration)
			SetDefaultConsistentlyWithMetricsPollingInterval(duration / 5)

			start := time.Now()
			ConsistentlyWithMetrics(func() int { fmt.Println("checked"); return 1 }).Should(Equal(1))

			Expect(time.Since(start)).Should(BeNumerically("<=", 1.1*float64(duration)))
		})
	})
})
