Access examples
tests.zig
65 lines 2.2 kB view raw
1test "inheritance" { 2 var data: Data = .init(allocator, std.testing.io); 3 defer data.deinit(); 4 5 const output = try zmpl.Templates.inheritance_child.renderWithLayout( 6 zmpl.Templates.inheritance_parent3, 7 &data, 8 struct {}, 9 .{}, 10 ); 11 try expectEqualStrings( 12 \\<h2>Parent 1</h2> 13 \\<div class="content-1"> 14 \\ <h2>Parent 2</h2> 15 \\<div class="content-2"> 16 \\ <h3>Parent 3</h3> 17 \\<div class="content-3"> 18 \\ <span>Content</span> 19 \\</div> 20 \\</div> 21 \\</div> 22 , output); 23} 24 25test "root init" { 26 var data: Data = .init(allocator, std.testing.io); 27 defer data.deinit(); 28 29 var root = try data.root(.object); 30 var user = try data.object(); 31 var auth = try data.object(); 32 33 try user.put("email", data.string("user@example.com")); 34 try auth.put("token", data.string("abc123-456-def")); 35 36 try root.put("user", user); 37 try root.put("auth", auth); 38 39 const output = try zmpl.Templates.example.render(&data, .{}); 40 41 try expectEqualStrings( 42 \\<!-- Zig mode for template logic --> 43 \\ <span>Zmpl is simple!</span> 44 \\ 45 \\<!-- Easy data lookup syntax --> 46 \\<div>Email: user@example.com</div> 47 \\<div>Token: abc123-456-def</div> 48 \\ 49 \\<!-- Partials --><span>An example partial</span> 50 \\ 51 \\<!-- Partials with positional args --><a href="mailto:user@example.com?subject=Welcome to Jetzig!">user@example.com</a> 52 \\ 53 \\<!-- Partials with keyword args --><a href="mailto:user@example.com?subject=Welcome to Jetzig!">user@example.com</a> 54 \\ 55 \\<!-- Partials with slots --><a href="mailto:user@example.com?subject=Welcome to Jetzig!">user@example.com</a> 56 \\ <div class="slot-0"><a href="https://example.com/auth/abc123-456-def">Sign in</a></div> <div class="slot-1"><a href="https://example.com/unsubscribe/abc123-456-def">Unsubscribe</a></div> 57 \\ 58 \\<div><h1>Built-in markdown support</h1> 59 \\<ul> 60 \\ <li><a href="https://www.jetzig.dev/">jetzig.dev</a></li> 61 \\</ul> 62 \\</div> 63 \\ 64 , output); 65}