summaryrefslogtreecommitdiff
path: root/tests/database.nim
diff options
context:
space:
mode:
authorJulien Dessaux2021-10-22 17:59:44 +0200
committerJulien Dessaux2021-10-25 15:22:24 +0200
commitad9b9c0f7bd4d95ddc54462970d33d92bab9392c (patch)
treeb8d130d728fda49c64b6e021da31afb2418b78a0 /tests/database.nim
parentInitial import (diff)
downloadshort-ad9b9c0f7bd4d95ddc54462970d33d92bab9392c.tar.gz
short-ad9b9c0f7bd4d95ddc54462970d33d92bab9392c.tar.bz2
short-ad9b9c0f7bd4d95ddc54462970d33d92bab9392c.zip
Added a functionning url shortening service
Diffstat (limited to '')
-rw-r--r--tests/database.nim41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/database.nim b/tests/database.nim
new file mode 100644
index 0000000..9e8de52
--- /dev/null
+++ b/tests/database.nim
@@ -0,0 +1,41 @@
+include ../src/database
+
+import unittest
+
+const someTime = initDuration(seconds=1)
+let testingNow = times.now() - 60 * someTime
+let later = testingNow + 30 * someTime
+
+suite "database":
+ test "url":
+ let db = openDatabase(":memory:")
+ check db.Migrate() == true
+ let u = ShortUrl(
+ Token: "token",
+ Title: "title",
+ Url: "url",
+ Created: testingNow,
+ Expires: later,
+ )
+ db.AddUrl(u)
+ try:
+ db.AddUrl(u)
+ check false
+ except SqliteError:
+ discard
+ var u2 = db.GetUrl(u.Token)
+ check u2.ID == 1
+ check u2.Token == "token"
+ check u2.Title == "title"
+ check u2.Url == "url"
+ check u2.Created - testingNow < someTime
+ check u2.Expires - later < someTime
+ db.CleanExpired()
+ try:
+ discard db.GetUrl("token")
+ except SqliteError:
+ check false
+ u2.Expires = testingNow + 120 * someTime
+ db.AddUrl(u2[])
+ db.CleanExpired()
+ check db.GetUrl("token") != nil