z_mirror/fmm

git clone https://git.raiguard.me/z_mirror/fmm

Caleb HeuerFix dependency version parsing when there is no space between comparator and version4a625d5

trunk
1.6 KiB62 linesraw
1package fmm
2
3import (
4	"testing"
5
6	"github.com/stretchr/testify/require"
7)
8
9func TestNewDependency(t *testing.T) {
10	tests := []struct {
11		input   string
12		name    string
13		version *Version
14		kind    DependencyKind
15		req     VersionCmpRes
16	}{
17		{"flib", "flib", nil, DependencyRequired, VersionAny},
18		{"\tflib ", "flib", nil, DependencyRequired, VersionAny},
19		{"! flib", "flib", nil, DependencyIncompatible, VersionAny},
20		{"flib >= 0.10", "flib", &Version{0, 10, 0}, DependencyRequired, VersionGtEq},
21		{"flib >= 0.10.0", "flib", &Version{0, 10, 0}, DependencyRequired, VersionGtEq},
22		{"flib > 0.10", "flib", &Version{0, 10, 0}, DependencyRequired, VersionGt},
23		{"flib>=0.10", "flib", &Version{0, 10, 0}, DependencyRequired, VersionGtEq},
24	}
25	for _, test := range tests {
26		dep, err := NewDependency(test.input)
27		if err != nil {
28			t.Error(err)
29		}
30		require.Equal(t, test.name, dep.Name)
31		if test.version == nil {
32			require.Nil(t, dep.Version)
33		} else {
34			require.NotNil(t, dep.Version)
35		}
36
37		require.Equal(t, test.kind, dep.Kind)
38		require.Equal(t, test.req, dep.Req)
39	}
40}
41
42func TestDependencyTest(t *testing.T) {
43	tests := []struct {
44		dep     string
45		version Version
46		result  bool
47	}{
48		{"flib", Version{0, 1, 1}, true},
49		{"! flib", Version{0, 1, 1}, false},
50		{"flib >= 0.10", Version{0, 1, 1}, false},
51		{"flib >= 0.10", Version{0, 10, 0}, true},
52		{"flib >= 0.10.0", Version{0, 10, 0}, true},
53		{"flib > 0.10", Version{0, 10, 0}, false},
54		{"flib>=0.10", Version{0, 10, 0}, true},
55	}
56
57	for _, test := range tests {
58		dep, err := NewDependency(test.dep)
59		require.NoError(t, err)
60		require.Equal(t, dep.Test(&test.version), test.result)
61	}
62}