MCPcopy
hub / github.com/pocketbase/pocketbase / TestRegistryLoadFiles

Function TestRegistryLoadFiles

tools/template/registry_test.go:57–121  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

55}
56
57func TestRegistryLoadFiles(t *testing.T) {
58 r := NewRegistry()
59
60 t.Run("invalid or missing files", func(t *testing.T) {
61 r.LoadFiles("file1.missing", "file2.missing")
62
63 key := "file1.missing,file2.missing"
64 renderer := r.cache.Get(key)
65
66 if renderer == nil {
67 t.Fatal("Expected renderer to be initialized even if invalid, got nil")
68 }
69
70 if renderer.template != nil {
71 t.Fatalf("Expected renderer template to be nil, got %v", renderer.template)
72 }
73
74 if renderer.parseError == nil {
75 t.Fatalf("Expected renderer parseError to be set, got nil")
76 }
77 })
78
79 t.Run("valid files", func(t *testing.T) {
80 // create test templates
81 dir, err := os.MkdirTemp(os.TempDir(), "template_test")
82 if err != nil {
83 t.Fatal(err)
84 }
85 if err := os.WriteFile(filepath.Join(dir, "base.html"), []byte(`Base:{{template "content" .}}`), 0644); err != nil {
86 t.Fatal(err)
87 }
88 if err := os.WriteFile(filepath.Join(dir, "content.html"), []byte(`{{define "content"}}Content:{{.|raw}}{{end}}`), 0644); err != nil {
89 t.Fatal(err)
90 }
91 defer os.RemoveAll(dir)
92
93 files := []string{filepath.Join(dir, "base.html"), filepath.Join(dir, "content.html")}
94
95 r.LoadFiles(files...)
96
97 renderer := r.cache.Get(strings.Join(files, ","))
98
99 if renderer == nil {
100 t.Fatal("Expected renderer to be initialized even if invalid, got nil")
101 }
102
103 if renderer.template == nil {
104 t.Fatal("Expected renderer template to be set, got nil")
105 }
106
107 if renderer.parseError != nil {
108 t.Fatalf("Expected renderer parseError to be nil, got %v", renderer.parseError)
109 }
110
111 result, err := renderer.Render("<h1>123</h1>")
112 if err != nil {
113 t.Fatalf("Unexpected Render() error, got %v", err)
114 }

Callers

nothing calls this directly

Calls 6

LoadFilesMethod · 0.95
NewRegistryFunction · 0.85
RenderMethod · 0.80
GetMethod · 0.65
RunMethod · 0.45
RemoveAllMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…