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

Function TestGenerateDir

framework/view/dom/dom_test.go:114–175  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

112}
113
114func 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))

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
EqualMethod · 0.80
TrueMethod · 0.80

Tested by

no test coverage detected