(t *testing.T)
| 384 | } |
| 385 | |
| 386 | func TestTransactionBasic(t *testing.T) { |
| 387 | require.NoError(t, dropAll()) |
| 388 | require.NoError(t, alterSchema(`name: string .`)) |
| 389 | require.NoError(t, alterSchema(`name: string @index(term) .`)) |
| 390 | |
| 391 | q1 := ` |
| 392 | { |
| 393 | balances(func: anyofterms(name, "Alice Bob")) { |
| 394 | name |
| 395 | balance |
| 396 | } |
| 397 | } |
| 398 | ` |
| 399 | _, tsInfo, err := queryWithTs(queryInp{body: q1, typ: "application/dql"}) |
| 400 | require.NoError(t, err) |
| 401 | ts := tsInfo.ts |
| 402 | hash := tsInfo.hash |
| 403 | |
| 404 | m1 := ` |
| 405 | { |
| 406 | set { |
| 407 | _:alice <name> "Bob" . |
| 408 | _:alice <balance> "110" . |
| 409 | _:bob <balance> "60" . |
| 410 | } |
| 411 | } |
| 412 | ` |
| 413 | |
| 414 | mr, err := mutationWithTs(mutationInp{body: m1, typ: "application/rdf", ts: ts, hash: hash}) |
| 415 | require.NoError(t, err) |
| 416 | require.Equal(t, mr.startTs, ts) |
| 417 | require.Equal(t, 4, len(mr.keys)) |
| 418 | require.Equal(t, 2, len(mr.preds)) |
| 419 | var parsedPreds []string |
| 420 | for _, pred := range mr.preds { |
| 421 | p := strings.SplitN(pred, "-", 2)[1] |
| 422 | parsedPreds = append(parsedPreds, x.ParseAttr(p)) |
| 423 | } |
| 424 | sort.Strings(parsedPreds) |
| 425 | require.Equal(t, "balance", parsedPreds[0]) |
| 426 | require.Equal(t, "name", parsedPreds[1]) |
| 427 | |
| 428 | data, _, err := queryWithTs(queryInp{body: q1, typ: "application/dql"}) |
| 429 | require.NoError(t, err) |
| 430 | require.Equal(t, `{"data":{"balances":[]}}`, data) |
| 431 | |
| 432 | // Query with same timestamp. |
| 433 | data, _, err = queryWithTs(queryInp{body: q1, typ: "application/dql", ts: ts, hash: hash}) |
| 434 | require.NoError(t, err) |
| 435 | require.Equal(t, `{"data":{"balances":[{"name":"Bob","balance":"110"}]}}`, data) |
| 436 | |
| 437 | // Commit and query. |
| 438 | require.NoError(t, commitWithTs(mr, false)) |
| 439 | data, _, err = queryWithTs(queryInp{body: q1, typ: "application/dql"}) |
| 440 | require.NoError(t, err) |
| 441 | require.Equal(t, `{"data":{"balances":[{"name":"Bob","balance":"110"}]}}`, data) |
| 442 | } |
| 443 |
nothing calls this directly
no test coverage detected