@@ -67,11 +67,41 @@ def test_each_tx_gets_a_version():
6767 c .execute ("insert into foo values (1, 2)" )
6868 c .execute ("insert into foo values (2, 2)" )
6969 c .commit ()
70- c .execute ("SELECT crsql_db_version()" ).fetchone ()[0 ] == min_db_v + 1
70+ assert c .execute ("SELECT crsql_db_version()" ).fetchone ()[0 ] == min_db_v + 1
7171
7272 c .execute ("insert into foo values (3, 2)" )
7373 c .execute ("insert into foo values (4, 2)" )
7474 c .commit ()
75- c .execute ("SELECT crsql_db_version()" ).fetchone ()[0 ] == min_db_v + 2
75+ assert c .execute ("SELECT crsql_db_version()" ).fetchone ()[0 ] == min_db_v + 2
76+
77+ close (c )
78+
79+
80+ def test_rollback_does_not_move_db_version ():
81+ c = connect (":memory:" )
82+
83+ c .execute ("create table foo (id primary key, a)" )
84+ c .execute ("select crsql_as_crr('foo')" )
85+
86+ c .execute ("insert into foo values (1, 2)" )
87+ c .execute ("insert into foo values (2, 2)" )
88+ c .rollback ()
89+ assert c .execute ("SELECT crsql_db_version()" ).fetchone ()[0 ] == min_db_v
90+
91+ c .execute ("insert into foo values (3, 2)" )
92+ c .execute ("insert into foo values (4, 2)" )
93+ c .rollback ()
94+ assert c .execute ("SELECT crsql_db_version()" ).fetchone ()[
95+ 0 ] == min_db_v
96+
97+ c .execute ("insert into foo values (1, 2)" )
98+ c .execute ("insert into foo values (2, 2)" )
99+ c .commit ()
100+ assert c .execute ("SELECT crsql_db_version()" ).fetchone ()[0 ] == min_db_v + 1
101+
102+ c .execute ("insert into foo values (3, 2)" )
103+ c .execute ("insert into foo values (4, 2)" )
104+ c .commit ()
105+ assert c .execute ("SELECT crsql_db_version()" ).fetchone ()[0 ] == min_db_v + 2
76106
77107 close (c )
0 commit comments