Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
projectdiscovery
GitHub Repository: projectdiscovery/nuclei
Path: blob/dev/pkg/js/compiler/compiler_test.go
2070 views
1
package compiler
2
3
import (
4
"context"
5
"strings"
6
"testing"
7
"time"
8
9
"github.com/projectdiscovery/gologger"
10
"github.com/projectdiscovery/gologger/levels"
11
"github.com/projectdiscovery/nuclei/v3/pkg/types"
12
)
13
14
func TestNewCompilerConsoleDebug(t *testing.T) {
15
gotString := ""
16
gologger.DefaultLogger.SetMaxLevel(levels.LevelDebug)
17
gologger.DefaultLogger.SetWriter(&noopWriter{
18
Callback: func(data []byte, level levels.Level) {
19
gotString = string(data)
20
},
21
})
22
23
compiler := New()
24
p, err := SourceAutoMode("console.log('hello world');", false)
25
if err != nil {
26
t.Fatal(err)
27
}
28
29
_, err = compiler.ExecuteWithOptions(p, NewExecuteArgs(), &ExecuteOptions{Context: context.Background(),
30
TimeoutVariants: &types.Timeouts{JsCompilerExecutionTimeout: time.Duration(20) * time.Second}},
31
)
32
if err != nil {
33
t.Fatal(err)
34
}
35
if !strings.HasSuffix(gotString, "hello world") {
36
t.Fatalf("console.log not working, got=%v", gotString)
37
}
38
}
39
40
type noopWriter struct {
41
Callback func(data []byte, level levels.Level)
42
}
43
44
func (n *noopWriter) Write(data []byte, level levels.Level) {
45
if n.Callback != nil {
46
n.Callback(data, level)
47
}
48
}
49
50