github.com/grafana/synthetic-monitoring-agent@v0.64.2/internal/k6version/k6version_unexported_test.go (about)

     1  package k6version
     2  
     3  import (
     4  	"testing"
     5  
     6  	sm "github.com/grafana/synthetic-monitoring-agent/pkg/pb/synthetic_monitoring"
     7  )
     8  
     9  func TestToK6Versions(t *testing.T) {
    10  	t.Parallel()
    11  
    12  	for _, tc := range []struct {
    13  		name     string
    14  		input    []string
    15  		expected []sm.K6Version
    16  	}{
    17  		{
    18  			name:     "nil input",
    19  			input:    nil,
    20  			expected: []sm.K6Version{},
    21  		},
    22  		{
    23  			name:     "empty input",
    24  			input:    []string{},
    25  			expected: []sm.K6Version{},
    26  		},
    27  		{
    28  			name:  "single version",
    29  			input: []string{"v1.2.3"},
    30  			expected: []sm.K6Version{
    31  				{Version: "v1.2.3"},
    32  			},
    33  		},
    34  		{
    35  			name:  "multiple versions",
    36  			input: []string{"v1.2.3", "v2.0.0", "v0.5.0"},
    37  			expected: []sm.K6Version{
    38  				{Version: "v1.2.3"},
    39  				{Version: "v2.0.0"},
    40  				{Version: "v0.5.0"},
    41  			},
    42  		},
    43  	} {
    44  		t.Run(tc.name, func(t *testing.T) {
    45  			t.Parallel()
    46  
    47  			got := toK6Versions(tc.input)
    48  
    49  			if len(got) != len(tc.expected) {
    50  				t.Fatalf("expected %d versions, got %d: %v", len(tc.expected), len(got), got)
    51  			}
    52  
    53  			for i, v := range got {
    54  				if v.Version != tc.expected[i].Version {
    55  					t.Fatalf("versions[%d]: expected %q, got %q", i, tc.expected[i].Version, v.Version)
    56  				}
    57  			}
    58  		})
    59  	}
    60  }