From 354706c76e0531a282d1ee904ec5a0640ab34627 Mon Sep 17 00:00:00 2001 From: jwijenbergh Date: Thu, 16 Feb 2023 17:42:49 +0100 Subject: Server: Add test for profiles --- internal/server/profile_test.go | 100 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 internal/server/profile_test.go (limited to 'internal') diff --git a/internal/server/profile_test.go b/internal/server/profile_test.go new file mode 100644 index 0000000..777d51c --- /dev/null +++ b/internal/server/profile_test.go @@ -0,0 +1,100 @@ +package server + +import "testing" + +func Test_CurrentProfileIndex(t *testing.T) { + testCases := []struct { + profiles []Profile + current string + index int + }{ + { + profiles: []Profile{ + { + ID: "a", + DisplayName: "b", + VPNProtoList: []string{"openvpn", "wireguard"}, + }, + }, + current: "a", + index: 0, + }, + { + profiles: []Profile{ + { + ID: "a", + DisplayName: "a", + VPNProtoList: []string{"openvpn", "wireguard"}, + }, + { + ID: "b", + DisplayName: "b", + VPNProtoList: []string{"openvpn", "wireguard"}, + }, + }, + current: "b", + index: 1, + }, + { + profiles: []Profile{ + { + ID: "a", + DisplayName: "a", + VPNProtoList: []string{"openvpn", "wireguard"}, + }, + { + ID: "b", + DisplayName: "b", + VPNProtoList: []string{"openvpn", "wireguard"}, + }, + }, + current: "", + index: 0, + }, + { + profiles: []Profile{ + { + ID: "a", + DisplayName: "a", + VPNProtoList: []string{"openvpn", "wireguard"}, + }, + { + ID: "b", + DisplayName: "b", + VPNProtoList: []string{"openvpn", "wireguard"}, + }, + }, + current: "", + index: 0, + }, + { + profiles: []Profile{ + { + ID: "a", + DisplayName: "a", + VPNProtoList: []string{"openvpn", "wireguard"}, + }, + { + ID: "b", + DisplayName: "b", + VPNProtoList: []string{"openvpn", "wireguard"}, + }, + }, + current: "idonotexist", + index: 0, + }, + } + + for _, tc := range testCases { + pri := &ProfileInfo{ + Current: tc.current, + Info: ProfileListInfo{ + ProfileList: tc.profiles, + }, + } + got := pri.CurrentProfileIndex() + if got != tc.index { + t.Fatalf("failed getting profile index, got: '%v', want: '%v'", got, tc.index) + } + } +} -- cgit v1.2.3