Refactor status functions and add first tests

This commit is contained in:
Pascal Fischer
2023-02-23 20:13:19 +01:00
parent c3ed08c249
commit e75535d30b
2 changed files with 295 additions and 130 deletions

134
client/cmd/status_test.go Normal file
View File

@ -0,0 +1,134 @@
package cmd
import (
nbStatus "github.com/netbirdio/netbird/client/status"
"github.com/stretchr/testify/assert"
"testing"
"time"
)
var fullStatus = nbStatus.FullStatus{
Peers: []nbStatus.PeerState{
{
IP: "192.168.178.101",
PubKey: "Pubkey1",
FQDN: "peer-1.awesome-domain.com",
ConnStatus: "Connected",
ConnStatusUpdate: time.Date(2001, time.Month(1), 1, 1, 1, 1, 0, time.UTC),
Relayed: false,
LocalIceCandidateType: "-",
RemoteIceCandidateType: "-",
},
{
IP: "192.168.178.102",
PubKey: "Pubkey2",
FQDN: "peer-2.awesome-domain.com",
ConnStatus: "Connected",
ConnStatusUpdate: time.Date(2002, time.Month(2), 2, 2, 2, 2, 0, time.UTC),
Relayed: false,
LocalIceCandidateType: "-",
RemoteIceCandidateType: "-",
},
},
ManagementState: nbStatus.ManagementState{
URL: "my-awesome-management.com:443",
Connected: true,
},
SignalState: nbStatus.SignalState{
URL: "my-awesome-signal.com:443",
Connected: true,
},
LocalPeerState: nbStatus.LocalPeerState{
IP: "192.168.178.2",
PubKey: "Some-Pub-Key",
KernelInterface: false,
FQDN: "some-localhost.awesome-domain.com",
},
}
// @formatter:off
func TestParsingToJson(t *testing.T) {
json, _ := parseToJson(fullStatus)
expectedJson := "{" +
"\"Peers\":" +
"[" +
"{" +
"\"IP\":\"192.168.178.101\"," +
"\"PubKey\":\"Pubkey1\"," +
"\"FQDN\":\"peer-1.awesome-domain.com\"," +
"\"ConnStatus\":\"Connected\"," +
"\"ConnStatusUpdate\":\"2001-01-01T01:01:01Z\"," +
"\"Relayed\":false," +
"\"Direct\":false," +
"\"LocalIceCandidateType\":\"-\"," +
"\"RemoteIceCandidateType\":\"-\"" +
"}," +
"{" +
"\"IP\":\"192.168.178.102\"," +
"\"PubKey\":\"Pubkey2\"," +
"\"FQDN\":\"peer-2.awesome-domain.com\"," +
"\"ConnStatus\":\"Connected\"," +
"\"ConnStatusUpdate\":\"2002-02-02T02:02:02Z\"," +
"\"Relayed\":false," +
"\"Direct\":false," +
"\"LocalIceCandidateType\":\"-\"," +
"\"RemoteIceCandidateType\":\"-\"" +
"}" +
"]," +
"\"ManagementState\":" +
"{" +
"\"URL\":\"my-awesome-management.com:443\"," +
"\"Connected\":true" +
"}," +
"\"SignalState\":" +
"{" +
"\"URL\":\"my-awesome-signal.com:443\"," +
"\"Connected\":true" +
"}," +
"\"LocalPeerState\":" +
"{" +
"\"IP\":\"192.168.178.2\"," +
"\"PubKey\":\"Some-Pub-Key\"," +
"\"KernelInterface\":false," +
"\"FQDN\":\"some-localhost.awesome-domain.com\"" +
"}" +
"}"
assert.Equal(t, expectedJson, json)
}
func TestParsingToYaml(t *testing.T) {
yaml, _ := parseToYaml(fullStatus)
expectedYaml := "peers:\n" +
"- ip: 192.168.178.101\n" +
" pubkey: Pubkey1\n" +
" fqdn: peer-1.awesome-domain.com\n" +
" connstatus: Connected\n" +
" connstatusupdate: 2001-01-01T01:01:01Z\n" +
" relayed: false\n" +
" direct: false\n" +
" localicecandidatetype: '-'\n" +
" remoteicecandidatetype: '-'\n" +
"- ip: 192.168.178.102\n" +
" pubkey: Pubkey2\n" +
" fqdn: peer-2.awesome-domain.com\n" +
" connstatus: Connected\n" +
" connstatusupdate: 2002-02-02T02:02:02Z\n" +
" relayed: false\n" +
" direct: false\n" +
" localicecandidatetype: '-'\n" +
" remoteicecandidatetype: '-'\n" +
"managementstate:\n" +
" url: my-awesome-management.com:443\n" +
" connected: true\n" +
"signalstate:\n" +
" url: my-awesome-signal.com:443\n" +
" connected: true\n" +
"localpeerstate:\n" +
" ip: 192.168.178.2\n" +
" pubkey: Some-Pub-Key\n" +
" kernelinterface: false\n" +
" fqdn: some-localhost.awesome-domain.com\n"
assert.Equal(t, expectedYaml, yaml)
}