github.com/iosif02/goja_nodejs@v1.0.1/console/module_test.go (about) 1 package console 2 3 import ( 4 "testing" 5 6 "github.com/iosif02/goja" 7 "github.com/iosif02/goja_nodejs/require" 8 ) 9 10 func TestConsole(t *testing.T) { 11 vm := goja.New() 12 13 new(require.Registry).Enable(vm) 14 Enable(vm) 15 16 if c := vm.Get("console"); c == nil { 17 t.Fatal("console not found") 18 } 19 20 if _, err := vm.RunString("console.log('')"); err != nil { 21 t.Fatal("console.log() error", err) 22 } 23 24 if _, err := vm.RunString("console.error('')"); err != nil { 25 t.Fatal("console.error() error", err) 26 } 27 28 if _, err := vm.RunString("console.warn('')"); err != nil { 29 t.Fatal("console.warn() error", err) 30 } 31 32 if _, err := vm.RunString("console.info('')"); err != nil { 33 t.Fatal("console.info() error", err) 34 } 35 36 if _, err := vm.RunString("console.debug('')"); err != nil { 37 t.Fatal("console.debug() error", err) 38 } 39 } 40 41 func TestConsoleWithPrinter(t *testing.T) { 42 var stdoutStr, stderrStr string 43 44 printer := StdPrinter{ 45 StdoutPrint: func(s string) { stdoutStr += s }, 46 StderrPrint: func(s string) { stderrStr += s }, 47 } 48 49 vm := goja.New() 50 51 registry := new(require.Registry) 52 registry.Enable(vm) 53 registry.RegisterNativeModule(ModuleName, RequireWithPrinter(printer)) 54 Enable(vm) 55 56 if c := vm.Get("console"); c == nil { 57 t.Fatal("console not found") 58 } 59 60 _, err := vm.RunString(` 61 console.log('a') 62 console.error('b') 63 console.warn('c') 64 console.debug('d') 65 console.info('e') 66 `) 67 if err != nil { 68 t.Fatal(err) 69 } 70 71 if want := "ade"; stdoutStr != want { 72 t.Fatalf("Unexpected stdout output: got %q, want %q", stdoutStr, want) 73 } 74 75 if want := "bc"; stderrStr != want { 76 t.Fatalf("Unexpected stderr output: got %q, want %q", stderrStr, want) 77 } 78 }