45 lines
1.2 KiB
Zig
45 lines
1.2 KiB
Zig
const std = @import("std");
|
|
const main = @import("main");
|
|
const sql = @import("sql");
|
|
|
|
const test_config = .{
|
|
.db = .{
|
|
.sqlite = .{
|
|
.db_file = ":memory:",
|
|
},
|
|
},
|
|
};
|
|
|
|
const ApiSource = main.api.ApiSource;
|
|
const root_user = "root";
|
|
const root_password = "password1234";
|
|
const admin_host = "example.com";
|
|
const admin_origin = "https://" ++ admin_host;
|
|
const random_seed = 1234;
|
|
|
|
fn makeDb(alloc: std.mem.Allocator) sql.Db {
|
|
var db = try sql.Db.open(test_config.db);
|
|
try main.migrations.up(&db);
|
|
try main.api.setupAdmin(&db, admin_origin, root_user, root_password, alloc);
|
|
}
|
|
|
|
fn makeApi(alloc: std.mem.Allocator, db: *sql.Db) !ApiSource {
|
|
main.api.initThreadPrng(random_seed);
|
|
|
|
const source = try ApiSource.init(alloc, test_config, db);
|
|
return source;
|
|
}
|
|
|
|
test "login as root" {
|
|
const alloc = std.testing.allocator;
|
|
var arena = std.heap.ArenaAllocator.init(alloc);
|
|
defer arena.deinit();
|
|
var db = try makeDb(alloc);
|
|
var src = try makeApi(alloc, &db);
|
|
|
|
std.debug.print("\npassword: {s}\n", .{root_password});
|
|
var api = try src.connectUnauthorized(admin_host, arena.allocator());
|
|
defer api.close();
|
|
|
|
_ = try api.login("root", root_password);
|
|
}
|