Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
projectdiscovery
GitHub Repository: projectdiscovery/nuclei
Path: blob/dev/pkg/js/utils/nucleijs_test.go
4538 views
1
package utils
2
3
import (
4
"context"
5
"testing"
6
"time"
7
8
"github.com/Mzack9999/goja"
9
"github.com/stretchr/testify/require"
10
)
11
12
func TestNucleiJSContextFallback(t *testing.T) {
13
t.Run("nil receiver", func(t *testing.T) {
14
ctx := (*NucleiJS)(nil).Context()
15
require.NotNil(t, ctx)
16
require.NoError(t, ctx.Err())
17
})
18
19
t.Run("missing runtime context", func(t *testing.T) {
20
ctx := NewNucleiJS(goja.New()).Context()
21
require.NotNil(t, ctx)
22
require.NoError(t, ctx.Err())
23
})
24
}
25
26
func TestNucleiJSContextUsesRuntimeValue(t *testing.T) {
27
runtime := goja.New()
28
expected, cancel := context.WithTimeout(context.Background(), time.Second)
29
defer cancel()
30
31
runtime.SetContextValue("ctx", expected)
32
33
ctx := NewNucleiJS(runtime).Context()
34
require.Same(t, expected, ctx)
35
36
deadline, ok := ctx.Deadline()
37
require.True(t, ok)
38
expectedDeadline, _ := expected.Deadline()
39
require.Equal(t, expectedDeadline, deadline)
40
}
41
42