github.com/go-swagger/go-swagger@v0.31.0/codescan/operations_go119_test.go (about) 1 package codescan 2 3 import ( 4 "testing" 5 6 "github.com/go-openapi/spec" 7 "github.com/stretchr/testify/assert" 8 "github.com/stretchr/testify/require" 9 ) 10 11 func TestIndentedYAMLBlock(t *testing.T) { 12 sctx, err := newScanCtx(&Options{ 13 Packages: []string{ 14 "github.com/go-swagger/go-swagger/fixtures/goparsing/go119", 15 }, 16 }) 17 require.NoError(t, err) 18 var ops spec.Paths 19 for _, apiPath := range sctx.app.Operations { 20 prs := &operationsBuilder{ 21 ctx: sctx, 22 path: apiPath, 23 operations: make(map[string]*spec.Operation), 24 } 25 require.NoError(t, prs.Build(&ops)) 26 } 27 28 assert.Len(t, ops.Paths, 2) 29 30 po, ok := ops.Paths["/api/v1/somefunc"] 31 assert.True(t, ok) 32 assert.NotNil(t, po.Post) 33 op := po.Post 34 assert.Empty(t, op.Summary) 35 assert.Equal(t, "Do something", op.Description) 36 assert.Equal(t, "someFunc", op.ID) 37 38 assert.Contains(t, op.Extensions, "x-codeSamples") 39 40 samples := op.Extensions["x-codeSamples"].([]interface{}) 41 assert.Len(t, samples, 1) 42 sample := samples[0].(map[string]interface{}) 43 assert.Contains(t, sample, "lang") 44 assert.Equal(t, "curl", sample["lang"]) 45 46 assert.Contains(t, sample, "source") 47 const expectedSource = `curl -u "${LOGIN}:${PASSWORD}" -d '{"key": "value"}' -X POST "https://{host}/api/v1/somefunc" 48 curl -u "${LOGIN}:${PASSWORD}" -d '{"key2": "value2"}' -X POST "https://{host}/api/v1/somefunc" 49 ` 50 assert.Equal(t, expectedSource, sample["source"]) 51 52 po2, ok := ops.Paths["/api/v1/somefuncTabs"] 53 assert.True(t, ok) 54 assert.NotNil(t, po2.Post) 55 op2 := po2.Post 56 assert.Empty(t, op2.Summary) 57 assert.Equal(t, "Do something", op2.Description) 58 assert.Equal(t, "someFuncTabs", op2.ID) 59 60 assert.Contains(t, op2.Extensions, "x-codeSamples") 61 62 samples2 := op2.Extensions["x-codeSamples"].([]interface{}) 63 assert.Len(t, samples2, 1) 64 sample2 := samples2[0].(map[string]interface{}) 65 assert.Contains(t, sample2, "lang") 66 assert.Equal(t, "curl", sample2["lang"]) 67 68 assert.Contains(t, sample2, "source") 69 assert.Equal(t, expectedSource, sample2["source"]) 70 }