mirror of https://github.com/k3s-io/k3s
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.2 KiB
74 lines
2.2 KiB
package configfilearg |
|
|
|
import ( |
|
"reflect" |
|
"testing" |
|
) |
|
|
|
func Test_UnitMustParse(t *testing.T) { |
|
tests := []struct { |
|
name string |
|
args []string |
|
config string |
|
want []string |
|
}{ |
|
{ |
|
name: "Basic server", |
|
args: []string{"k3s", "server"}, |
|
|
|
want: []string{"k3s", "server"}, |
|
}, |
|
{ |
|
name: "Server with known flags", |
|
args: []string{"k3s", "server", "-t 12345", "--write-kubeconfig-mode 644"}, |
|
|
|
want: []string{"k3s", "server", "-t 12345", "--write-kubeconfig-mode 644"}, |
|
}, |
|
{ |
|
name: "Server with known flags and config with known and unknown flags", |
|
args: []string{"k3s", "server", "--write-kubeconfig-mode 644"}, |
|
config: "./testdata/defaultdata.yaml", |
|
want: []string{"k3s", "server", "--token=12345", "--node-label=DEAFBEEF", |
|
"--etcd-s3=true", "--etcd-s3-bucket=my-backup", "--kubelet-arg=max-pods=999", "--write-kubeconfig-mode 644"}, |
|
}, |
|
{ |
|
name: "Basic etcd-snapshot", |
|
args: []string{"k3s", "etcd-snapshot", "save"}, |
|
|
|
want: []string{"k3s", "etcd-snapshot", "save"}, |
|
}, |
|
{ |
|
name: "Etcd-snapshot with known flags", |
|
args: []string{"k3s", "etcd-snapshot", "save", "--s3=true"}, |
|
|
|
want: []string{"k3s", "etcd-snapshot", "save", "--s3=true"}, |
|
}, |
|
{ |
|
name: "Etcd-snapshot with config with known and unknown flags", |
|
args: []string{"k3s", "etcd-snapshot", "save"}, |
|
config: "./testdata/defaultdata.yaml", |
|
want: []string{"k3s", "etcd-snapshot", "save", "--etcd-s3=true", "--etcd-s3-bucket=my-backup"}, |
|
}, |
|
{ |
|
name: "Agent with known flags", |
|
args: []string{"k3s", "agent", "--token=12345"}, |
|
|
|
want: []string{"k3s", "agent", "--token=12345"}, |
|
}, |
|
{ |
|
name: "Agent with config with known and unknown flags, flags are not skipped", |
|
args: []string{"k3s", "agent"}, |
|
config: "./testdata/defaultdata.yaml", |
|
want: []string{"k3s", "agent", "--token=12345", "--node-label=DEAFBEEF", |
|
"--etcd-s3=true", "--etcd-s3-bucket=my-backup", "--notaflag=true", "--kubelet-arg=max-pods=999"}, |
|
}, |
|
} |
|
for _, tt := range tests { |
|
t.Run(tt.name, func(t *testing.T) { |
|
DefaultParser.DefaultConfig = tt.config |
|
if got := MustParse(tt.args); !reflect.DeepEqual(got, tt.want) { |
|
t.Errorf("MustParse() = %+v\nWant = %+v", got, tt.want) |
|
} |
|
}) |
|
} |
|
}
|
|
|