| 16 | ) |
| 17 | |
| 18 | func 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 | } |