...

Source file src/go.einride.tech/aip/resourcename/ancestor_test.go

Documentation: go.einride.tech/aip/resourcename

     1  package resourcename
     2  
     3  import (
     4  	"testing"
     5  
     6  	"gotest.tools/v3/assert"
     7  )
     8  
     9  func TestAncestor(t *testing.T) {
    10  	t.Parallel()
    11  	for _, tt := range []struct {
    12  		name       string
    13  		input      string
    14  		pattern    string
    15  		expected   string
    16  		expectedOK bool
    17  	}{
    18  		{
    19  			name:     "empty all",
    20  			input:    "",
    21  			pattern:  "",
    22  			expected: "",
    23  		},
    24  		{
    25  			name:     "empty pattern",
    26  			input:    "foo/1/bar/2",
    27  			pattern:  "",
    28  			expected: "",
    29  		},
    30  
    31  		{
    32  			name:     "empty name",
    33  			input:    "",
    34  			pattern:  "foo/{foo}",
    35  			expected: "",
    36  		},
    37  
    38  		{
    39  			name:     "non-matching pattern",
    40  			input:    "foo/1/bar/2",
    41  			pattern:  "baz/{baz}",
    42  			expected: "",
    43  		},
    44  
    45  		{
    46  			name:       "ok",
    47  			input:      "foo/1/bar/2",
    48  			pattern:    "foo/{foo}",
    49  			expected:   "foo/1",
    50  			expectedOK: true,
    51  		},
    52  
    53  		{
    54  			name:       "ok full",
    55  			input:      "//foo.example.com/foo/1/bar/2",
    56  			pattern:    "foo/{foo}",
    57  			expected:   "//foo.example.com/foo/1",
    58  			expectedOK: true,
    59  		},
    60  	} {
    61  		tt := tt
    62  		t.Run(tt.name, func(t *testing.T) {
    63  			t.Parallel()
    64  			actual, ok := Ancestor(tt.input, tt.pattern)
    65  			assert.Equal(t, tt.expectedOK, ok)
    66  			assert.Equal(t, tt.expected, actual)
    67  		})
    68  	}
    69  }
    70  

View as plain text