yao/neo/command/driver/memory_test.go
2023-05-24 13:45:43 +08:00

89 lines
1.9 KiB
Go

package driver
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/yaoapp/yao/config"
"github.com/yaoapp/yao/neo/command/query"
"github.com/yaoapp/yao/test"
)
func TestMemorySetGetDel(t *testing.T) {
test.Prepare(t, config.Conf)
defer test.Clean()
mem := prepare(t)
err := mem.Set("table.delete", Command{
ID: "table.delete",
Name: "Generate test data for the table",
Description: "Generate test data for the table",
Stack: "Table.*",
Path: "*",
Args: []map[string]interface{}{
{
"name": "data",
"type": "Array",
"description": "The data sets to generate",
"required": true,
"default": []interface{}{},
},
},
})
if err != nil {
t.Fatal(err)
}
cmd, has := mem.Get("table.delete")
if !has {
t.Fatal("table.delete not found")
}
assert.Equal(t, "table.delete", cmd.ID)
mem.Del("table.delete")
_, has = mem.Get("table.delete")
assert.False(t, has)
}
func TestMemoryMatch(t *testing.T) {
test.Prepare(t, config.Conf)
defer test.Clean()
mem := prepare(t)
// id, err := mem.Match(query.Param{Stack: "Table.Page.pet"}, "Generate table test data")
// if err != nil {
// t.Fatal(err)
// }
// assert.Equal(t, "table.data", id)
_, err := mem.Match(query.Param{Stack: "Form.Page.pet", Path: "/Form/pet"}, "Generate table test data")
assert.ErrorContains(t, err, "no related command found")
}
func prepare(t *testing.T) *Memory {
mem, err := NewMemory("gpt-3_5-turbo", nil)
if err != nil {
t.Fatal(err)
}
mem.Set("table.data", Command{
ID: "table.data",
Name: "Generate test data for the table",
Description: "Generate test data for the table",
Stack: "Table.*",
Path: "Table.*",
Args: []map[string]interface{}{
{
"name": "data",
"type": "Array",
"description": "The data sets to generate",
"required": true,
"default": []interface{}{},
},
},
})
return mem
}