mukan-ignite/ignite/services/plugin/cache_test.go
Mukan Erkin Törük 26b204bd04
Some checks are pending
Docs Deploy / build_and_deploy (push) Waiting to run
Generate Docs / cli (push) Waiting to run
Generate Config Doc / cli (push) Waiting to run
Go formatting / go-formatting (push) Waiting to run
Check links / markdown-link-check (push) Waiting to run
Integration / pre-test (push) Waiting to run
Integration / test on (push) Blocked by required conditions
Integration / status (push) Blocked by required conditions
Lint / Lint Go code (push) Waiting to run
Test / test (ubuntu-latest) (push) Waiting to run
feat: fork Ignite CLI v29 as Mukan Ignite — remove cosmos-sdk restrictions
2026-05-11 03:31:37 +03:00

109 lines
2.9 KiB
Go

package plugin
import (
"net"
"testing"
hplugin "github.com/hashicorp/go-plugin"
"github.com/stretchr/testify/require"
)
func TestReadWriteConfigCache(t *testing.T) {
t.Run("Should cache plugin config and read from cache", func(t *testing.T) {
const path = "/path/to/awesome/plugin"
unixFD, _ := net.ResolveUnixAddr("unix", "/var/folders/5k/sv4bxrs102n_6rr7430jc7j80000gn/T/plugin193424090")
rc := hplugin.ReattachConfig{
Protocol: hplugin.ProtocolGRPC,
ProtocolVersion: hplugin.CoreProtocolVersion,
Addr: unixFD,
Pid: 24464,
}
err := writeConfigCache(path, rc)
require.NoError(t, err)
c, err := readConfigCache(path)
require.NoError(t, err)
require.Equal(t, rc, c)
})
t.Run("Should error writing bad plugin config to cache", func(t *testing.T) {
const path = "/path/to/awesome/plugin"
rc := hplugin.ReattachConfig{
Protocol: hplugin.ProtocolGRPC,
ProtocolVersion: hplugin.CoreProtocolVersion,
Addr: nil,
Pid: 24464,
}
err := writeConfigCache(path, rc)
require.Error(t, err)
})
t.Run("Should error with invalid plugin path", func(t *testing.T) {
const path = ""
rc := hplugin.ReattachConfig{
Protocol: hplugin.ProtocolGRPC,
ProtocolVersion: hplugin.CoreProtocolVersion,
Addr: nil,
Pid: 24464,
}
err := writeConfigCache(path, rc)
require.Error(t, err)
})
}
func TestDeleteConfCache(t *testing.T) {
t.Run("Delete plugin config after write to cache should remove from cache", func(t *testing.T) {
const path = "/path/to/awesome/plugin"
unixFD, _ := net.ResolveUnixAddr("unix", "/var/folders/5k/sv4bxrs102n_6rr7430jc7j80000gn/T/plugin193424090")
rc := hplugin.ReattachConfig{
Protocol: hplugin.ProtocolGRPC,
ProtocolVersion: hplugin.CoreProtocolVersion,
Addr: unixFD,
Pid: 24464,
}
err := writeConfigCache(path, rc)
require.NoError(t, err)
err = deleteConfCache(path)
require.NoError(t, err)
// there should be an error after deleting the config from the cache
_, err = readConfigCache(path)
require.Error(t, err)
})
t.Run("Delete plugin config should return error given empty path", func(t *testing.T) {
const path = ""
err := deleteConfCache(path)
require.Error(t, err)
})
}
func TestCheckConfCache(t *testing.T) {
const path = "/path/to/awesome/plugin"
unixFD, _ := net.ResolveUnixAddr("unix", "/var/folders/5k/sv4bxrs102n_6rr7430jc7j80000gn/T/plugin193424090")
rc := hplugin.ReattachConfig{
Protocol: hplugin.ProtocolGRPC,
ProtocolVersion: hplugin.CoreProtocolVersion,
Addr: unixFD,
Pid: 24464,
}
t.Run("Cache should be hydrated", func(t *testing.T) {
err := writeConfigCache(path, rc)
require.NoError(t, err)
require.Equal(t, true, checkConfCache(path))
})
t.Run("Cache should be empty", func(t *testing.T) {
_ = deleteConfCache(path)
require.Equal(t, false, checkConfCache(path))
})
}