// Copyright 2025 The Forgejo Authors. All rights reserved.
// SPDX-License-Identifier: MIT

package forgefed_test

import (
	"testing"

	"forgejo.org/modules/forgefed"
	"forgejo.org/modules/validation"

	ap "github.com/go-ap/activitypub"
	"github.com/stretchr/testify/assert"
)

func Test_ForgeUserActivityValidation(t *testing.T) {
	note := forgefed.ForgeUserActivityNote{}
	note.Type = "Note"
	note.Content = ap.NaturalLanguageValues{
		{
			Ref:   ap.NilLangRef,
			Value: ap.Content("Any Content!"),
		},
	}
	note.URL = ap.IRI("example.org/user-id/57")

	sut := forgefed.ForgeUserActivity{}
	sut.Type = "Create"
	sut.Actor = ap.IRI("example.org/user-id/23")
	sut.CC = ap.ItemCollection{
		ap.IRI("example.org/registration/public#2nd"),
	}
	sut.To = ap.ItemCollection{
		ap.IRI("example.org/registration/public"),
	}

	sut.Note = note

	valid, _ := validation.IsValid(sut)
	assert.True(t, valid, "sut expected to be valid: %v\n", sut.Validate())
}
