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

Function TestNewControllerAll

internal/cli/new_controller_test.go:75–171  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

73}
74
75func 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)

Callers

nothing calls this directly

Calls 15

NewFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
NoErrMethod · 0.80
EqualMethod · 0.80
ExistsMethod · 0.80
StatusMethod · 0.80
QueryMethod · 0.80
InMethod · 0.80
DiffMethod · 0.80
PostRequestMethod · 0.80
RunMethod · 0.65

Tested by

no test coverage detected