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  }