datastore: use a strongly consistent query for TestIntegration_Project_TimestampStoreAndRetrieve

This removes the need for retry logic.

Change-Id: I49b893c3d0aed6620bf669c366d93cb5d2351e96
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/46950
Reviewed-by: Tyler Bui-Palsulich <tbp@google.com>
Reviewed-by: kokoro <noreply+kokoro@google.com>
diff --git a/datastore/integration_test.go b/datastore/integration_test.go
index 0129190..7c9d2c9 100644
--- a/datastore/integration_test.go
+++ b/datastore/integration_test.go
@@ -1317,25 +1317,17 @@
 		}
 	}()
 
+	// Without .Ancestor, this query is eventually consistent (so this test
+	// would be flakey). Ancestor queries, however, are strongly consistent.
+	// See more at https://cloud.google.com/datastore/docs/articles/balancing-strong-and-eventual-consistency-with-google-cloud-datastore/.
+	q := NewQuery(k.Kind).Ancestor(k)
 	res := []T{}
-	// Datastore has eventual consistency, meaning we can't trust the key to
-	// be immediately queryable after the Put call. So, we'll try a few times
-	// to get the key. See: https://cloud.google.com/datastore/docs/articles/balancing-strong-and-eventual-consistency-with-google-cloud-datastore/.
-	for i := 0; i < 10; i++ {
-		q := NewQuery(k.Kind)
-		if _, err := client.GetAll(ctx, q, &res); err != nil {
-			t.Fatal(err)
-		}
-		if len(res) != 1 {
-			time.Sleep(500 * time.Millisecond)
-			continue
-		}
-		break
+	if _, err := client.GetAll(ctx, q, &res); err != nil {
+		t.Fatal(err)
 	}
 	if len(res) != 1 {
 		t.Fatalf("expected 1 result, got %d", len(res))
 	}
-
 	if got, want := res[0].Created.Unix(), now.Unix(); got != want {
 		t.Fatalf("got %v, want %v", got, want)
 	}