mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-21 08:31:27 -05:00
revise NewForgeLike
Also added new test, which still fails since time.Now() does not match
This commit is contained in:
parent
911e916a4f
commit
97b5e0da91
2 changed files with 26 additions and 8 deletions
|
@ -6,7 +6,6 @@ package forgefed
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"code.gitea.io/gitea/modules/log"
|
|
||||||
"code.gitea.io/gitea/modules/validation"
|
"code.gitea.io/gitea/modules/validation"
|
||||||
|
|
||||||
ap "github.com/go-ap/activitypub"
|
ap "github.com/go-ap/activitypub"
|
||||||
|
@ -19,17 +18,12 @@ type ForgeLike struct {
|
||||||
ap.Activity
|
ap.Activity
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Use explicit values instead of ctx !!
|
|
||||||
func NewForgeLike(actorIRI string, objectIRI string) (ForgeLike, error) {
|
func NewForgeLike(actorIRI string, objectIRI string) (ForgeLike, error) {
|
||||||
result := ForgeLike{}
|
result := ForgeLike{}
|
||||||
result.Type = ap.LikeType
|
result.Type = ap.LikeType
|
||||||
// ToDo: Would validating the source by Actor.Type field make sense?
|
// ToDo: Would validating the source by Actor.Type field make sense?
|
||||||
object := new(ap.Object)
|
result.Actor = ap.IRI(actorIRI) // Thats us, a User
|
||||||
object.ID = ap.IRI(objectIRI)
|
result.Object = ap.IRI(objectIRI) // Thats them, a Repository
|
||||||
|
|
||||||
result.Actor = ap.ActorNew(ap.IRI(actorIRI), "ForgejoUser") // Thats us, a User
|
|
||||||
result.Object = object // Thats them, a Repository
|
|
||||||
log.Info("Object is: %v", object)
|
|
||||||
result.StartTime = time.Now()
|
result.StartTime = time.Now()
|
||||||
if valid, err := validation.IsValid(result); !valid {
|
if valid, err := validation.IsValid(result); !valid {
|
||||||
return ForgeLike{}, err
|
return ForgeLike{}, err
|
||||||
|
|
|
@ -12,6 +12,30 @@ import (
|
||||||
ap "github.com/go-ap/activitypub"
|
ap "github.com/go-ap/activitypub"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// TODO: fix this test. mock time.Now?
|
||||||
|
func Test_NewForgeLike(t *testing.T) {
|
||||||
|
actorIRI := "https://repo.prod.meissa.de/api/v1/activitypub/user-id/1"
|
||||||
|
objectIRI := "https://codeberg.org/api/v1/activitypub/repository-id/1"
|
||||||
|
want := []byte(`{"type":"Like","actor":"https://repo.prod.meissa.de/api/v1/activitypub/user-id/1","object":"https://codeberg.org/api/v1/activitypub/repository-id/1"}`)
|
||||||
|
|
||||||
|
sut, err := NewForgeLike(actorIRI, objectIRI)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("unexpected error: %v\n", err)
|
||||||
|
}
|
||||||
|
if valid, _ := validation.IsValid(sut); !valid {
|
||||||
|
t.Errorf("sut expected to be valid: %v\n", sut.Validate())
|
||||||
|
}
|
||||||
|
|
||||||
|
got, err := sut.MarshalJSON()
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("MarshalJSON() error = \"%v\"", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if !reflect.DeepEqual(got, want) {
|
||||||
|
t.Errorf("MarshalJSON() got = %q, want %q", got, want)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func Test_StarMarshalJSON(t *testing.T) {
|
func Test_StarMarshalJSON(t *testing.T) {
|
||||||
type testPair struct {
|
type testPair struct {
|
||||||
item ForgeLike
|
item ForgeLike
|
||||||
|
|
Loading…
Reference in a new issue