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

Function TestDeleteRouteAndControllerAndView

framework/controller/controller_test.go:2887–2977  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2885}
2886
2887func TestDeleteRouteAndControllerAndView(t *testing.T) {
2888 is := is.New(t)
2889 ctx := context.Background()
2890 dir := t.TempDir()
2891 td := testdir.New(dir)
2892 td.NodeModules["svelte"] = versions.Svelte
2893 td.Files["controller/posts/controller.go"] = `
2894 package controller
2895 type Controller struct{}
2896 func (c *Controller) Index() string {
2897 return "/"
2898 }
2899 func (c *Controller) Show(id string) string {
2900 return "/"+id
2901 }
2902 `
2903 td.Files["view/posts/index.svelte"] = `
2904 <h1>Posts</h1>
2905 `
2906 td.Files["view/posts/show.svelte"] = `
2907 <h1>Show Posts</h1>
2908 `
2909 is.NoErr(td.Write(ctx))
2910 // Start
2911 cli := testcli.New(dir)
2912 app, err := cli.Start(ctx, "run")
2913 is.NoErr(err)
2914 defer app.Close()
2915 // Test /posts
2916 res, err := app.Get("/posts")
2917 is.NoErr(err)
2918 is.NoErr(res.DiffHeaders(`
2919 HTTP/1.1 200 OK
2920 Transfer-Encoding: chunked
2921 Content-Type: text/html
2922 `))
2923 sel, err := res.Query("#bud_target")
2924 is.NoErr(err)
2925 html, err := sel.Html()
2926 is.NoErr(err)
2927 is.Equal(html, `<h1>Posts</h1>`)
2928 // Test /posts/10
2929 res, err = app.Get("/posts/10")
2930 is.NoErr(err)
2931 is.NoErr(res.DiffHeaders(`
2932 HTTP/1.1 200 OK
2933 Transfer-Encoding: chunked
2934 Content-Type: text/html
2935 `))
2936 sel, err = res.Query("#bud_target")
2937 is.NoErr(err)
2938 html, err = sel.Html()
2939 is.NoErr(err)
2940 is.Equal(html, `<h1>Show Posts</h1>`)
2941 // Delete the show view
2942 is.NoErr(os.Remove(filepath.Join(dir, "view", "posts", "show.svelte")))
2943 // Wait for the app to be ready again
2944 readyCtx, cancel := context.WithTimeout(ctx, 15*time.Second)

Callers

nothing calls this directly

Calls 15

NewFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
NoErrMethod · 0.80
DiffHeadersMethod · 0.80
QueryMethod · 0.80
EqualMethod · 0.80
ReadyMethod · 0.80
NotInMethod · 0.80
BodyMethod · 0.80
CloseMethod · 0.65
GetMethod · 0.65

Tested by

no test coverage detected