Checkpoint audio-only Skald fork work

This commit is contained in:
Storm Dragon
2026-05-18 13:06:57 -04:00
parent a8ada950d5
commit 965347cad4
48 changed files with 1080 additions and 3651 deletions
+51 -51
View File
@@ -25,7 +25,7 @@ func timeEqual(a, b *time.Time) bool {
}
func equal(a, b *Stateful) bool {
if a.Token != b.Token || a.Group != b.Group ||
if a.Token != b.Token || a.Hall != b.Hall ||
!reflect.DeepEqual(a.Username, b.Username) ||
!reflect.DeepEqual(a.Permissions, b.Permissions) ||
!timeEqual(a.Expires, b.Expires) ||
@@ -46,108 +46,108 @@ func TestStatefulCheck(t *testing.T) {
user2 := "user2"
token1 := &Stateful{
Token: "token",
Group: "hall",
Hall: "hall",
Username: &user,
Permissions: []string{"present", "message"},
Expires: &future,
}
token2 := &Stateful{
Token: "token",
Group: "hall",
Hall: "hall",
Permissions: []string{"present", "message"},
Expires: &future,
}
token3 := &Stateful{
Token: "token",
Group: "hall",
Hall: "hall",
Username: &user,
Permissions: []string{"present", "message"},
Expires: &past,
}
token4 := &Stateful{
Token: "token",
Group: "hall",
Hall: "hall",
Username: &user,
Permissions: []string{"present", "message"},
Expires: &future,
NotBefore: &nearFuture,
}
token5 := &Stateful{
Token: "token",
Group: "hall",
IncludeSubgroups: true,
Username: &user,
Permissions: []string{"present", "message"},
Expires: &future,
Token: "token",
Hall: "hall",
IncludeSubhalls: true,
Username: &user,
Permissions: []string{"present", "message"},
Expires: &future,
}
token6 := &Stateful{
Token: "token",
Group: "",
IncludeSubgroups: false,
Username: &user,
Permissions: []string{"present", "message"},
Expires: &future,
Token: "token",
Hall: "",
IncludeSubhalls: false,
Username: &user,
Permissions: []string{"present", "message"},
Expires: &future,
}
token7 := &Stateful{
Token: "token",
Group: "",
IncludeSubgroups: true,
Username: &user,
Permissions: []string{"present", "message"},
Expires: &future,
Token: "token",
Hall: "",
IncludeSubhalls: true,
Username: &user,
Permissions: []string{"present", "message"},
Expires: &future,
}
success := []struct {
token *Stateful
group string
hall string
username *string
expUsername string
expPermissions []string
}{
{
token: token1,
group: "hall",
hall: "hall",
username: &user,
expUsername: user,
expPermissions: []string{"present", "message"},
},
{
token: token1,
group: "hall",
hall: "hall",
username: &user2,
expUsername: user,
expPermissions: []string{"present", "message"},
},
{
token: token1,
group: "hall",
hall: "hall",
expUsername: user,
expPermissions: []string{"present", "message"},
},
{
token: token2,
group: "hall",
hall: "hall",
username: &user,
expUsername: "",
expPermissions: []string{"present", "message"},
},
{
token: token5,
group: "hall",
hall: "hall",
username: &user,
expUsername: "user",
expPermissions: []string{"present", "message"},
},
{
token: token5,
group: "hall/subhall",
hall: "hall/subhall",
username: &user,
expUsername: "user",
expPermissions: []string{"present", "message"},
},
{
token: token7,
group: "hall/subhall",
hall: "hall/subhall",
username: &user,
expUsername: "user",
expPermissions: []string{"present", "message"},
@@ -155,62 +155,62 @@ func TestStatefulCheck(t *testing.T) {
}
for i, s := range success {
u, p, err := s.token.Check("", s.group, s.username)
u, p, err := s.token.Check("", s.hall, s.username)
if err != nil || u != s.expUsername ||
!reflect.DeepEqual(p, s.expPermissions) {
t.Errorf("Check %v failed: %v %v %v -> %v %v %v",
i, s.token, s.group, s.username,
i, s.token, s.hall, s.username,
u, p, err)
}
}
failure := []struct {
token *Stateful
group string
hall string
username *string
}{
{
token: token1,
group: "hall2",
hall: "hall2",
username: &user,
},
{
token: token3,
group: "hall",
hall: "hall",
username: &user,
},
{
token: token4,
group: "hall",
hall: "hall",
username: &user,
},
{
token: token5,
group: "groups",
hall: "other",
username: &user,
},
{
token: token6,
group: "",
hall: "",
username: &user,
},
{
token: token6,
group: "hall",
hall: "hall",
username: &user,
},
{
token: token7,
group: "",
hall: "",
username: &user,
},
}
for i, s := range failure {
u, p, err := s.token.Check("", s.group, s.username)
u, p, err := s.token.Check("", s.hall, s.username)
if err == nil {
t.Errorf("Check %v succeded: %v %v %v -> %v %v %v",
i, s.token, s.group, s.username,
i, s.token, s.hall, s.username,
u, p, err)
}
}
@@ -295,14 +295,14 @@ func TestTokenStorage(t *testing.T) {
tokens := []*Stateful{
{
Token: "tok1",
Group: "test",
Hall: "test",
Username: &user1,
Permissions: []string{"present", "message"},
Expires: &future,
},
{
Token: "tok2",
Group: "test",
Hall: "test",
Username: &user2,
Permissions: []string{"present", "record", "message"},
Expires: &nearFuture,
@@ -310,7 +310,7 @@ func TestTokenStorage(t *testing.T) {
},
{
Token: "tok3",
Group: "test",
Hall: "test",
Username: &user3,
Permissions: []string{"present", "message"},
Expires: &nearFuture,
@@ -390,35 +390,35 @@ func TestExpire(t *testing.T) {
tokens := []*Stateful{
{
Token: "tok1",
Group: "test",
Hall: "test",
Username: &user,
Permissions: []string{"present", "message"},
Expires: &now,
},
{
Token: "tok2",
Group: "test",
Hall: "test",
Username: &user,
Permissions: []string{"present", "message"},
Expires: &future,
},
{
Token: "tok3",
Group: "test",
Hall: "test",
Username: &user,
Permissions: []string{"present", "message"},
Expires: &now,
},
{
Token: "tok4",
Group: "test",
Hall: "test",
Username: &user,
Permissions: []string{"present", "message"},
Expires: &past,
},
{
Token: "tok5",
Group: "test",
Hall: "test",
Username: &user,
Permissions: []string{"present", "message"},
Expires: &longPast,