package utils

import (
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestGetStringByJsonPath(t *testing.T) {
	doc := `
regions:
  us-east-1-byoc-0827:
    account:
      aws-role: arn:aws:iam::385595570414:role/auto-deploy-cli
    cloud-provider: aws
    region: us-east-1
    k8s:
      name: dev-seed-us-east-1-byoc-0827
      version: "1.33"
      int: 1234
      public-ips:
        - 100.29.114.63
`
	result, err := GetStringByJsonPath([]byte(doc), ".regions.us-east-1-byoc-0827.cloud-provider")
	assert.NoError(t, err)
	assert.Equal(t, "aws", result)
	result, err = GetStringByJsonPath([]byte(doc), ".regions.us-east-1-byoc-0827.k8s.version")
	assert.NoError(t, err)
	assert.Equal(t, "1.33", result)
	result, err = GetStringByJsonPath([]byte(doc), ".regions.us-east-1-byoc-0827.k8s.public-ips")
	assert.NoError(t, err)
	assert.Equal(t, "[\"100.29.114.63\"]", result)
	result, err = GetStringByJsonPath([]byte(doc), ".regions.us-east-1-byoc-0827.k8s.int")
	assert.NoError(t, err)
	assert.Equal(t, "1234", result)
}
