* feat(gateway): support hot reload and empty startup - extract gateway runtime into pkg/gateway - add gateway.hot_reload config with default and example values - allow starting the gateway without a default model via --allow-empty - stop treating missing enabled channels as a startup error - update related tests * feat: replace gateway SSE updates with polling-based state sync - remove gateway SSE broadcasting and event endpoint - add polling-based gateway status refresh with stopping state handling - detect when gateway restart is required after default model changes - resolve gateway health and websocket proxy targets from configured host - update gateway UI labels and add backend/frontend test coverage
32 lines
677 B
Go
32 lines
677 B
Go
package gateway
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestNewGatewayCommand(t *testing.T) {
|
|
cmd := NewGatewayCommand()
|
|
|
|
require.NotNil(t, cmd)
|
|
|
|
assert.Equal(t, "gateway", cmd.Use)
|
|
assert.Equal(t, "Start picoclaw gateway", cmd.Short)
|
|
|
|
assert.Len(t, cmd.Aliases, 1)
|
|
assert.True(t, cmd.HasAlias("g"))
|
|
|
|
assert.Nil(t, cmd.Run)
|
|
assert.NotNil(t, cmd.RunE)
|
|
|
|
assert.Nil(t, cmd.PersistentPreRun)
|
|
assert.Nil(t, cmd.PersistentPostRun)
|
|
|
|
assert.False(t, cmd.HasSubCommands())
|
|
|
|
assert.True(t, cmd.HasFlags())
|
|
assert.NotNil(t, cmd.Flags().Lookup("debug"))
|
|
assert.NotNil(t, cmd.Flags().Lookup("allow-empty"))
|
|
}
|