package infra

import (
	"testing"
)

func TestDockerVolumeList(t *testing.T) {
	t.Run("lista vacia retorna nil sin error", func(t *testing.T) {
		// Verificar que la funcion no falla incluso si no hay volumes
		volumes, err := DockerVolumeList()
		if err != nil {
			t.Skipf("docker no disponible: %v", err)
		}
		// volumes puede ser nil o no segun el sistema — no es un error
		_ = volumes
	})

	t.Run("parsea campos Driver y Name correctamente", func(t *testing.T) {
		name := "fn-registry-test-vol-list"
		_, err := DockerVolumeCreate(name)
		if err != nil {
			t.Skipf("docker no disponible: %v", err)
		}
		defer DockerVolumeRemove(name, false) //nolint

		volumes, err := DockerVolumeList()
		if err != nil {
			t.Fatalf("DockerVolumeList: %v", err)
		}

		found := false
		for _, v := range volumes {
			if v["Name"] == name {
				found = true
				if v["Driver"] == "" {
					t.Error("Driver vacio para volume existente")
				}
				break
			}
		}
		if !found {
			t.Errorf("volume %q no encontrado en la lista", name)
		}
	})
}
