The agent path now publishes to outbound bus directly (since #2100), making the deliver=true direct-to-bus shortcut and the directive type prompt wrapping redundant. All cron jobs now uniformly route through the agent. This is an intentional behavior change: old jobs with deliver=true will execute through the agent instead of bypassing it. Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
56 lines
1.3 KiB
Go
56 lines
1.3 KiB
Go
package cron
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/spf13/cobra"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestNewAddSubcommand(t *testing.T) {
|
|
fn := func() string { return "" }
|
|
cmd := newAddCommand(fn)
|
|
|
|
require.NotNil(t, cmd)
|
|
|
|
assert.Equal(t, "add", cmd.Use)
|
|
assert.Equal(t, "Add a new scheduled job", cmd.Short)
|
|
|
|
assert.True(t, cmd.HasFlags())
|
|
|
|
assert.NotNil(t, cmd.Flags().Lookup("every"))
|
|
assert.NotNil(t, cmd.Flags().Lookup("cron"))
|
|
assert.NotNil(t, cmd.Flags().Lookup("to"))
|
|
assert.NotNil(t, cmd.Flags().Lookup("channel"))
|
|
|
|
nameFlag := cmd.Flags().Lookup("name")
|
|
require.NotNil(t, nameFlag)
|
|
|
|
messageFlag := cmd.Flags().Lookup("message")
|
|
require.NotNil(t, messageFlag)
|
|
|
|
val, found := nameFlag.Annotations[cobra.BashCompOneRequiredFlag]
|
|
require.True(t, found)
|
|
require.NotEmpty(t, val)
|
|
assert.Equal(t, "true", val[0])
|
|
|
|
val, found = messageFlag.Annotations[cobra.BashCompOneRequiredFlag]
|
|
require.True(t, found)
|
|
require.NotEmpty(t, val)
|
|
assert.Equal(t, "true", val[0])
|
|
}
|
|
|
|
func TestNewAddCommandEveryAndCronMutuallyExclusive(t *testing.T) {
|
|
cmd := newAddCommand(func() string { return "testing" })
|
|
|
|
cmd.SetArgs([]string{
|
|
"--name", "job",
|
|
"--message", "hello",
|
|
"--every", "10",
|
|
"--cron", "0 9 * * *",
|
|
})
|
|
|
|
err := cmd.Execute()
|
|
require.Error(t, err)
|
|
}
|