package coredeno import ( "os" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestNewSidecar_Good(t *testing.T) { opts := Options{ DenoPath: "echo", SocketPath: "/tmp/test-core-deno.sock", } sc := NewSidecar(opts) require.NotNil(t, sc) assert.Equal(t, "echo", sc.opts.DenoPath) assert.Equal(t, "/tmp/test-core-deno.sock", sc.opts.SocketPath) } func TestDefaultSocketPath_Good(t *testing.T) { path := DefaultSocketPath() assert.Contains(t, path, "core/deno.sock") } func TestSidecar_PermissionFlags_Good(t *testing.T) { perms := Permissions{ Read: []string{"./data/"}, Write: []string{"./data/config.json"}, Net: []string{"pool.lthn.io:3333"}, Run: []string{"xmrig"}, } flags := perms.Flags() assert.Contains(t, flags, "--allow-read=./data/") assert.Contains(t, flags, "--allow-write=./data/config.json") assert.Contains(t, flags, "--allow-net=pool.lthn.io:3333") assert.Contains(t, flags, "--allow-run=xmrig") } func TestSidecar_PermissionFlags_Empty(t *testing.T) { perms := Permissions{} flags := perms.Flags() assert.Empty(t, flags) } func TestDefaultSocketPath_XDG(t *testing.T) { orig := os.Getenv("XDG_RUNTIME_DIR") defer os.Setenv("XDG_RUNTIME_DIR", orig) os.Setenv("XDG_RUNTIME_DIR", "/run/user/1000") path := DefaultSocketPath() assert.Equal(t, "/run/user/1000/core/deno.sock", path) }