79 lines
1.6 KiB
Go
79 lines
1.6 KiB
Go
|
package console
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"apigo.cc/ai/ai/goja"
|
||
|
"apigo.cc/ai/ai/goja_nodejs/require"
|
||
|
)
|
||
|
|
||
|
func TestConsole(t *testing.T) {
|
||
|
vm := goja.New()
|
||
|
|
||
|
new(require.Registry).Enable(vm)
|
||
|
Enable(vm)
|
||
|
|
||
|
if c := vm.Get("console"); c == nil {
|
||
|
t.Fatal("console not found")
|
||
|
}
|
||
|
|
||
|
if _, err := vm.RunString("console.log('')"); err != nil {
|
||
|
t.Fatal("console.log() error", err)
|
||
|
}
|
||
|
|
||
|
if _, err := vm.RunString("console.error('')"); err != nil {
|
||
|
t.Fatal("console.error() error", err)
|
||
|
}
|
||
|
|
||
|
if _, err := vm.RunString("console.warn('')"); err != nil {
|
||
|
t.Fatal("console.warn() error", err)
|
||
|
}
|
||
|
|
||
|
if _, err := vm.RunString("console.info('')"); err != nil {
|
||
|
t.Fatal("console.info() error", err)
|
||
|
}
|
||
|
|
||
|
if _, err := vm.RunString("console.debug('')"); err != nil {
|
||
|
t.Fatal("console.debug() error", err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestConsoleWithPrinter(t *testing.T) {
|
||
|
var stdoutStr, stderrStr string
|
||
|
|
||
|
printer := StdPrinter{
|
||
|
StdoutPrint: func(s string) { stdoutStr += s },
|
||
|
StderrPrint: func(s string) { stderrStr += s },
|
||
|
}
|
||
|
|
||
|
vm := goja.New()
|
||
|
|
||
|
registry := new(require.Registry)
|
||
|
registry.Enable(vm)
|
||
|
registry.RegisterNativeModule(ModuleName, RequireWithPrinter(printer))
|
||
|
Enable(vm)
|
||
|
|
||
|
if c := vm.Get("console"); c == nil {
|
||
|
t.Fatal("console not found")
|
||
|
}
|
||
|
|
||
|
_, err := vm.RunString(`
|
||
|
console.log('a')
|
||
|
console.error('b')
|
||
|
console.warn('c')
|
||
|
console.debug('d')
|
||
|
console.info('e')
|
||
|
`)
|
||
|
if err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
|
||
|
if want := "ade"; stdoutStr != want {
|
||
|
t.Fatalf("Unexpected stdout output: got %q, want %q", stdoutStr, want)
|
||
|
}
|
||
|
|
||
|
if want := "bc"; stderrStr != want {
|
||
|
t.Fatalf("Unexpected stderr output: got %q, want %q", stderrStr, want)
|
||
|
}
|
||
|
}
|