(t *testing.T)
| 26 | ) |
| 27 | |
| 28 | func 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 | |
| 68 | func TestSvelteAwait(t *testing.T) { |
| 69 | is := is.New(t) |
nothing calls this directly
no test coverage detected