8
func TestParseModeline(t *testing.T) {
9
testCases := []struct {
16
name: "valid modeline with all known keys",
17
line: `# talm: nodes=["192.168.100.2"], endpoints=["1.2.3.4","127.0.0.1","192.168.100.2"], templates=["templates/controlplane.yaml","templates/worker.yaml"]`,
19
Nodes: []string{"192.168.100.2"},
20
Endpoints: []string{"1.2.3.4", "127.0.0.1", "192.168.100.2"},
21
Templates: []string{"templates/controlplane.yaml", "templates/worker.yaml"},
26
name: "modeline with unknown key",
27
line: `# talm: nodes=["192.168.100.2"], endpoints=["1.2.3.4","127.0.0.1","192.168.100.2"], unknown=["value"]`,
29
Nodes: []string{"192.168.100.2"},
30
Endpoints: []string{"1.2.3.4", "127.0.0.1", "192.168.100.2"},
36
for _, tc := range testCases {
37
t.Run(tc.name, func(t *testing.T) {
38
got, err := ParseModeline(tc.line)
39
if (err != nil) != tc.wantErr {
40
t.Errorf("parseModeline() error = %v, wantErr %v", err, tc.wantErr)
43
if !tc.wantErr && !reflect.DeepEqual(got, tc.want) {
44
t.Errorf("parseModeline() got = %v, want %v", got, tc.want)