mirror of
https://github.com/projectdiscovery/nuclei.git
synced 2025-12-17 22:35:27 +00:00
49 lines
1.1 KiB
Go
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)
|
|
}
|
|
}
|