forgejo/models/forgefed/federationhost_test.go

56 lines
1.1 KiB
Go
Raw Normal View History

2024-04-12 11:52:26 +00:00
// Copyright 2024 The Forgejo Authors. All rights reserved.
2024-01-12 14:34:34 +00:00
// SPDX-License-Identifier: MIT
package forgefed
import (
"testing"
"time"
2024-01-12 14:34:34 +00:00
"code.gitea.io/gitea/modules/validation"
)
func Test_FederationHostValidation(t *testing.T) {
sut := FederationHost{
2024-01-12 14:34:34 +00:00
HostFqdn: "host.do.main",
NodeInfo: NodeInfo{
Source: "forgejo",
},
LatestActivity: time.Now(),
2024-01-12 14:34:34 +00:00
}
if res, err := validation.IsValid(sut); !res {
t.Errorf("sut should be valid but was %q", err)
}
sut = FederationHost{
HostFqdn: "host.do.main",
NodeInfo: NodeInfo{},
LatestActivity: time.Now(),
}
if res, _ := validation.IsValid(sut); res {
t.Errorf("sut should be invalid")
}
2024-01-14 13:53:00 +00:00
sut = FederationHost{
2024-01-14 13:53:00 +00:00
HostFqdn: "host.do.main",
NodeInfo: NodeInfo{
Source: "forgejo",
},
LatestActivity: time.Now().Add(1 * time.Hour),
}
if res, _ := validation.IsValid(sut); res {
t.Errorf("sut should be invalid: Future timestamp")
}
sut = FederationHost{
HostFqdn: "hOst.do.main",
NodeInfo: NodeInfo{
Source: "forgejo",
},
LatestActivity: time.Now(),
}
if res, _ := validation.IsValid(sut); res {
t.Errorf("sut should be invalid: HostFqdn lower case")
2024-01-14 13:53:00 +00:00
}
2024-01-12 14:34:34 +00:00
}