| 2885 | } |
| 2886 | |
| 2887 | func 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) |