package cliplugins

import (
	"path/filepath"
	"testing"

	"github.com/docker/cli/cli/config"
	"gotest.tools/v3/assert"
	"gotest.tools/v3/icmd"
)

func TestConfig(t *testing.T) {
	run, cfg, cleanup := prepare(t)
	defer cleanup()

	cfg.SetPluginConfig("helloworld", "who", "Cambridge")
	err := cfg.Save()
	assert.NilError(t, err)

	res := icmd.RunCmd(run("helloworld"))
	res.Assert(t, icmd.Expected{
		ExitCode: 0,
		Out:      "Hello Cambridge",
	})

	cfg2, err := config.Load(filepath.Dir(cfg.GetFilename()))
	assert.NilError(t, err)
	assert.DeepEqual(t, cfg2.Plugins, map[string]map[string]string{
		"helloworld": {
			"who":     "Cambridge",
			"lastwho": "Cambridge",
		},
	})
}
