fix: Parse templates in action (#1035)
This commit is contained in:
parent
1f8f36ace1
commit
03d188337e
|
|
@ -1019,7 +1019,7 @@ func stepRequestActionPopulateLogEntry(req *ExecutionRequest) {
|
||||||
entry.Binding = req.Binding
|
entry.Binding = req.Binding
|
||||||
entry.ActionConfigTitle = req.Binding.Action.Title
|
entry.ActionConfigTitle = req.Binding.Action.Title
|
||||||
entry.ActionTitle = tpl.ParseTemplateOfActionBeforeExec(req.Binding.Action.Title, req.Binding.Entity)
|
entry.ActionTitle = tpl.ParseTemplateOfActionBeforeExec(req.Binding.Action.Title, req.Binding.Entity)
|
||||||
entry.ActionIcon = req.Binding.Action.Icon
|
entry.ActionIcon = tpl.ParseTemplateOfActionBeforeExec(req.Binding.Action.Icon, req.Binding.Entity)
|
||||||
entry.Tags = req.Tags
|
entry.Tags = req.Tags
|
||||||
entry.Justification = ResolveJustification(req)
|
entry.Justification = ResolveJustification(req)
|
||||||
if req.Binding.Entity != nil {
|
if req.Binding.Entity != nil {
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import (
|
||||||
"github.com/OliveTin/OliveTin/internal/auth"
|
"github.com/OliveTin/OliveTin/internal/auth"
|
||||||
authpublic "github.com/OliveTin/OliveTin/internal/auth/authpublic"
|
authpublic "github.com/OliveTin/OliveTin/internal/auth/authpublic"
|
||||||
config "github.com/OliveTin/OliveTin/internal/config"
|
config "github.com/OliveTin/OliveTin/internal/config"
|
||||||
|
"github.com/OliveTin/OliveTin/internal/entities"
|
||||||
)
|
)
|
||||||
|
|
||||||
func testingExecutor() (*Executor, *config.Config) {
|
func testingExecutor() (*Executor, *config.Config) {
|
||||||
|
|
@ -59,6 +60,32 @@ func TestCreateExecutorAndExec(t *testing.T) {
|
||||||
assert.Equal(t, int32(0), req.logEntry.ExitCode, "Exit code is zero")
|
assert.Equal(t, int32(0), req.logEntry.ExitCode, "Exit code is zero")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestStepRequestActionPopulateLogEntryResolvesEntityTemplates(t *testing.T) {
|
||||||
|
req := &ExecutionRequest{
|
||||||
|
logEntry: &InternalLogEntry{},
|
||||||
|
Binding: &ActionBinding{
|
||||||
|
Action: &config.Action{
|
||||||
|
Title: "Do something with {{ project.name }}",
|
||||||
|
Icon: "{{ project.icon }}",
|
||||||
|
},
|
||||||
|
Entity: &entities.Entity{
|
||||||
|
Data: map[string]any{
|
||||||
|
"name": "foo",
|
||||||
|
"icon": "🐰",
|
||||||
|
},
|
||||||
|
UniqueKey: "foo-key",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
stepRequestActionPopulateLogEntry(req)
|
||||||
|
|
||||||
|
assert.Equal(t, "Do something with foo", req.logEntry.ActionTitle)
|
||||||
|
assert.Equal(t, "🐰", req.logEntry.ActionIcon)
|
||||||
|
assert.Equal(t, "Do something with {{ project.name }}", req.logEntry.ActionConfigTitle)
|
||||||
|
assert.Equal(t, "foo-key", req.logEntry.EntityPrefix)
|
||||||
|
}
|
||||||
|
|
||||||
func TestExecNonExistant(t *testing.T) {
|
func TestExecNonExistant(t *testing.T) {
|
||||||
e, cfg := testingExecutor()
|
e, cfg := testingExecutor()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue