MCPcopy
hub / github.com/livebud/bud / TestUpdateFile

Function TestUpdateFile

framework/view/dom/dom_test.go:177–260  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

175}
176
177func TestUpdateFile(t *testing.T) {
178 is := is.New(t)
179 log := testlog.New()
180 ctx := context.Background()
181 dir := t.TempDir()
182 vm, err := v8.Load()
183 is.NoErr(err)
184 svelteCompiler, err := svelte.Load(vm)
185 is.NoErr(err)
186 transformer, err := transformrt.Default(log, svelteCompiler)
187 is.NoErr(err)
188 td := testdir.New(dir)
189 td.NodeModules["svelte"] = versions.Svelte
190 td.Files["view/Story.svelte"] = `<h2>Story</h2>`
191 td.Files["view/index.svelte"] = `
192 <script>
193 import Story from "./Story.svelte";
194 </script>
195 <h1>home</h1>
196 <Story />
197 `
198 is.NoErr(td.Write(ctx))
199 module, err := gomod.Find(dir)
200 is.NoErr(err)
201 cache, err := dag.Load(log, module.Directory("bud/bud.db"))
202 is.NoErr(err)
203 gfs := genfs.New(cache, module, log)
204 gfs.FileServer("bud/view", dom.New(module, transformer))
205 // check entry
206 code, err := fs.ReadFile(gfs, "bud/view/_index.svelte.js")
207 is.NoErr(err)
208 is.True(strings.Contains(string(code), `"home"`), "missing home")
209 is.True(strings.Contains(string(code), `"Story"`), "missing Story")
210 // check component
211 code, err = fs.ReadFile(gfs, "bud/view/index.svelte")
212 is.NoErr(err)
213 is.True(strings.Contains(string(code), `"home"`), "missing home")
214 is.True(strings.Contains(string(code), `"Story"`), "missing Story")
215 // Change view/Story.svelte and view/index.svelte
216 os.WriteFile(filepath.Join(dir, "view/Story.svelte"), []byte(`<h2>Stories</h2>`), 0644)
217 os.WriteFile(filepath.Join(dir, "view/index.svelte"), []byte(`
218 <script>
219 import Story from "./Story.svelte";
220 </script>
221 <h1>homies</h1>
222 <Story />
223 `), 0644)
224 // check entry (cached)
225 code, err = fs.ReadFile(gfs, "bud/view/_index.svelte.js")
226 is.NoErr(err)
227 is.True(strings.Contains(string(code), `"home"`), "missing home")
228 is.True(strings.Contains(string(code), `"Story"`), "missing Story")
229 // check component (cached)
230 code, err = fs.ReadFile(gfs, "bud/view/index.svelte")
231 is.NoErr(err)
232 is.True(strings.Contains(string(code), `"home"`), "missing home")
233 is.True(strings.Contains(string(code), `"Story"`), "missing Story")
234 // Mark view/Story.svelte and view/index.svelte as changed

Callers

nothing calls this directly

Calls 15

NewFunction · 0.92
NewFunction · 0.92
LoadFunction · 0.92
LoadFunction · 0.92
DefaultFunction · 0.92
NewFunction · 0.92
FindFunction · 0.92
LoadFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
NoErrMethod · 0.80
TrueMethod · 0.80

Tested by

no test coverage detected