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

Function TestSvelteHello

framework/view/ssr/ssr_test.go:28–66  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

26)
27
28func TestSvelteHello(t *testing.T) {
29 is := is.New(t)
30 log := testlog.New()
31 ctx := context.Background()
32 dir := t.TempDir()
33 td := testdir.New(dir)
34 td.Files["view/index.svelte"] = `<h1>hi world</h1>`
35 td.NodeModules["svelte"] = versions.Svelte
36 is.NoErr(td.Write(ctx))
37 vm, err := v8.Load()
38 is.NoErr(err)
39 svelteCompiler, err := svelte.Load(vm)
40 is.NoErr(err)
41 transformer, err := transformrt.Default(log, svelteCompiler)
42 is.NoErr(err)
43 module, err := gomod.Find(dir)
44 is.NoErr(err)
45 gfs := genfs.New(dag.Discard, module, log)
46 is.NoErr(err)
47 gfs.FileGenerator("bud/view/_ssr.js", ssr.New(module, transformer))
48 // Read the wrapped version of index.svelte with node_modules rewritten
49 code, err := fs.ReadFile(gfs, "bud/view/_ssr.js")
50 is.NoErr(err)
51 is.True(strings.Contains(string(code), `create_ssr_component(`))
52 is.True(strings.Contains(string(code), `<h1>hi world</h1>`))
53 is.True(strings.Contains(string(code), `views["/"] = `))
54 result, err := vm.Eval("render.js", string(code)+`; bud.render("/", {})`)
55 is.NoErr(err)
56 var res ssr.Response
57 err = json.Unmarshal([]byte(result), &res)
58 is.NoErr(err)
59 is.Equal(res.Status, 200)
60 is.Equal(len(res.Headers), 1)
61 is.Equal(res.Headers["Content-Type"], "text/html")
62 is.True(strings.Contains(res.Body, `<script id="bud_props" type="text/template" defer>{}</script>`))
63 is.True(strings.Contains(res.Body, `<script type="module" src="/bud/view/_index.svelte.js" defer></script>`))
64 is.True(strings.Contains(res.Body, `<div id="bud_target">`))
65 is.True(strings.Contains(res.Body, `<h1>hi world</h1>`))
66}
67
68func TestSvelteAwait(t *testing.T) {
69 is := is.New(t)

Callers

nothing calls this directly

Calls 15

NewFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
LoadFunction · 0.92
LoadFunction · 0.92
DefaultFunction · 0.92
FindFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
NoErrMethod · 0.80
TrueMethod · 0.80
UnmarshalMethod · 0.80

Tested by

no test coverage detected