Add process validation for peer metadata

This commit is contained in:
bcmmbaga
2024-03-12 19:24:08 +03:00
parent e66e39cc70
commit 41348bb39b
2 changed files with 157 additions and 2 deletions

View File

@@ -16,7 +16,137 @@ func TestProcessCheck_Check(t *testing.T) {
wantErr bool
isValid bool
}{
{},
{
name: "darwin with matching processes",
input: peer.Peer{
Meta: peer.PeerSystemMeta{
GoOS: "darwin",
Processes: []peer.Process{
{Path: "process1"},
{Path: "process2"}},
},
},
check: ProcessCheck{
Processes: []Process{
{Path: "process1"},
{Path: "process2"},
},
},
wantErr: false,
isValid: true,
},
{
name: "linux with matching processes",
input: peer.Peer{
Meta: peer.PeerSystemMeta{
GoOS: "linux",
Processes: []peer.Process{
{Path: "process1"},
{Path: "process2"},
},
},
},
check: ProcessCheck{
Processes: []Process{
{Path: "process1"},
{Path: "process2"},
},
},
wantErr: false,
isValid: true,
},
{
name: "linux with non-matching processes",
input: peer.Peer{
Meta: peer.PeerSystemMeta{
GoOS: "linux",
Processes: []peer.Process{
{Path: "process3"},
{Path: "process4"},
},
},
},
check: ProcessCheck{
Processes: []Process{
{Path: "process1"},
{Path: "process2"},
},
},
wantErr: false,
isValid: false,
},
{
name: "windows with matching processes",
input: peer.Peer{
Meta: peer.PeerSystemMeta{
GoOS: "windows",
Processes: []peer.Process{
{Path: "process1"},
{Path: "process2"},
},
},
},
check: ProcessCheck{
Processes: []Process{
{WindowsPath: "process1"},
{WindowsPath: "process2"},
},
},
wantErr: false,
isValid: true,
},
{
name: "windows with non-matching processes",
input: peer.Peer{
Meta: peer.PeerSystemMeta{
GoOS: "windows",
Processes: []peer.Process{
{Path: "process3"},
{Path: "process4"},
},
},
},
check: ProcessCheck{
Processes: []Process{
{WindowsPath: "process1"},
{WindowsPath: "process2"},
},
},
wantErr: false,
isValid: false,
},
{
name: "unsupported Ios operating system with matching processes",
input: peer.Peer{
Meta: peer.PeerSystemMeta{
GoOS: "ios",
},
},
check: ProcessCheck{
Processes: []Process{
{Path: "process1"},
{Path: "process2"},
},
},
wantErr: true,
isValid: false,
},
{
name: "unsupported android operating system with matching processes",
input: peer.Peer{
Meta: peer.PeerSystemMeta{
GoOS: "android",
},
},
check: ProcessCheck{
Processes: []Process{
{Path: "process1"},
{Path: "process2"},
},
},
wantErr: true,
isValid: false,
},
}
for _, tt := range tests {