90 lines
2.6 KiB
Go
90 lines
2.6 KiB
Go
package policies
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"fiatjaf.com/nostr"
|
|
)
|
|
|
|
func TestRejectUnprefixedNostrReferences(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
content string
|
|
shouldReject bool
|
|
}{
|
|
{
|
|
name: "unprefixed nevent1 valid",
|
|
content: "nevent1qqsz3q79apv874xv8ta5za03nkmugnwc3nq046dd2wy30fh8hurn67qpp4mhxue69uhkummn9ekx7mqdzh53y",
|
|
shouldReject: true,
|
|
},
|
|
{
|
|
name: "unprefixed npub1 valid",
|
|
content: "npub1eer3xzy76k8tqr2w40804d07qxyzq4ypfv0vv70kj3xnuukcdhts35cfkg",
|
|
shouldReject: true,
|
|
},
|
|
{
|
|
name: "unprefixed nprofile1 valid",
|
|
content: "nprofile1qqsxu3ytjdwz9xwtlzuhrgf7yx3e0pcw8hvgtqnramc4t5gdh5vm6mgud3p0w",
|
|
shouldReject: true,
|
|
},
|
|
{
|
|
name: "unprefixed note1 valid",
|
|
content: "note1sugf04s8yvveh7a4nhguhu2h3yumqd3kcr3yu6f4phk5u3m635wqz3tngh",
|
|
shouldReject: true,
|
|
},
|
|
{
|
|
name: "prefixed nostr:nevent1",
|
|
content: "Check this event: nostr:nevent1qqsz3q79apv874xv8ta5za03nkmugnwc3nq046dd2wy30fh8hurn67qpp4mhxue69uhkummn9ekx7mqdzh53y",
|
|
shouldReject: false,
|
|
},
|
|
{
|
|
name: "prefixed nostr:npub1",
|
|
content: "User: nostr:npub1eer3xzy76k8tqr2w40804d07qxyzq4ypfv0vv70kj3xnuukcdhts35cfkg",
|
|
shouldReject: false,
|
|
},
|
|
{
|
|
name: "no references",
|
|
content: "This is just regular text",
|
|
shouldReject: false,
|
|
},
|
|
{
|
|
name: "multiple unprefixed valid",
|
|
content: "See nevent1qqsz3q79apv874xv8ta5za03nkmugnwc3nq046dd2wy30fh8hurn67qpp4mhxue69uhkummn9ekx7mqdzh53y and npub1eer3xzy76k8tqr2w40804d07qxyzq4ypfv0vv70kj3xnuukcdhts35cfkg",
|
|
shouldReject: true,
|
|
},
|
|
{
|
|
name: "mixed prefixed and unprefixed valid",
|
|
content: "Good: nostr:nevent1qqsz3q79apv874xv8ta5za03nkmugnwc3nq046dd2wy30fh8hurn67qpp4mhxue69uhkummn9ekx7mqdzh53y Bad: npub1eer3xzy76k8tqr2w40804d07qxyzq4ypfv0vv70kj3xnuukcdhts35cfkg",
|
|
shouldReject: true,
|
|
},
|
|
{
|
|
name: "invalid unprefixed nevent1",
|
|
content: "nevent1abc123",
|
|
shouldReject: false, // invalid, so allowed
|
|
},
|
|
{
|
|
name: "invalid unprefixed npub1",
|
|
content: "npub1def456",
|
|
shouldReject: false, // invalid, so allowed
|
|
},
|
|
{
|
|
name: "invalid unprefixed note1",
|
|
content: "note1jkl012",
|
|
shouldReject: false, // invalid, so allowed
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
event := nostr.Event{
|
|
Content: tt.content,
|
|
}
|
|
reject, _ := RejectUnprefixedNostrReferences(context.Background(), event)
|
|
if reject != tt.shouldReject {
|
|
t.Errorf("RejectUnprefixedNostrReferences() = %v, shouldReject %v", reject, tt.shouldReject)
|
|
}
|
|
})
|
|
}
|
|
}
|