File: cuetest_test.go

package info (click to toggle)
golang-github-cue-lang-cue 0.12.0.-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 19,072 kB
  • sloc: sh: 57; makefile: 17
file content (102 lines) | stat: -rw-r--r-- 2,303 bytes parent folder | download
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
package cuetest

import (
	"testing"
)

func TestCondition(t *testing.T) {
	cases := []struct {
		name string
		env  string
		con  string
		want bool
		err  string
	}{
		// issue cases covered by TestCheckIssueCondition
		{
			name: "bad condition",
			env:  ".",
			con:  "golang.org/Issue/1234", // note typo Issue
			want: false,
			err:  "unknown condition golang.org/Issue/1234",
		},
	}

	for _, c := range cases {
		t.Run(c.name, func(t *testing.T) {
			t.Setenv(envNonIssues, c.env)
			got, err := Condition(c.con)
			if got != c.want {
				t.Errorf("expected %v; got %v", c.want, got)
			}
			if c.err != "" {
				if err == nil {
					t.Errorf("expected error %q; got nil", c.err)
				} else if e := err.Error(); e != c.err {
					t.Errorf("expected error %q; got %q", c.err, e)
				}
			} else if err != nil {
				t.Errorf("expected no error; got %v", err)
			}
		})
	}
}

func TestCheckIssueCondition(t *testing.T) {
	cases := []struct {
		name     string
		env      string
		con      string
		isIssue  bool
		nonIssue bool
		err      string
	}{
		{
			name:     "empty env",
			con:      "golang.org/issue/1234",
			isIssue:  true,
			nonIssue: false,
		},
		{
			name:     "match all issues",
			env:      ".",
			con:      "golang.org/issue/1234",
			isIssue:  true,
			nonIssue: true,
		},
		{
			name:    "bad issue URL",
			con:     "golang.org/Issue/1234", // note typo
			isIssue: false,
		},
		{
			name:    "bad env",
			env:     `\`,
			con:     "golang.org/issue/1234",
			isIssue: false,
			err:     "failed to compile regexp \"\\\\\" specified via CUE_NON_ISSUES: error parsing regexp: trailing backslash at end of expression: ``",
		},
	}
	for _, c := range cases {
		t.Run(c.name, func(t *testing.T) {
			t.Setenv(envNonIssues, c.env)
			isIssue, nonIssue, err := checkIssueCondition(c.con)
			if isIssue != c.isIssue {
				t.Errorf("expected isIssue %v; got %v", c.isIssue, isIssue)
			}
			if nonIssue != c.nonIssue {
				t.Errorf("expected nonIssue %v; got %v", c.nonIssue, nonIssue)
			}
			if c.err != "" {
				if err == nil {
					t.Errorf("expected error %q; got nil", c.err)
				} else if e := err.Error(); e != c.err {
					t.Errorf("expected error %q; got %q", c.err, e)
				}
			} else if err != nil {
				t.Errorf("expected no error; got %q", err)
			}
		})
	}

}