diff options
| author | 2021-01-06 01:43:21 +0100 | |
|---|---|---|
| committer | 2021-01-06 01:43:21 +0100 | |
| commit | 51d558ed2455f9b19aebe1e497eb4bd37c1a7b70 (patch) | |
| tree | f6e9c8fafac5ec755d39eaf3b3c0c60a1cfc0ec1 /sqlite.zig | |
| parent | fix compile error in readField (diff) | |
| download | zig-sqlite-51d558ed2455f9b19aebe1e497eb4bd37c1a7b70.tar.gz zig-sqlite-51d558ed2455f9b19aebe1e497eb4bd37c1a7b70.tar.xz zig-sqlite-51d558ed2455f9b19aebe1e497eb4bd37c1a7b70.zip | |
add a test for optionals
Diffstat (limited to 'sqlite.zig')
| -rw-r--r-- | sqlite.zig | 27 |
1 files changed, 27 insertions, 0 deletions
| @@ -1380,6 +1380,33 @@ test "sqlite: read pointers" { | |||
| 1380 | } | 1380 | } |
| 1381 | } | 1381 | } |
| 1382 | 1382 | ||
| 1383 | test "sqlite: optional" { | ||
| 1384 | var arena = std.heap.ArenaAllocator.init(testing.allocator); | ||
| 1385 | defer arena.deinit(); | ||
| 1386 | |||
| 1387 | var db: Db = undefined; | ||
| 1388 | try db.init(initOptions()); | ||
| 1389 | try addTestData(&db); | ||
| 1390 | |||
| 1391 | try db.exec("INSERT INTO article(author_id, data, is_published) VALUES(?, ?, ?)", .{ 1, null, true }); | ||
| 1392 | |||
| 1393 | var stmt = try db.prepare("SELECT data, is_published FROM article"); | ||
| 1394 | defer stmt.deinit(); | ||
| 1395 | |||
| 1396 | const row = try stmt.one( | ||
| 1397 | struct { | ||
| 1398 | data: ?[128:0]u8, | ||
| 1399 | is_published: ?bool, | ||
| 1400 | }, | ||
| 1401 | .{}, | ||
| 1402 | .{}, | ||
| 1403 | ); | ||
| 1404 | |||
| 1405 | testing.expect(row != null); | ||
| 1406 | testing.expect(row.data == null); | ||
| 1407 | testing.expectEqual(true, row.is_published.?); | ||
| 1408 | } | ||
| 1409 | |||
| 1383 | test "sqlite: statement reset" { | 1410 | test "sqlite: statement reset" { |
| 1384 | var db: Db = undefined; | 1411 | var db: Db = undefined; |
| 1385 | try db.init(initOptions()); | 1412 | try db.init(initOptions()); |