// ~14secs func runCacheTest(e *httpexpect.Expect, path string, counterPtr *uint32, expectedBodyStr, expectedContentType string) error { e.GET(path).Expect().Status(iris.StatusOK).Body().Equal(expectedBodyStr) time.Sleep(cacheDuration / 5) // lets wait for a while, cache should be saved and ready e.GET(path).Expect().Status(iris.StatusOK).Body().Equal(expectedBodyStr) counter := atomic.LoadUint32(counterPtr) if counter > 1 { // n should be 1 because it doesn't changed after the first call return errCacheTestFailed.Format(1, counter) } time.Sleep(cacheDuration) // cache should be cleared now e.GET(path).Expect().Status(iris.StatusOK).ContentType(expectedContentType, "utf-8").Body().Equal(expectedBodyStr) time.Sleep(cacheDuration / 5) // let's call again , the cache should be saved e.GET(path).Expect().Status(iris.StatusOK).ContentType(expectedContentType, "utf-8").Body().Equal(expectedBodyStr) counter = atomic.LoadUint32(counterPtr) if counter != 2 { return errCacheTestFailed.Format(2, counter) } return nil }
func subdomainTester(e *httpexpect.Expect) *httpexpect.Expect { es := e.Builder(func(req *httpexpect.Request) { req.WithURL(testSubdomainURL()) }) return es }