MCPcopy
hub / github.com/pocketbase/pocketbase / TestRegistryLoadFS

Function TestRegistryLoadFS

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

Source from the content-addressed store, hash-verified

175}
176
177func TestRegistryLoadFS(t *testing.T) {
178 r := NewRegistry()
179
180 t.Run("invalid fs", func(t *testing.T) {
181 fs := os.DirFS("__missing__")
182
183 files := []string{"missing1", "missing2"}
184
185 key := fmt.Sprintf("%v%v", fs, files)
186
187 r.LoadFS(fs, files...)
188
189 renderer := r.cache.Get(key)
190
191 if renderer == nil {
192 t.Fatal("Expected renderer to be initialized even if invalid, got nil")
193 }
194
195 if renderer.template != nil {
196 t.Fatalf("Expected renderer template to be nil, got %v", renderer.template)
197 }
198
199 if renderer.parseError == nil {
200 t.Fatalf("Expected renderer parseError to be set, got nil")
201 }
202 })
203
204 t.Run("valid fs", func(t *testing.T) {
205 // create test templates
206 dir, err := os.MkdirTemp(os.TempDir(), "template_test2")
207 if err != nil {
208 t.Fatal(err)
209 }
210 if err := os.WriteFile(filepath.Join(dir, "base.html"), []byte(`Base:{{template "content" .}}`), 0644); err != nil {
211 t.Fatal(err)
212 }
213 if err := os.WriteFile(filepath.Join(dir, "content.html"), []byte(`{{define "content"}}Content:{{.|raw}}{{end}}`), 0644); err != nil {
214 t.Fatal(err)
215 }
216 defer os.RemoveAll(dir)
217
218 fs := os.DirFS(dir)
219
220 files := []string{"base.html", "content.html"}
221
222 key := fmt.Sprintf("%v%v", fs, files)
223
224 r.LoadFS(fs, files...)
225
226 renderer := r.cache.Get(key)
227
228 if renderer == nil {
229 t.Fatal("Expected renderer to be initialized even if invalid, got nil")
230 }
231
232 if renderer.template == nil {
233 t.Fatal("Expected renderer template to be set, got nil")
234 }

Callers

nothing calls this directly

Calls 6

LoadFSMethod · 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…