| 73 | } |
| 74 | |
| 75 | func TestNewControllerAll(t *testing.T) { |
| 76 | is := is.New(t) |
| 77 | ctx := context.Background() |
| 78 | dir := t.TempDir() |
| 79 | td := testdir.New(dir) |
| 80 | td.NodeModules["svelte"] = versions.Svelte |
| 81 | err := td.Write(ctx) |
| 82 | is.NoErr(err) |
| 83 | cli := testcli.New(dir) |
| 84 | result, err := cli.Run(ctx, "new", "controller", "posts", "index", "show", "create", "update", "delete", "edit", "new") |
| 85 | is.NoErr(err) |
| 86 | is.Equal(result.Stdout(), "") |
| 87 | is.Equal(result.Stderr(), "") |
| 88 | is.NoErr(td.Exists("controller/posts/controller.go")) |
| 89 | app, err := cli.Start(ctx, "run") |
| 90 | is.NoErr(err) |
| 91 | defer app.Close() |
| 92 | |
| 93 | // Post index |
| 94 | res, err := app.Get("/posts") |
| 95 | is.NoErr(err) |
| 96 | is.Equal(res.Status(), 200) |
| 97 | sel, err := res.Query("#bud_target") |
| 98 | is.NoErr(err) |
| 99 | html, err := sel.Html() |
| 100 | is.NoErr(err) |
| 101 | is.In(html, `<h1>Post Index</h1>`) |
| 102 | is.In(html, `<table `) |
| 103 | is.In(html, `</table>`) |
| 104 | |
| 105 | // New post |
| 106 | res, err = app.Get("/posts/new") |
| 107 | is.NoErr(err) |
| 108 | is.Equal(res.Status(), 200) |
| 109 | sel, err = res.Query("#bud_target") |
| 110 | is.NoErr(err) |
| 111 | html, err = sel.Html() |
| 112 | is.NoErr(err) |
| 113 | is.In(html, `<h1>New Post</h1>`) |
| 114 | is.In(html, `<form method="post" action="/posts">`) |
| 115 | is.In(html, `<input type="submit" value="Create Post"/>`) |
| 116 | is.In(html, `</form>`) |
| 117 | is.In(html, `<a href="/posts">Back</a>`) |
| 118 | |
| 119 | // Create post |
| 120 | res, err = app.Post("/posts", nil) |
| 121 | is.NoErr(err) |
| 122 | is.NoErr(res.Diff(` |
| 123 | HTTP/1.1 302 Found |
| 124 | Location: /posts/0 |
| 125 | `)) |
| 126 | |
| 127 | // Edit post |
| 128 | res, err = app.Get("/posts/10/edit") |
| 129 | is.NoErr(err) |
| 130 | is.Equal(res.Status(), 200) |
| 131 | sel, err = res.Query("#bud_target") |
| 132 | is.NoErr(err) |