From 70a8b0f69862983ae22790a4cac3d54f3f8557b1 Mon Sep 17 00:00:00 2001 From: "Sean M. Collins" Date: Mon, 10 Mar 2025 21:20:33 -0400 Subject: [PATCH] Add tests for login view --- demo/src/app/views/login.zig | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/demo/src/app/views/login.zig b/demo/src/app/views/login.zig index f975458..0917bb9 100644 --- a/demo/src/app/views/login.zig +++ b/demo/src/app/views/login.zig @@ -36,3 +36,35 @@ pub fn post(request: *jetzig.Request) !jetzig.View { } return request.fail(.forbidden); } + +test "setup" { + var app = try jetzig.testing.app(std.testing.allocator, @import("routes")); + defer app.deinit(); + const hashed_pass = try auth.hashPassword(app.allocator, "test"); + try app.repo.insert(.User, .{ + .id = 1, + .email = "test@test.com", + .password_hash = hashed_pass, + }); + app.allocator.free(hashed_pass); +} + +test "post" { + var app = try jetzig.testing.app(std.testing.allocator, @import("routes")); + defer app.deinit(); + const response = try app.request(.POST, "/login", .{ + .params = .{ + .email = "test@test.com", + .password = "test", + }, + }); + try response.expectStatus(.found); +} + +test "teardown" { + var app = try jetzig.testing.app(std.testing.allocator, @import("routes")); + defer app.deinit(); + const q = jetzig.database.Query(.User).find(1); + const user = try app.repo.execute(q) orelse @panic("not found"); + try app.repo.delete(user); +}