1
0
Fork 0
mirror of https://github.com/zigzap/zap.git synced 2025-10-21 15:44:10 +00:00
zap/src/tests/test_mustache.zig
2023-09-13 13:43:33 +02:00

44 lines
1.1 KiB
Zig

const std = @import("std");
const zap = @import("zap");
const User = struct {
name: []const u8,
id: isize,
};
const data = .{
.users = [_]User{
.{
.name = "Rene",
.id = 1,
},
.{
.name = "Caro",
.id = 6,
},
},
.nested = .{
.item = "nesting works",
},
};
test "mustacheData" {
const template = "{{=<< >>=}}* Users:\n<<#users>><<id>>. <<& name>> (<<name>>)\n<</users>>\nNested: <<& nested.item >>.";
const p = try zap.mustacheData(template);
defer zap.mustacheFree(p);
const ret = zap.mustacheBuild(p, data);
defer ret.deinit();
try std.testing.expectEqualSlices(u8, "* Users:\n1. Rene (Rene)\n6. Caro (Caro)\nNested: nesting works.", ret.str().?);
}
test "mustacheLoad" {
const p = try zap.mustacheLoad("./src/tests/testtemplate.html");
defer zap.mustacheFree(p);
const ret = zap.mustacheBuild(p, data);
defer ret.deinit();
try std.testing.expectEqualSlices(u8, "* Users:\n1. Rene (Rene)\n6. Caro (Caro)\nNested: nesting works.\n", ret.str().?);
}