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) } }