---
setup:
 - do:
      indices.create:
          index: test_1
          body:
            mappings:
              test:
                _parent: { type: "foo" }
 - do:
      cluster.health:
          wait_for_status: yellow

---
"Parent":

 - do:
      catch:      /RoutingMissingException/
      update:
          index:   test_1
          type:    test
          id:      1
          body:
            doc:        { foo: baz }
            upsert:     { foo: bar }

 - do:
      update:
          index:   test_1
          type:    test
          id:      1
          parent:  5
          body:
            doc:        { foo: baz }
            upsert:     { foo: bar }

 - do:
      get:
          index:   test_1
          type:    test
          id:      1
          parent:  5
          fields:  [_parent, _routing]

 - match: { fields._parent:  "5"}
 - match: { fields._routing: "5"}

 - do:
      update:
          index:   test_1
          type:    test
          id:      1
          parent:  5
          fields:  foo
          body:
            doc:        { foo: baz }

 - match: { get.fields.foo: [baz] }

---
"Parent omitted":

 - do:
      index:
          index:   test_1
          type:    test
          id:      1
          parent:  5
          body:    { foo: bar }

 - do:
      catch:      request
      update:
          index:   test_1
          type:    test
          id:      1
          body:
            doc:        { foo: baz }