Files
LocalAGI/services/actions/genimage_test.go
Ettore Di Giacinto b884d9433a make sure /tmp exists
2025-03-07 22:51:34 +01:00

71 lines
1.6 KiB
Go

package actions_test
import (
"context"
"os"
. "github.com/mudler/LocalAgent/core/action"
. "github.com/mudler/LocalAgent/services/actions"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
)
var _ = Describe("GenImageAction", func() {
var (
ctx context.Context
action *GenImageAction
params ActionParams
config map[string]string
)
BeforeEach(func() {
ctx = context.Background()
apiKey := os.Getenv("OPENAI_API_KEY")
apiURL := os.Getenv("OPENAI_API_URL")
testModel := os.Getenv("OPENAI_MODEL")
if apiURL == "" {
Skip("OPENAI_API_URL must be set")
}
config = map[string]string{
"apiKey": apiKey,
"apiURL": apiURL,
"model": testModel,
}
action = NewGenImage(config)
})
Describe("Run", func() {
It("should generate an image with valid prompt and size", func() {
params = ActionParams{
"prompt": "test prompt",
"size": "256x256",
}
url, err := action.Run(ctx, params)
Expect(err).ToNot(HaveOccurred())
Expect(url).ToNot(BeEmpty())
})
It("should return an error if the prompt is not provided", func() {
params = ActionParams{
"size": "256x256",
}
_, err := action.Run(ctx, params)
Expect(err).To(HaveOccurred())
})
})
Describe("Definition", func() {
It("should return the correct action definition", func() {
definition := action.Definition()
Expect(definition.Name.String()).To(Equal("generate_image"))
Expect(definition.Description).To(Equal("Generate image with."))
Expect(definition.Properties).To(HaveKey("prompt"))
Expect(definition.Properties).To(HaveKey("size"))
Expect(definition.Required).To(ContainElement("prompt"))
})
})
})