(t *testing.T)
| 112 | } |
| 113 | |
| 114 | func TestGenerateDir(t *testing.T) { |
| 115 | is := is.New(t) |
| 116 | log := testlog.New() |
| 117 | ctx := context.Background() |
| 118 | dir := t.TempDir() |
| 119 | td := testdir.New(dir) |
| 120 | td.Files["view/index.svelte"] = `<h1>index</h1>` |
| 121 | td.Files["view/about/index.svelte"] = `<h2>about</h2>` |
| 122 | td.NodeModules["livebud"] = "*" |
| 123 | td.NodeModules["svelte"] = versions.Svelte |
| 124 | is.NoErr(td.Write(ctx)) |
| 125 | vm, err := v8.Load() |
| 126 | is.NoErr(err) |
| 127 | svelteCompiler, err := svelte.Load(vm) |
| 128 | is.NoErr(err) |
| 129 | transformer, err := transformrt.Default(log, svelteCompiler) |
| 130 | is.NoErr(err) |
| 131 | module, err := gomod.Find(dir) |
| 132 | is.NoErr(err) |
| 133 | gfs := genfs.New(dag.Discard, module, log) |
| 134 | gfs.DirGenerator("bud/view", dom.New(module, transformer)) |
| 135 | des, err := fs.ReadDir(gfs, "bud/view") |
| 136 | is.NoErr(err) |
| 137 | is.Equal(len(des), 3) |
| 138 | is.Equal(des[0].Name(), "_index.svelte.js") |
| 139 | is.Equal(des[0].IsDir(), false) |
| 140 | is.Equal(des[1].Name(), "about") |
| 141 | is.Equal(des[1].IsDir(), true) |
| 142 | is.True(strings.HasPrefix(des[2].Name(), "chunk-")) |
| 143 | is.Equal(des[2].IsDir(), false) |
| 144 | chunkName := des[2].Name() |
| 145 | des, err = fs.ReadDir(gfs, "bud/view/about") |
| 146 | is.NoErr(err) |
| 147 | is.Equal(len(des), 1) |
| 148 | is.Equal(des[0].Name(), "_index.svelte.js") |
| 149 | is.Equal(des[0].IsDir(), false) |
| 150 | |
| 151 | code, err := fs.ReadFile(gfs, "bud/view/_index.svelte.js") |
| 152 | is.NoErr(err) |
| 153 | is.True(strings.Contains(string(code), `"H1"`)) |
| 154 | is.True(strings.Contains(string(code), `"index"`)) |
| 155 | is.True(strings.Contains(string(code), fmt.Sprintf(`from"./%s"`, chunkName))) |
| 156 | is.True(strings.Contains(string(code), `page:"/bud/view/index.svelte"`)) |
| 157 | is.True(strings.Contains(string(code), `document.getElementById("bud_target")`)) |
| 158 | // TODO: remove hot |
| 159 | // is.True(!strings.Contains(string(code), `hot:`)) |
| 160 | |
| 161 | code, err = fs.ReadFile(gfs, "bud/view/about/_index.svelte.js") |
| 162 | is.NoErr(err) |
| 163 | is.True(strings.Contains(string(code), `"H2"`)) |
| 164 | is.True(strings.Contains(string(code), `"about"`)) |
| 165 | is.True(strings.Contains(string(code), fmt.Sprintf(`from"../%s"`, chunkName))) |
| 166 | is.True(strings.Contains(string(code), `page:"/bud/view/about/index.svelte"`)) |
| 167 | is.True(strings.Contains(string(code), `document.getElementById("bud_target")`)) |
| 168 | // TODO: remove hot |
| 169 | // is.True(!strings.Contains(string(code), `hot:`)) |
| 170 | |
| 171 | code, err = fs.ReadFile(gfs, fmt.Sprintf("bud/view/%s", chunkName)) |
nothing calls this directly
no test coverage detected