1 package skipper
2
3 import (
4 "testing"
5
6 "github.com/stretchr/testify/assert"
7 )
8
9 func TestLabelSkipping(t *testing.T) {
10 tcs := map[string]struct {
11 labels map[string]string
12 skip map[string]string
13 input map[string]string
14 expected bool
15 }{
16 "labels": {
17 map[string]string{"bear": "apple"},
18 nil,
19 map[string]string{"bear": "apple", "a": "b"},
20 false,
21 },
22 "labels-skip-simple": {
23 map[string]string{"a": "b", "martial-arts": "karate"},
24 nil,
25 map[string]string{"bear": "apple"},
26 true,
27 },
28 "labels-skip-multiple": {
29 map[string]string{"a": "b", "martial-arts": "karate"},
30 nil,
31 map[string]string{"bear": "apple", "body": "builder"},
32 true,
33 },
34 "labels-skip-multiple-partial": {
35 map[string]string{"a": "b", "martial-arts": "karate", "bear": "apple"},
36 nil,
37 map[string]string{"bear": "apple", "body": "builder"},
38 true,
39 },
40 "labels-multiple": {
41 map[string]string{"a": "b", "bear": "apple", "martial-arts": "karate"},
42 nil,
43 map[string]string{"bear": "apple", "a": "b", "key": "benz",
44 "dreaming": "gently", "martial-arts": "karate"},
45 false,
46 },
47 "skip-labels-one-match": {
48 nil, map[string]string{"a": "b", "bear": "apple", "martial-arts": "karate"},
49 map[string]string{"bear": "apple", "key": "benz", "dreaming": "gently"},
50 true,
51 },
52 "skip-labels-multiple-match": {
53 nil, map[string]string{"a": "b", "bear": "apple", "martial-arts": "karate"},
54 map[string]string{"bear": "apple", "a": "b", "key": "benz",
55 "dreaming": "gently"},
56 true,
57 },
58 "skip-if-no-labels-when": {
59 map[string]string{"a": "b", "bear": "apple", "martial-arts": "karate"},
60 nil,
61 map[string]string{},
62 true,
63 },
64 }
65
66 for name, tc := range tcs {
67 t.Run(name, func(t *testing.T) {
68 skip, _ := SkipBasedOnLabels(tc.input, tc.labels, tc.skip)
69 assert.Equal(t, tc.expected, skip)
70 })
71 }
72 }
73
View as plain text