Add bats tests for dolt diff -R

This commit is contained in:
Nick Tobey
2023-05-02 15:16:09 -07:00
parent 0bfe2cabbc
commit a322a31408
2 changed files with 112 additions and 1 deletions

View File

@@ -192,6 +192,79 @@ SQL
[[ "$output" =~ "| > | modify2 | CREATE PROCEDURE modify2() SELECT 43 |" ]] || false
}
@test "diff: reverse diff" {
# We're not using the test table, so we might as well delete it
dolt sql <<SQL
DROP TABLE test;
CREATE TABLE tbl (PK BIGINT PRIMARY KEY);
INSERT INTO tbl VALUES (1), (2), (3);
DELIMITER //
CREATE PROCEDURE modify1() BEGIN
DECLARE a INT DEFAULT 1;
SELECT a
AS RESULT;
END//
CREATE PROCEDURE modify2() SELECT 42;//
CREATE PROCEDURE remove() BEGIN
SELECT 8;
END//
SQL
dolt add -A
dolt commit -m "First commit"
dolt branch original
dolt sql <<SQL
DELETE FROM tbl WHERE pk = 2;
INSERT INTO tbl VALUES (4);
DROP PROCEDURE modify1;
DROP PROCEDURE modify2;
DROP PROCEDURE remove;
DELIMITER //
CREATE PROCEDURE modify1() BEGIN
SELECT 2
AS RESULTING
FROM DUAL;
END//
CREATE PROCEDURE modify2() SELECT 43;//
CREATE PROCEDURE adding() BEGIN
SELECT 9;
END//
SQL
dolt add -A
dolt commit -m "Second commit"
# Look at the context diff
run dolt diff original -R
[ "$status" -eq 0 ]
echo "$output"
# Verify that standard diffs are still working
[[ "$output" =~ "| | PK |" ]] || false
[[ "$output" =~ "+---+----+" ]] || false
[[ "$output" =~ "| - | 4 |" ]] || false
[[ "$output" =~ "| + | 2 |" ]] || false
# Check the overall stored procedure diff (excluding dates since they're variable)
[[ "$output" =~ "+---+---------+--------------------------------------+" ]] || false
[[ "$output" =~ "| | name | create_stmt |" ]] || false
[[ "$output" =~ "+---+---------+--------------------------------------+" ]] || false
[[ "$output" =~ "| - | adding | CREATE PROCEDURE adding() BEGIN |" ]] || false
[[ "$output" =~ "| | | SELECT 9; |" ]] || false
[[ "$output" =~ "| | | END |" ]] || false
[[ "$output" =~ "| * | modify1 | CREATE PROCEDURE modify1() BEGIN |" ]] || false
[[ "$output" =~ "| | | -SELECT 2 |" ]] || false
[[ "$output" =~ "| | | - AS RESULTING |" ]] || false
[[ "$output" =~ "| | | - FROM DUAL; |" ]] || false
[[ "$output" =~ "| | | +DECLARE a INT DEFAULT 1; |" ]] || false
[[ "$output" =~ "| | | +SELECT a |" ]] || false
[[ "$output" =~ "| | | + AS RESULT; |" ]] || false
[[ "$output" =~ "| | | END |" ]] || false
[[ "$output" =~ "| < | modify2 | CREATE PROCEDURE modify2() SELECT 43 |" ]] || false
[[ "$output" =~ "| > | modify2 | CREATE PROCEDURE modify2() SELECT 42 |" ]] || false
[[ "$output" =~ "| + | remove | CREATE PROCEDURE remove() BEGIN |" ]] || false
[[ "$output" =~ "| | | SELECT 8; |" ]] || false
[[ "$output" =~ "| | | END |" ]] || false
[[ "$output" =~ "+---+---------+--------------------------------------+" ]] || false
}
@test "diff: clean working set" {
dolt add .
dolt commit -m table

View File

@@ -278,7 +278,7 @@ SQL
}
@test "ignore: don't display add ignored tables in dolt diff" {
@test "ignore: don't display new but ignored tables in dolt diff" {
skip_nbf_ld_1
dolt sql <<SQL
@@ -294,6 +294,22 @@ SQL
! [["$output" =~ "ignoreme"]] || false
}
@test "ignore: don't display new but ignored tables in reverse diff" {
skip_nbf_ld_1
dolt sql <<SQL
CREATE TABLE ignoreme (pk int);
CREATE TABLE nomatch (pk int);
SQL
run dolt diff -R
[ "$status" -eq 0 ]
[[ "$output" =~ "nomatch" ]] || false
! [["$output" =~ "ignoreme"]] || false
}
@test "ignore: DO display modified ignored tables in dolt diff after staging" {
skip_nbf_ld_1
@@ -316,6 +332,28 @@ SQL
[[ "$output" =~ "ignoreme" ]] || false
}
@test "ignore: DO display modified ignored tables in reverse diff after staging" {
skip_nbf_ld_1
dolt sql <<SQL
CREATE TABLE ignoreme (pk int);
SQL
dolt add --force ignoreme
dolt sql <<SQL
INSERT INTO ignoreme VALUES (1);
SQL
run dolt diff -R
[ "$status" -eq 0 ]
echo "$output"
[[ "$output" =~ "ignoreme" ]] || false
}
@test "ignore: DO display modified ignored tables in dolt diff after committing" {
skip_nbf_ld_1