(t *testing.T)
| 523 | } |
| 524 | |
| 525 | func TestTransactionBasicOldCommitFormat(t *testing.T) { |
| 526 | require.NoError(t, dropAll()) |
| 527 | require.NoError(t, alterSchema(`name: string @index(term) .`)) |
| 528 | |
| 529 | q1 := ` |
| 530 | { |
| 531 | balances(func: anyofterms(name, "Alice Bob")) { |
| 532 | name |
| 533 | balance |
| 534 | } |
| 535 | } |
| 536 | ` |
| 537 | _, tsInfo, err := queryWithTs(queryInp{body: q1, typ: "application/dql"}) |
| 538 | require.NoError(t, err) |
| 539 | ts := tsInfo.ts |
| 540 | hash := tsInfo.hash |
| 541 | |
| 542 | m1 := ` |
| 543 | { |
| 544 | set { |
| 545 | _:alice <name> "Bob" . |
| 546 | _:alice <balance> "110" . |
| 547 | _:bob <balance> "60" . |
| 548 | } |
| 549 | } |
| 550 | ` |
| 551 | |
| 552 | mr, err := mutationWithTs(mutationInp{body: m1, typ: "application/rdf", ts: ts, hash: hash}) |
| 553 | require.NoError(t, err) |
| 554 | require.Equal(t, mr.startTs, ts) |
| 555 | require.Equal(t, 4, len(mr.keys)) |
| 556 | |
| 557 | data, _, err := queryWithTs(queryInp{body: q1, typ: "application/dql"}) |
| 558 | require.NoError(t, err) |
| 559 | require.Equal(t, `{"data":{"balances":[]}}`, data) |
| 560 | |
| 561 | // Query with same timestamp. |
| 562 | data, _, err = queryWithTs(queryInp{body: q1, typ: "application/dql", ts: ts, hash: hash}) |
| 563 | require.NoError(t, err) |
| 564 | require.Equal(t, `{"data":{"balances":[{"name":"Bob","balance":"110"}]}}`, data) |
| 565 | |
| 566 | // One more time, with json body this time. |
| 567 | d1, err := json.Marshal(params{Query: q1}) |
| 568 | require.NoError(t, err) |
| 569 | data, _, err = queryWithTs( |
| 570 | queryInp{body: string(d1), typ: "application/json", ts: ts, hash: hash}) |
| 571 | require.NoError(t, err) |
| 572 | require.Equal(t, `{"data":{"balances":[{"name":"Bob","balance":"110"}]}}`, data) |
| 573 | |
| 574 | // Commit (using a list of keys instead of a map) and query. |
| 575 | require.NoError(t, commitWithTsKeysOnly(mr.keys, ts, mr.hash)) |
| 576 | data, _, err = queryWithTs(queryInp{body: q1, typ: "application/dql"}) |
| 577 | require.NoError(t, err) |
| 578 | require.Equal(t, `{"data":{"balances":[{"name":"Bob","balance":"110"}]}}`, data) |
| 579 | |
| 580 | // Aborting a transaction |
| 581 | url := fmt.Sprintf("%s/commit?startTs=%d&abort=true&hash=%s", addr, ts, mr.hash) |
| 582 | req, err := http.NewRequest("POST", url, nil) |
nothing calls this directly
no test coverage detected