| 250 | } |
| 251 | |
| 252 | func TestDeleteGenerator(t *testing.T) { |
| 253 | is := is.New(t) |
| 254 | ctx := context.Background() |
| 255 | dir := t.TempDir() |
| 256 | td := testdir.New(dir) |
| 257 | td.Files["generator/tailwind/tailwind.go"] = ` |
| 258 | package tailwind |
| 259 | import ( |
| 260 | "github.com/livebud/bud/package/genfs" |
| 261 | ) |
| 262 | type Generator struct {} |
| 263 | func (g *Generator) Generate(fsys genfs.FS, dir *genfs.Dir) error { |
| 264 | dir.GenerateFile("tailwind.css", func(fsys genfs.FS, file *genfs.File) error { |
| 265 | file.Data = []byte("/** tailwind **/") |
| 266 | return nil |
| 267 | }) |
| 268 | return nil |
| 269 | } |
| 270 | ` |
| 271 | is.NoErr(td.Write(ctx)) |
| 272 | cli := testcli.New(dir) |
| 273 | app, err := cli.Start(ctx, "run") |
| 274 | is.NoErr(err) |
| 275 | defer app.Close() |
| 276 | // Check for tailwind |
| 277 | data, err := os.ReadFile(td.Path("bud/internal/tailwind/tailwind.css")) |
| 278 | is.NoErr(err) |
| 279 | is.Equal(string(data), "/** tailwind **/") |
| 280 | // Update generator |
| 281 | generatorFile := filepath.Join(dir, "generator", "tailwind", "tailwind.go") |
| 282 | is.NoErr(os.WriteFile(generatorFile, []byte(dedent.Dedent(` |
| 283 | package tailwind |
| 284 | import ( |
| 285 | "github.com/livebud/bud/package/genfs" |
| 286 | ) |
| 287 | type Generator struct {} |
| 288 | func (g *Generator) Generate(fsys genfs.FS, dir *genfs.Dir) error { |
| 289 | return nil |
| 290 | } |
| 291 | `)), 0644)) |
| 292 | // Wait for the app to be ready again |
| 293 | readyCtx, cancel := context.WithTimeout(ctx, 15*time.Second) |
| 294 | is.NoErr(app.Ready(readyCtx)) |
| 295 | cancel() |
| 296 | // Check that tailwind has been updated |
| 297 | data, err = os.ReadFile(td.Path("bud/internal/tailwind/tailwind.css")) |
| 298 | is.True(os.IsNotExist(err)) |
| 299 | is.Equal(data, nil) |
| 300 | } |
| 301 | |
| 302 | func TestChangeGenerator(t *testing.T) { |
| 303 | is := is.New(t) |