dendrite.daemon/test/test_integration/create_note_handler_test.go

47 lines
1 KiB
Go

package integration_test
import (
"encoding/json"
"testing"
"github.com/KristianJBorgwarth/dendrite.daemon/core/handlers"
"github.com/KristianJBorgwarth/dendrite.daemon/persistence/repositories"
)
func TestCreateNoteHandlerOnSucess(t *testing.T) {
// Arrange
uow := repositories.NewUnitOfWork(Fixture.Db)
handler := handlers.NewCreateNoteHandler(uow)
requestParams := struct {
Title string `json:"title"`
Content string `json:"content"`
}{
Title: "Test Note",
Content: "This is a test note.",
}
requestParamsBytes, err := json.Marshal(requestParams)
if err != nil {
t.Fatalf("failed to marshal request params: %v", err)
}
request := CreateTestRequest("createNote", 1, requestParamsBytes)
// Act
response := handler.Handle(Fixture.TestContext, request.Params)
// Assert
if response.Error != nil {
t.Fatalf("expected no error, got: %v", response.Error)
}
if response.Result == nil {
t.Fatal("expected result, got nil")
}
if *response.ID != 1 {
t.Fatal("expected non-empty ID in response result")
}
}