Skip to content

Commit

Permalink
[tests] Skip SQL check for PowerSync
Browse files Browse the repository at this point in the history
  • Loading branch information
jamesgpearce committed Oct 14, 2024
1 parent acdf405 commit 3300d22
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 77 deletions.
2 changes: 1 addition & 1 deletion test/unit/persisters/common/databases.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ type DatabaseVariant<Database> = [
autoLoadIntervalSeconds?: number,
isPostgres?: boolean,
supportsMultipleConnections?: boolean,
orReplace?: boolean,
skipSqlChecks?: boolean,
];

const escapeId = (str: string) => `"${str.replace(/"/g, '""')}"`;
Expand Down
111 changes: 35 additions & 76 deletions test/unit/persisters/database/tabular.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ describe.each(Object.entries(ALL_VARIANTS))(
autoLoadIntervalSeconds = 0.001,
isPostgres,
supportsMultipleConnections,
orReplace,
skipSqlChecks,
],
) => {
const [getDatabase, setDatabase] = getDatabaseFunctions(
Expand All @@ -34,10 +34,11 @@ describe.each(Object.entries(ALL_VARIANTS))(
const encodedValue = isPostgres
? (v: any) => JSON.stringify(v)
: (v: any) => v;
const insertCommand = (insertInto: string, onConflict: string) =>
orReplace
? 'INSERT OR REPLACE INTO' + insertInto
: 'INSERT INTO' + insertInto + 'ON CONFLICT' + onConflict;
const sqlCheck = (sqlLogs: [string, any[]?][], sql: [string, any[]?][]) => {
if (!skipSqlChecks) {
expect(sqlLogs).toEqual(sql);
}
};

let db: any;
let store: Store;
Expand Down Expand Up @@ -1120,7 +1121,7 @@ describe.each(Object.entries(ALL_VARIANTS))(
[{_id: '_', v1: 1, v2: 2}],
],
});
expect(sqlLogs).toEqual([
sqlCheck(sqlLogs, [
['BEGIN', undefined],
[
'CREATE TABLE"t1"("_id"' +
Expand All @@ -1141,10 +1142,7 @@ describe.each(Object.entries(ALL_VARIANTS))(
undefined,
],
[
insertCommand(
'"t1"("_id","c1","c2")VALUES($1,$2,$3),($4,$5,$6)',
'("_id")DO UPDATE SET"c1"=excluded."c1","c2"=excluded."c2"',
),
'INSERT INTO"t1"("_id","c1","c2")VALUES($1,$2,$3),($4,$5,$6)ON CONFLICT("_id")DO UPDATE SET"c1"=excluded."c1","c2"=excluded."c2"',
[
'r1',
encodedValue(1),
Expand All @@ -1155,10 +1153,7 @@ describe.each(Object.entries(ALL_VARIANTS))(
],
],
[
insertCommand(
'"t2"("_id","c1")VALUES($1,$2)',
'("_id")DO UPDATE SET"c1"=excluded."c1"',
),
'INSERT INTO"t2"("_id","c1")VALUES($1,$2)ON CONFLICT("_id")DO UPDATE SET"c1"=excluded."c1"',
['r1', encodedValue(1)],
],
['DELETE FROM"t1"WHERE"_id"NOT IN($1,$2)', ['r1', 'r2']],
Expand All @@ -1174,10 +1169,7 @@ describe.each(Object.entries(ALL_VARIANTS))(
undefined,
],
[
insertCommand(
'"tinybase_values"("_id","v1","v2")VALUES($1,$2,$3)',
'("_id")DO UPDATE SET"v1"=excluded."v1","v2"=excluded."v2"',
),
'INSERT INTO"tinybase_values"("_id","v1","v2")VALUES($1,$2,$3)ON CONFLICT("_id")DO UPDATE SET"v1"=excluded."v1","v2"=excluded."v2"',
['_', encodedValue(1), encodedValue(2)],
],
['DELETE FROM"tinybase_values"WHERE"_id"NOT IN($1)', ['_']],
Expand Down Expand Up @@ -1205,14 +1197,11 @@ describe.each(Object.entries(ALL_VARIANTS))(
[{_id: '_', v1: 1, v2: 2, v3: 3}],
],
});
expect(sqlLogs).toEqual([
sqlCheck(sqlLogs, [
['BEGIN', undefined],
['ALTER TABLE"tinybase_values"ADD"v3"' + columnType, undefined],
[
insertCommand(
'"tinybase_values"("_id","v3")VALUES($1,$2)',
'("_id")DO UPDATE SET"v3"=excluded."v3"',
),
'INSERT INTO"tinybase_values"("_id","v3")VALUES($1,$2)ON CONFLICT("_id")DO UPDATE SET"v3"=excluded."v3"',
['_', encodedValue(3)],
],
['END', undefined],
Expand All @@ -1236,13 +1225,10 @@ describe.each(Object.entries(ALL_VARIANTS))(
[{_id: '_', v1: 2, v2: 2}],
],
});
expect(sqlLogs).toEqual([
sqlCheck(sqlLogs, [
['BEGIN', undefined],
[
insertCommand(
'"tinybase_values"("_id","v1")VALUES($1,$2)',
'("_id")DO UPDATE SET"v1"=excluded."v1"',
),
'INSERT INTO"tinybase_values"("_id","v1")VALUES($1,$2)ON CONFLICT("_id")DO UPDATE SET"v1"=excluded."v1"',
['_', encodedValue(2)],
],
['END', undefined],
Expand All @@ -1266,13 +1252,10 @@ describe.each(Object.entries(ALL_VARIANTS))(
[{_id: '_', v1: null, v2: 2}],
],
});
expect(sqlLogs).toEqual([
sqlCheck(sqlLogs, [
['BEGIN', undefined],
[
insertCommand(
'"tinybase_values"("_id","v1")VALUES($1,$2)',
'("_id")DO UPDATE SET"v1"=excluded."v1"',
),
'INSERT INTO"tinybase_values"("_id","v1")VALUES($1,$2)ON CONFLICT("_id")DO UPDATE SET"v1"=excluded."v1"',
['_', null],
],
['END', undefined],
Expand All @@ -1296,13 +1279,10 @@ describe.each(Object.entries(ALL_VARIANTS))(
[{_id: '_', v1: null, v2: null}],
],
});
expect(sqlLogs).toEqual([
sqlCheck(sqlLogs, [
['BEGIN', undefined],
[
insertCommand(
'"tinybase_values"("_id","v1","v2")VALUES($1,$2,$3)',
'("_id")DO UPDATE SET"v1"=excluded."v1","v2"=excluded."v2"',
),
'INSERT INTO"tinybase_values"("_id","v1","v2")VALUES($1,$2,$3)ON CONFLICT("_id")DO UPDATE SET"v1"=excluded."v1","v2"=excluded."v2"',
['_', null, null],
],
['END', undefined],
Expand Down Expand Up @@ -1330,14 +1310,11 @@ describe.each(Object.entries(ALL_VARIANTS))(
[{_id: '_', v1: 1, v2: 2}],
],
});
expect(sqlLogs).toEqual([
sqlCheck(sqlLogs, [
['BEGIN', undefined],
['ALTER TABLE"t1"ADD"c3"' + columnType, undefined],
[
insertCommand(
'"t1"("_id","c3")VALUES($1,$2)',
'("_id")DO UPDATE SET"c3"=excluded."c3"',
),
'INSERT INTO"t1"("_id","c3")VALUES($1,$2)ON CONFLICT("_id")DO UPDATE SET"c3"=excluded."c3"',
['r1', encodedValue(3)],
],
['END', undefined],
Expand All @@ -1361,13 +1338,10 @@ describe.each(Object.entries(ALL_VARIANTS))(
[{_id: '_', v1: 1, v2: 2}],
],
});
expect(sqlLogs).toEqual([
sqlCheck(sqlLogs, [
['BEGIN', undefined],
[
insertCommand(
'"t1"("_id","c1")VALUES($1,$2)',
'("_id")DO UPDATE SET"c1"=excluded."c1"',
),
'INSERT INTO"t1"("_id","c1")VALUES($1,$2)ON CONFLICT("_id")DO UPDATE SET"c1"=excluded."c1"',
['r1', encodedValue(2)],
],
['END', undefined],
Expand All @@ -1391,13 +1365,10 @@ describe.each(Object.entries(ALL_VARIANTS))(
[{_id: '_', v1: 1, v2: 2}],
],
});
expect(sqlLogs).toEqual([
sqlCheck(sqlLogs, [
['BEGIN', undefined],
[
insertCommand(
'"t1"("_id","c1")VALUES($1,$2)',
'("_id")DO UPDATE SET"c1"=excluded."c1"',
),
'INSERT INTO"t1"("_id","c1")VALUES($1,$2)ON CONFLICT("_id")DO UPDATE SET"c1"=excluded."c1"',
['r1', null],
],
['END', undefined],
Expand Down Expand Up @@ -1426,14 +1397,11 @@ describe.each(Object.entries(ALL_VARIANTS))(
[{_id: '_', v1: 1, v2: 2}],
],
});
expect(sqlLogs).toEqual([
sqlCheck(sqlLogs, [
['BEGIN', undefined],
['ALTER TABLE"t1"ADD"c3"' + columnType, undefined],
[
insertCommand(
'"t1"("_id","c1","c3")VALUES($1,$2,$3)',
'("_id")DO UPDATE SET"c1"=excluded."c1","c3"=excluded."c3"',
),
'INSERT INTO"t1"("_id","c1","c3")VALUES($1,$2,$3)ON CONFLICT("_id")DO UPDATE SET"c1"=excluded."c1","c3"=excluded."c3"',
['r3', encodedValue(1), encodedValue(3)],
],
['END', undefined],
Expand All @@ -1457,13 +1425,10 @@ describe.each(Object.entries(ALL_VARIANTS))(
[{_id: '_', v1: 1, v2: 2}],
],
});
expect(sqlLogs).toEqual([
sqlCheck(sqlLogs, [
['BEGIN', undefined],
[
insertCommand(
'"t1"("_id","c1")VALUES($1,$2)',
'("_id")DO UPDATE SET"c1"=excluded."c1"',
),
'INSERT INTO"t1"("_id","c1")VALUES($1,$2)ON CONFLICT("_id")DO UPDATE SET"c1"=excluded."c1"',
['r1', encodedValue(2)],
],
['END', undefined],
Expand All @@ -1484,7 +1449,7 @@ describe.each(Object.entries(ALL_VARIANTS))(
[{_id: '_', v1: 1, v2: 2}],
],
});
expect(sqlLogs).toEqual([
sqlCheck(sqlLogs, [
['BEGIN', undefined],
['DELETE FROM"t1"WHERE"_id"=$1', ['r1']],
['END', undefined],
Expand Down Expand Up @@ -1513,7 +1478,7 @@ describe.each(Object.entries(ALL_VARIANTS))(
[{_id: '_', v1: 1, v2: 2}],
],
});
expect(sqlLogs).toEqual([
sqlCheck(sqlLogs, [
['BEGIN', undefined],
[
'CREATE TABLE"t3"("_id"' +
Expand All @@ -1524,10 +1489,7 @@ describe.each(Object.entries(ALL_VARIANTS))(
undefined,
],
[
insertCommand(
'"t3"("_id","c1")VALUES($1,$2)',
'("_id")DO UPDATE SET"c1"=excluded."c1"',
),
'INSERT INTO"t3"("_id","c1")VALUES($1,$2)ON CONFLICT("_id")DO UPDATE SET"c1"=excluded."c1"',
['r1', encodedValue(1)],
],
['END', undefined],
Expand All @@ -1554,14 +1516,11 @@ describe.each(Object.entries(ALL_VARIANTS))(
[{_id: '_', v1: 1, v2: 2}],
],
});
expect(sqlLogs).toEqual([
sqlCheck(sqlLogs, [
['BEGIN', undefined],
['ALTER TABLE"t2"ADD"c2"' + columnType, undefined],
[
insertCommand(
'"t2"("_id","c1","c2")VALUES($1,$2,$3)',
'("_id")DO UPDATE SET"c1"=excluded."c1","c2"=excluded."c2"',
),
'INSERT INTO"t2"("_id","c1","c2")VALUES($1,$2,$3)ON CONFLICT("_id")DO UPDATE SET"c1"=excluded."c1","c2"=excluded."c2"',
['r1', encodedValue(2), encodedValue(2)],
],
['END', undefined],
Expand All @@ -1585,7 +1544,7 @@ describe.each(Object.entries(ALL_VARIANTS))(
[{_id: '_', v1: 1, v2: 2}],
],
});
expect(sqlLogs).toEqual([
sqlCheck(sqlLogs, [
['BEGIN', undefined],
['DELETE FROM"t2"WHERE true', undefined],
['END', undefined],
Expand All @@ -1603,7 +1562,7 @@ describe.each(Object.entries(ALL_VARIANTS))(
[{_id: '_', v1: 1, v2: 2}],
],
});
expect(sqlLogs).toEqual([
sqlCheck(sqlLogs, [
['BEGIN', undefined],
['DELETE FROM"t1"WHERE true', undefined],
['DELETE FROM"t2"WHERE true', undefined],
Expand Down

0 comments on commit 3300d22

Please sign in to comment.