nuclei/pkg/js/compiler/compiler_test.go
Tarun Koyalwar 2b729e4037
fix context leak in flow (#6282)
* fix context leak in flow

* handle sizedwaitpool when not reused
2025-06-30 16:43:00 +07:00

49 lines
1.1 KiB
Go

package compiler
import (
"context"
"strings"
"testing"
"time"
"github.com/projectdiscovery/gologger"
"github.com/projectdiscovery/gologger/levels"
"github.com/projectdiscovery/nuclei/v3/pkg/types"
)
func TestNewCompilerConsoleDebug(t *testing.T) {
gotString := ""
gologger.DefaultLogger.SetMaxLevel(levels.LevelDebug)
gologger.DefaultLogger.SetWriter(&noopWriter{
Callback: func(data []byte, level levels.Level) {
gotString = string(data)
},
})
compiler := New()
p, err := SourceAutoMode("console.log('hello world');", false)
if err != nil {
t.Fatal(err)
}
_, err = compiler.ExecuteWithOptions(p, NewExecuteArgs(), &ExecuteOptions{Context: context.Background(),
TimeoutVariants: &types.Timeouts{JsCompilerExecutionTimeout: time.Duration(20) * time.Second}},
)
if err != nil {
t.Fatal(err)
}
if !strings.HasSuffix(gotString, "hello world") {
t.Fatalf("console.log not working, got=%v", gotString)
}
}
type noopWriter struct {
Callback func(data []byte, level levels.Level)
}
func (n *noopWriter) Write(data []byte, level levels.Level) {
if n.Callback != nil {
n.Callback(data, level)
}
}