package yqlib import ( "testing" "github.com/mikefarah/yq/v4/test" yaml "gopkg.in/yaml.v3" ) func TestGetLogger(t *testing.T) { l := GetLogger() if l != log { t.Fatal("GetLogger should return the yq logger instance, not a copy") } } type parseSnippetScenario struct { snippet string expected *yaml.Node expectedError string } var parseSnippetScenarios = []parseSnippetScenario{ { snippet: ":", expectedError: "yaml: did not find expected key", }, { snippet: "", expected: &yaml.Node{ Kind: yaml.ScalarNode, Tag: "!!null", }, }, { snippet: "null", expected: &yaml.Node{ Kind: yaml.ScalarNode, Tag: "!!null", Value: "null", Line: 1, Column: 1, }, }, { snippet: "3", expected: &yaml.Node{ Kind: yaml.ScalarNode, Tag: "!!int", Value: "3", Line: 1, Column: 1, }, }, { snippet: "cat", expected: &yaml.Node{ Kind: yaml.ScalarNode, Tag: "!!str", Value: "cat", Line: 1, Column: 1, }, }, { snippet: "3.1", expected: &yaml.Node{ Kind: yaml.ScalarNode, Tag: "!!float", Value: "3.1", Line: 1, Column: 1, }, }, { snippet: "true", expected: &yaml.Node{ Kind: yaml.ScalarNode, Tag: "!!bool", Value: "true", Line: 1, Column: 1, }, }, } func TestParseSnippet(t *testing.T) { for _, tt := range parseSnippetScenarios { actual, err := parseSnippet(tt.snippet) if tt.expectedError != "" { if err == nil { t.Errorf("Expected error '%v' but it worked!", tt.expectedError) } else { test.AssertResultComplexWithContext(t, tt.expectedError, err.Error(), tt.snippet) } return } if err != nil { t.Error(tt.snippet) t.Error(err) } test.AssertResultComplexWithContext(t, tt.expected, actual, tt.snippet) } }