mirror of
https://github.com/dolthub/dolt.git
synced 2026-01-13 18:49:55 -06:00
73 lines
3.0 KiB
Bash
73 lines
3.0 KiB
Bash
#!/usr/bin/env bats
|
|
load $BATS_TEST_DIRNAME/helper/common.bash
|
|
|
|
setup() {
|
|
setup_common
|
|
dolt sql -q "create table t (i int primary key, j int);"
|
|
dolt sql -q "insert into t values (1, 1), (2, 2), (3, 3)";
|
|
dolt sql -q "create table tt (i int primary key, j int);"
|
|
dolt sql -q "insert into tt values (1, 1), (2, 2), (3, 3)";
|
|
dolt add .
|
|
dolt commit -m "initial commit"
|
|
dolt branch other
|
|
dolt sql -q "update t set j = 10 where i = 2"
|
|
dolt sql -q "delete from t where i = 3;"
|
|
dolt sql -q "insert into t values (4, 4);"
|
|
dolt add .
|
|
dolt commit -m "changes"
|
|
}
|
|
|
|
teardown() {
|
|
assert_feature_version
|
|
teardown_common
|
|
}
|
|
|
|
@test "query-diff: no args" {
|
|
run dolt query-diff
|
|
[ "$status" -eq 1 ]
|
|
[ "${#lines[@]}" -eq 1 ]
|
|
[[ "${lines[0]}" =~ "please provide exactly two queries" ]] || false
|
|
}
|
|
|
|
@test "query-diff: too many args" {
|
|
run dolt query-diff "select * from t;" "select * from t;" "select * from t;"
|
|
[ "$status" -eq 1 ]
|
|
[ "${#lines[@]}" -eq 1 ]
|
|
[[ "${lines[0]}" =~ "please provide exactly two queries" ]] || false
|
|
}
|
|
|
|
@test "query-diff: no changes" {
|
|
run dolt query-diff "select * from t;" "select * from t;"
|
|
[ "$status" -eq 0 ]
|
|
[ "${#lines[@]}" -eq 0 ]
|
|
}
|
|
|
|
@test "query-diff: basic case" {
|
|
run dolt query-diff "select * from t as of other;" "select * from t as of head;"
|
|
[ "$status" -eq 0 ]
|
|
[ "${#lines[@]}" -eq 7 ]
|
|
[[ "${lines[0]}" =~ "+--------+--------+------+------+-----------+" ]] || false
|
|
[[ "${lines[1]}" =~ "| from_i | from_j | to_i | to_j | diff_type |" ]] || false
|
|
[[ "${lines[2]}" =~ "+--------+--------+------+------+-----------+" ]] || false
|
|
[[ "${lines[3]}" =~ "| 2 | 2 | 2 | 10 | modified |" ]] || false
|
|
[[ "${lines[4]}" =~ "| 3 | 3 | NULL | NULL | deleted |" ]] || false
|
|
[[ "${lines[5]}" =~ "| NULL | NULL | 4 | 4 | added |" ]] || false
|
|
[[ "${lines[6]}" =~ "+--------+--------+------+------+-----------+" ]] || false
|
|
}
|
|
|
|
|
|
@test "query-diff: other table" {
|
|
run dolt query-diff "select * from t;" "select * from tt;"
|
|
[ "$status" -eq 0 ]
|
|
[ "${#lines[@]}" -eq 10 ]
|
|
[[ "${lines[0]}" =~ "+--------+--------+------+------+-----------+" ]] || false
|
|
[[ "${lines[1]}" =~ "| from_i | from_j | to_i | to_j | diff_type |" ]] || false
|
|
[[ "${lines[2]}" =~ "+--------+--------+------+------+-----------+" ]] || false
|
|
[[ "${lines[3]}" =~ "| 1 | 1 | NULL | NULL | deleted |" ]] || false
|
|
[[ "${lines[4]}" =~ "| 2 | 10 | NULL | NULL | deleted |" ]] || false
|
|
[[ "${lines[5]}" =~ "| 4 | 4 | NULL | NULL | deleted |" ]] || false
|
|
[[ "${lines[6]}" =~ "| NULL | NULL | 1 | 1 | added |" ]] || false
|
|
[[ "${lines[7]}" =~ "| NULL | NULL | 2 | 2 | added |" ]] || false
|
|
[[ "${lines[8]}" =~ "| NULL | NULL | 3 | 3 | added |" ]] || false
|
|
[[ "${lines[9]}" =~ "+--------+--------+------+------+-----------+" ]] || false
|
|
} |