From df43363737938a770c2a892e41e867380ba47131 Mon Sep 17 00:00:00 2001 From: ThomasTJdev Date: Tue, 20 Feb 2024 09:02:22 +0100 Subject: [PATCH] Tests: Import/include lib --- sqlbuilder.nimble | 11 +++- tests/importpackage/test_import1.nim | 40 +++++++++++ tests/importpackage/test_import2.nim | 66 +++++++++++++++++++ .../test_sql_import_with_deletemarkers.nim | 4 ++ .../test_sql_import_with_deletemarkers2.nim | 4 ++ 5 files changed, 124 insertions(+), 1 deletion(-) create mode 100644 tests/importpackage/test_import1.nim create mode 100644 tests/importpackage/test_import2.nim create mode 100644 tests/importpackage/test_sql_import_with_deletemarkers.nim create mode 100644 tests/importpackage/test_sql_import_with_deletemarkers2.nim diff --git a/sqlbuilder.nimble b/sqlbuilder.nimble index 83510e3..45c670a 100644 --- a/sqlbuilder.nimble +++ b/sqlbuilder.nimble @@ -83,6 +83,14 @@ task testargs, "Test args": runArgs() +proc runImport() = + exec "nim c -d:dev -r tests/importpackage/test_import1.nim" + exec "nim c -d:dev -r tests/importpackage/test_import2.nim" + +task testimport, "Test import": + runImport() + + task test, "Test": runLegacy() runSelect() @@ -91,4 +99,5 @@ task test, "Test": runDelete() runQueryCalls() runToTypes() - runArgs() \ No newline at end of file + runArgs() + runImport() \ No newline at end of file diff --git a/tests/importpackage/test_import1.nim b/tests/importpackage/test_import1.nim new file mode 100644 index 0000000..5bf30d0 --- /dev/null +++ b/tests/importpackage/test_import1.nim @@ -0,0 +1,40 @@ +# Copyright Thomas T. Jarløv (TTJ) + +when NimMajor >= 2: + import db_connector/db_common +else: + import std/db_common + +import + std/strutils, + std/unittest + +import + src/sqlbuilderpkg/utils_private + +import + ./test_sql_import_with_deletemarkers + + +suite "delete marker - package import": + + test "useDeleteMarker = default": + var test: SqlQuery + + test = sqlSelect( + table = "tasks", + select = @["id", "name", "description", "created", "updated", "completed"], + where = @["id ="], + ) + check querycompare(test, sql("SELECT id, name, description, created, updated, completed FROM tasks WHERE id = ? AND tasks.is_deleted IS NULL ")) + + test "useDeleteMarker = default": + var test: SqlQuery + + test = sqlSelectConst( + table = "tasks", + select = @["id", "name", "description", "created", "updated", "completed"], + where = @["id ="], + joinargs = [] + ) + check querycompare(test, sql("SELECT id, name, description, created, updated, completed FROM tasks WHERE id = ? AND tasks.is_deleted IS NULL ")) diff --git a/tests/importpackage/test_import2.nim b/tests/importpackage/test_import2.nim new file mode 100644 index 0000000..7d40b96 --- /dev/null +++ b/tests/importpackage/test_import2.nim @@ -0,0 +1,66 @@ +# Copyright Thomas T. Jarløv (TTJ) + +when NimMajor >= 2: + import db_connector/db_common +else: + import std/db_common + +import + std/strutils, + std/unittest + +import + src/sqlbuilderpkg/utils_private + +import + ./test_sql_import_with_deletemarkers as sqlUno, + ./test_sql_import_with_deletemarkers2 as sqlDos + + +suite "delete marker - package import - first import sqlUno": + + test "useDeleteMarker = tasks": + var test: SqlQuery + + test = sqlUno.sqlSelect( + table = "tasks", + select = @["id", "name", "description", "created", "updated", "completed"], + where = @["id ="], + ) + check querycompare(test, sql("SELECT id, name, description, created, updated, completed FROM tasks WHERE id = ? AND tasks.is_deleted IS NULL ")) + + test "useDeleteMarker = tasks (const)": + var test: SqlQuery + + test = sqlUno.sqlSelectConst( + table = "tasks", + select = @["id", "name", "description", "created", "updated", "completed"], + where = @["id ="], + joinargs = [] + ) + check querycompare(test, sql("SELECT id, name, description, created, updated, completed FROM tasks WHERE id = ? AND tasks.is_deleted IS NULL ")) + + +suite "delete marker - package import - second import sqlDos": + + test "useDeleteMarker = project": + var test: SqlQuery + + test = sqlDos.sqlSelect( + table = "project", + select = @["id", "name", "description", "created", "updated", "completed"], + where = @["id ="], + ) + check querycompare(test, sql("SELECT id, name, description, created, updated, completed FROM project WHERE id = ? AND project.is_deleted IS NULL ")) + + test "useDeleteMarker = project (const)": + var test: SqlQuery + + test = sqlDos.sqlSelectConst( + table = "project", + select = @["id", "name", "description", "created", "updated", "completed"], + where = @["id ="], + joinargs = [] + ) + check querycompare(test, sql("SELECT id, name, description, created, updated, completed FROM project WHERE id = ? AND project.is_deleted IS NULL ")) + diff --git a/tests/importpackage/test_sql_import_with_deletemarkers.nim b/tests/importpackage/test_sql_import_with_deletemarkers.nim new file mode 100644 index 0000000..7c04f01 --- /dev/null +++ b/tests/importpackage/test_sql_import_with_deletemarkers.nim @@ -0,0 +1,4 @@ + +const tablesWithDeleteMarkerInit = ["tasks"] + +include src/sqlbuilder_include \ No newline at end of file diff --git a/tests/importpackage/test_sql_import_with_deletemarkers2.nim b/tests/importpackage/test_sql_import_with_deletemarkers2.nim new file mode 100644 index 0000000..fc3cb15 --- /dev/null +++ b/tests/importpackage/test_sql_import_with_deletemarkers2.nim @@ -0,0 +1,4 @@ + +const tablesWithDeleteMarkerInit = ["project"] + +include src/sqlbuilder_include \ No newline at end of file