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

Function TestTransform

framework/transform/transformrt/transform_test.go:18–75  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

16)
17
18func TestTransform(t *testing.T) {
19 is := is.New(t)
20 trace := []string{}
21 transformer, err := transformrt.Load([]*transformrt.Transformable{
22 {
23 From: ".svelte",
24 To: ".svelte",
25 For: transformrt.Platforms{
26 transformrt.PlatformAll: func(file *transformrt.File) error {
27 trace = append(trace, ".svelte>.svelte")
28 is.Equal(file.Path(), "index.svelte")
29 file.Code = bytes.ReplaceAll(file.Code, []byte("<h1>"), []byte("<h1 id='link'>"))
30 return nil
31 },
32 },
33 },
34 {
35 From: ".md",
36 To: ".svelte",
37 For: transformrt.Platforms{
38 transformrt.PlatformAll: func(file *transformrt.File) error {
39 trace = append(trace, ".md>.svelte")
40 is.Equal(file.Path(), "index.md")
41 file.Code = []byte(`<h1>Hi world</h1>`)
42 return nil
43 },
44 },
45 },
46 {
47 From: ".svelte",
48 To: ".js",
49 For: transformrt.Platforms{
50 transformrt.PlatformAll: func(file *transformrt.File) error {
51 trace = append(trace, ".svelte>.js")
52 is.Equal(file.Path(), "index.svelte")
53 file.Code = []byte(`document.body.innerHTML = "` + string(file.Code) + `"`)
54 return nil
55 },
56 },
57 },
58 }...)
59 is.NoErr(err)
60 result, err := transformer.SSR.Transform("index.md", "index.js", []byte(`# Hi world`))
61 is.NoErr(err)
62 is.Equal(string(result), `document.body.innerHTML = "<h1 id='link'>Hi world</h1>"`)
63 is.Equal(len(trace), 3)
64 is.Equal(trace[0], ".md>.svelte")
65 is.Equal(trace[1], ".svelte>.svelte")
66 is.Equal(trace[2], ".svelte>.js")
67 trace = []string{}
68 result, err = transformer.DOM.Transform("index.md", "index.js", []byte(`# Hi world`))
69 is.NoErr(err)
70 is.Equal(string(result), `document.body.innerHTML = "<h1 id='link'>Hi world</h1>"`)
71 is.Equal(len(trace), 3)
72 is.Equal(trace[0], ".md>.svelte")
73 is.Equal(trace[1], ".svelte>.svelte")
74 is.Equal(trace[2], ".svelte>.js")
75}

Callers

nothing calls this directly

Calls 6

NewFunction · 0.92
LoadFunction · 0.92
EqualMethod · 0.80
NoErrMethod · 0.80
TransformMethod · 0.65
PathMethod · 0.45

Tested by

no test coverage detected