annotate zs_test.go @ 45:6a12d981eaac draft

Merge pull request #2 from gsax/master update blackfriday version
author zaitsev.serge
date Tue, 24 Mar 2020 06:19:37 +0000
parents ed40ca93db1e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
45a9e1fac18e initial commit
zaitsev.serge
parents:
diff changeset
1 package main
45a9e1fac18e initial commit
zaitsev.serge
parents:
diff changeset
2
4
05fc24caac37 render uses strings, not bytes; added helpers for env and run
zaitsev.serge
parents: 2
diff changeset
3 import (
17
0214b1b5f5eb added amber and gcss compilers
zaitsev.serge
parents: 6
diff changeset
4 "io/ioutil"
4
05fc24caac37 render uses strings, not bytes; added helpers for env and run
zaitsev.serge
parents: 2
diff changeset
5 "os"
33
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
6 "path/filepath"
4
05fc24caac37 render uses strings, not bytes; added helpers for env and run
zaitsev.serge
parents: 2
diff changeset
7 "testing"
05fc24caac37 render uses strings, not bytes; added helpers for env and run
zaitsev.serge
parents: 2
diff changeset
8 )
0
45a9e1fac18e initial commit
zaitsev.serge
parents:
diff changeset
9
33
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
10 func TestRenameExt(t *testing.T) {
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
11 if s := renameExt("foo.amber", ".amber", ".html"); s != "foo.html" {
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
12 t.Error(s)
0
45a9e1fac18e initial commit
zaitsev.serge
parents:
diff changeset
13 }
33
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
14 if s := renameExt("foo.amber", "", ".html"); s != "foo.html" {
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
15 t.Error(s)
0
45a9e1fac18e initial commit
zaitsev.serge
parents:
diff changeset
16 }
33
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
17 if s := renameExt("foo.amber", ".md", ".html"); s != "foo.amber" {
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
18 t.Error(s)
0
45a9e1fac18e initial commit
zaitsev.serge
parents:
diff changeset
19 }
33
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
20 if s := renameExt("foo", ".amber", ".html"); s != "foo" {
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
21 t.Error(s)
0
45a9e1fac18e initial commit
zaitsev.serge
parents:
diff changeset
22 }
33
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
23 if s := renameExt("foo", "", ".html"); s != "foo.html" {
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
24 t.Error(s)
0
45a9e1fac18e initial commit
zaitsev.serge
parents:
diff changeset
25 }
45a9e1fac18e initial commit
zaitsev.serge
parents:
diff changeset
26 }
45a9e1fac18e initial commit
zaitsev.serge
parents:
diff changeset
27
33
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
28 func TestRun(t *testing.T) {
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
29 // external command
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
30 if s, err := run(Vars{}, "echo", "hello"); err != nil || s != "hello\n" {
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
31 t.Error(s, err)
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
32 }
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
33 // passing variables to plugins
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
34 if s, err := run(Vars{"foo": "bar"}, "sh", "-c", "echo $ZS_FOO"); err != nil || s != "bar\n" {
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
35 t.Error(s, err)
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
36 }
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
37
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
38 // custom plugin overriding external command
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
39 os.Mkdir(ZSDIR, 0755)
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
40 script := `#!/bin/sh
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
41 echo foo
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
42 `
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
43 ioutil.WriteFile(filepath.Join(ZSDIR, "echo"), []byte(script), 0755)
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
44 if s, err := run(Vars{}, "echo", "hello"); err != nil || s != "foo\n" {
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
45 t.Error(s, err)
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
46 }
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
47 os.Remove(filepath.Join(ZSDIR, "echo"))
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
48 os.Remove(ZSDIR)
17
0214b1b5f5eb added amber and gcss compilers
zaitsev.serge
parents: 6
diff changeset
49 }
0214b1b5f5eb added amber and gcss compilers
zaitsev.serge
parents: 6
diff changeset
50
33
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
51 func TestVars(t *testing.T) {
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
52 tests := map[string]Vars{
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
53 `
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
54 foo: bar
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
55 title: Hello, world!
34
ed40ca93db1e added explicit yaml separator, fixed amber compilation sequence
zaitsev.serge
parents: 33
diff changeset
56 ---
33
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
57 Some content in markdown
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
58 `: Vars{
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
59 "foo": "bar",
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
60 "title": "Hello, world!",
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
61 "url": "test.html",
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
62 "file": "test.md",
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
63 "output": filepath.Join(PUBDIR, "test.html"),
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
64 "__content": "Some content in markdown\n",
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
65 },
34
ed40ca93db1e added explicit yaml separator, fixed amber compilation sequence
zaitsev.serge
parents: 33
diff changeset
66 `
ed40ca93db1e added explicit yaml separator, fixed amber compilation sequence
zaitsev.serge
parents: 33
diff changeset
67 url: "example.com/foo.html"
ed40ca93db1e added explicit yaml separator, fixed amber compilation sequence
zaitsev.serge
parents: 33
diff changeset
68 ---
33
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
69 Hello
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
70 `: Vars{
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
71 "url": "example.com/foo.html",
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
72 "__content": "Hello\n",
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
73 },
0
45a9e1fac18e initial commit
zaitsev.serge
parents:
diff changeset
74 }
2
fd79b3a90bef fixed empty header in markdown
zaitsev.serge
parents: 1
diff changeset
75
33
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
76 for script, vars := range tests {
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
77 ioutil.WriteFile("test.md", []byte(script), 0644)
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
78 if v, s, err := getVars("test.md", Vars{"baz": "123"}); err != nil {
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
79 t.Error(err)
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
80 } else if s != vars["__content"] {
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
81 t.Error(s, vars["__content"])
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
82 } else {
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
83 for key, value := range vars {
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
84 if key != "__content" && v[key] != value {
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
85 t.Error(key, v[key], value)
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
86 }
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
87 }
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
88 }
2
fd79b3a90bef fixed empty header in markdown
zaitsev.serge
parents: 1
diff changeset
89 }
0
45a9e1fac18e initial commit
zaitsev.serge
parents:
diff changeset
90 }
45a9e1fac18e initial commit
zaitsev.serge
parents:
diff changeset
91
45a9e1fac18e initial commit
zaitsev.serge
parents:
diff changeset
92 func TestRender(t *testing.T) {
18
ae3116ea938b started migration to go templates
zaitsev.serge
parents: 17
diff changeset
93 vars := map[string]string{"foo": "bar"}
33
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
94
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
95 if s, _ := render("foo bar", vars); s != "foo bar" {
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
96 t.Error(s)
0
45a9e1fac18e initial commit
zaitsev.serge
parents:
diff changeset
97 }
33
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
98 if s, _ := render("a {{printf short}} text", vars); s != "a short text" {
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
99 t.Error(s)
0
45a9e1fac18e initial commit
zaitsev.serge
parents:
diff changeset
100 }
33
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
101 if s, _ := render("{{printf Hello}} x{{foo}}z", vars); s != "Hello xbarz" {
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
102 t.Error(s)
0
45a9e1fac18e initial commit
zaitsev.serge
parents:
diff changeset
103 }
4
05fc24caac37 render uses strings, not bytes; added helpers for env and run
zaitsev.serge
parents: 2
diff changeset
104 // Test error case
33
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
105 if _, err := render("a {{greet text ", vars); err == nil {
e3c902a7380d rewritten using zs templates, allowing go templates using <% %> delimiters
zaitsev.serge
parents: 23
diff changeset
106 t.Error("error expected")
4
05fc24caac37 render uses strings, not bytes; added helpers for env and run
zaitsev.serge
parents: 2
diff changeset
107 }
0
45a9e1fac18e initial commit
zaitsev.serge
parents:
diff changeset
108 }