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

Function TestChangeGenerator

framework/generator/generator_test.go:302–358  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

300}
301
302func TestChangeGenerator(t *testing.T) {
303 is := is.New(t)
304 ctx := context.Background()
305 dir := t.TempDir()
306 td := testdir.New(dir)
307 td.Files["generator/tailwind/tailwind.go"] = `
308 package tailwind
309 import (
310 "github.com/livebud/bud/package/genfs"
311 )
312 type Generator struct {}
313 func (g *Generator) Generate(fsys genfs.FS, dir *genfs.Dir) error {
314 dir.GenerateFile("tailwind.css", func(fsys genfs.FS, file *genfs.File) error {
315 file.Data = []byte("/** tailwind **/")
316 return nil
317 })
318 return nil
319 }
320 `
321 is.NoErr(td.Write(ctx))
322 cli := testcli.New(dir)
323 app, err := cli.Start(ctx, "run")
324 is.NoErr(err)
325 defer app.Close()
326 // Check for tailwind
327 data, err := os.ReadFile(td.Path("bud/internal/tailwind/tailwind.css"))
328 is.NoErr(err)
329 is.Equal(string(data), "/** tailwind **/")
330 // Update generator
331 generatorFile := filepath.Join(dir, "generator", "tailwind", "tailwind.go")
332 is.NoErr(os.WriteFile(generatorFile, []byte(dedent.Dedent(`
333 package tailwind
334 import (
335 "github.com/livebud/bud/package/genfs"
336 )
337 type Generator struct {}
338 func (g *Generator) Generate(fsys genfs.FS, dir *genfs.Dir) error {
339 dir.GenerateFile("preflight.css", func(fsys genfs.FS, file *genfs.File) error {
340 file.Data = []byte("/** preflight **/")
341 return nil
342 })
343 return nil
344 }
345 `)), 0644))
346 // Wait for the app to be ready again
347 readyCtx, cancel := context.WithTimeout(ctx, 15*time.Second)
348 is.NoErr(app.Ready(readyCtx))
349 cancel()
350 // Check that tailwind has been updated
351 data, err = os.ReadFile(td.Path("bud/internal/tailwind/tailwind.css"))
352 is.True(os.IsNotExist(err))
353 is.Equal(data, nil)
354 // Check for preflight
355 data, err = os.ReadFile(td.Path("bud/internal/tailwind/preflight.css"))
356 is.NoErr(err)
357 is.Equal(string(data), "/** preflight **/")
358}
359

Callers

nothing calls this directly

Calls 12

NewFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
NoErrMethod · 0.80
EqualMethod · 0.80
ReadyMethod · 0.80
TrueMethod · 0.80
CloseMethod · 0.65
WriteFileMethod · 0.65
WriteMethod · 0.45
StartMethod · 0.45
PathMethod · 0.45

Tested by

no test coverage detected