diff --git a/session/handler_test.go b/session/handler_test.go index cd0a9ddca6c1..906a985e7356 100644 --- a/session/handler_test.go +++ b/session/handler_test.go @@ -187,7 +187,14 @@ func TestSessionWhoAmI(t *testing.T) { if maxAge > 0 { assert.Equal(t, fmt.Sprintf("%0.f", maxAge.Seconds()), res.Header.Get("Ory-Session-Cache-For")) } else { - assert.Equal(t, fmt.Sprintf("%0.f", conf.SessionLifespan(ctx).Seconds()), res.Header.Get("Ory-Session-Cache-For")) + // parse int to string from Ory-Session-Cache-For + parsed, err := strconv.Atoi(res.Header.Get("Ory-Session-Cache-For")) + require.NoError(t, err) + lifespan := conf.SessionLifespan(ctx).Seconds() + // We need to account for the time it takes to make the request, as depending on the system it might take a few more ms which leads to the value being off by a second or more. + assert.Condition(t, func() bool { + return parsed > int(lifespan-5) && parsed <= int(lifespan) + }, "Expected the value of the Ory-Session-Cache-For header to be roughly around the configured lifespan. Got parsed: %d, lifespan: %d", parsed, int(lifespan)) } } else { assert.Empty(t, res.Header.Get("Ory-Session-Cache-For"))