forked from forgejo/forgejo
Add support for rendering terminal output with colors (#19497)
This commit is contained in:
parent
8fee7c46c1
commit
f92b7a6331
10 changed files with 466 additions and 0 deletions
31
modules/markup/console/console_test.go
Normal file
31
modules/markup/console/console_test.go
Normal file
|
@ -0,0 +1,31 @@
|
|||
// Copyright 2022 The Gitea Authors. All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package console
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"code.gitea.io/gitea/modules/markup"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestRenderConsole(t *testing.T) {
|
||||
var render Renderer
|
||||
kases := map[string]string{
|
||||
"\x1b[37m\x1b[40mnpm\x1b[0m \x1b[0m\x1b[32minfo\x1b[0m \x1b[0m\x1b[35mit worked if it ends with\x1b[0m ok": "<span class=\"term-fg37 term-bg40\">npm</span> <span class=\"term-fg32\">info</span> <span class=\"term-fg35\">it worked if it ends with</span> ok",
|
||||
}
|
||||
|
||||
for k, v := range kases {
|
||||
var buf strings.Builder
|
||||
canRender := render.CanRender("test", strings.NewReader(k))
|
||||
assert.True(t, canRender)
|
||||
|
||||
err := render.Render(&markup.RenderContext{}, strings.NewReader(k), &buf)
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, v, buf.String())
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue