8000 Expanding nested items is broken. · Issue #367 · go-swagger/go-swagger · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Expanding nested items is broken. #367
Closed
@pytlesk4

Description

@pytlesk4
var broken = {
  "definitions": {
    "car": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int64"
        },
        "make": {
          "type": "string"
        },
        "brand": {
          "items": {
            "$ref": "#/definitions/brand"
          }
        }
      }
    },
    "tag": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int64"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "brand": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int64"
        },
        "name": {
          "type": "string"
        }
      }
    }
}
func TestItemsExpansion(t *testing.T) {
        spec := new(Swagger)
    err = json.Unmarshal(broken, spec)
    assert.NoError(t, err)

    resolver, err := defaultSchemaLoader(spec, nil, nil)
    assert.NoError(t, err)

    schema := spec.Definitions["car"]
    oldBrand := schema.Properties["brand"]
    assert.NotEmpty(t, oldBrand.Items.Schema.Ref.String())
    assert.NotEqual(t, spec.Definitions["brand"], oldBrand)

    err = expandSchema(&schema, resolver)
    assert.NoError(t, err)

    newBrand := schema.Properties["brand"]
        // Assertions below are going to fail.
    assert.Empty(t, newBrand.Items.Schema.Ref.String())
    assert.Equal(t, spec.Definitions["brand"], *newBrand.Items.Schema)
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0