-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathanalyze_test.go
45 lines (36 loc) · 1.02 KB
/
analyze_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package k6deps_test
import (
"testing"
"github.com/grafana/k6deps"
"github.com/stretchr/testify/require"
)
func Test_Analyze(t *testing.T) {
t.Parallel()
opts := &k6deps.Options{
Script: k6deps.Source{
Name: "script.js",
Contents: []byte(`"use k6 with k6/x/bar>=2.0";`),
},
Manifest: k6deps.Source{
Name: "package.json",
Contents: []byte(`{"dependencies":{"k6/x/foo":">1.0"}}`),
},
Env: k6deps.Source{
Name: "DEPS",
Contents: []byte(`k6/x/yaml>v0.1.0`),
},
}
deps, err := k6deps.Analyze(opts)
require.NoError(t, err)
require.Len(t, deps, 3)
require.Equal(t, deps["k6/x/bar"].Constraints.String(), ">=2.0")
require.Equal(t, deps["k6/x/foo"].Constraints.String(), ">1.0")
require.Equal(t, deps["k6/x/yaml"].Constraints.String(), ">v0.1.0")
opts.Script.Contents = nil
opts.Script.Name = "__NO__SUCH__SCRIPT__"
_, err = k6deps.Analyze(opts)
require.Error(t, err)
opts.Script.Contents = []byte(`"use k6 with k6/x/faker>>1.0";`)
_, err = k6deps.Analyze(opts)
require.Error(t, err)
}