# DO NOT MODIFY. This file was generated by
# github.com/GoogleCloudPlatform/google-cloud-common/testing/firestore/cmd/generate-firestore-tests/generate-firestore-tests.go.

# For updates, top-level paths in json-like map inputs are split on the dot. That
# is, an input {"a.b.c": 7} results in an update to field c of object b of object
# a with value 7. In order to specify this behavior, the update must use a
# fieldmask "a.b.c". However, fieldmasks are only used for concrete values -
# transforms are separately encoded in a DocumentTransform_FieldTransform array.

# This test exercises a bug found in python
# (https://github.com/googleapis/google-cloud-python/issues/7215) in which nested
# transforms ({"a.c": "ServerTimestamp"}) next to nested values ({"a.b": 7})
# incorrectly caused the fieldmask "a" to be set, which has the effect of wiping
# out all data in "a" other than what was specified in the json-like input.

# Instead, as this test specifies, transforms should not affect the fieldmask.

description: "update-paths: Nested transforms should not affect the field mask, even\nwhen there are other values that do. Transforms should only affect the\nDocumentTransform_FieldTransform list."
update_paths: <
  doc_ref_path: "projects/projectID/databases/(default)/documents/C/d"
  field_paths: <
    field: "a"
    field: "b"
  >
  field_paths: <
    field: "a"
    field: "c"
  >
  json_values: "7"
  json_values: "\"ServerTimestamp\""
  request: <
    database: "projects/projectID/databases/(default)"
    writes: <
      update: <
        name: "projects/projectID/databases/(default)/documents/C/d"
        fields: <
          key: "a"
          value: <
            map_value: <
              fields: <
                key: "b"
                value: <
                  integer_value: 7
                >
              >
            >
          >
        >
      >
      update_mask: <
        field_paths: "a.b"
      >
      current_document: <
        exists: true
      >
    >
    writes: <
      transform: <
        document: "projects/projectID/databases/(default)/documents/C/d"
        field_transforms: <
          field_path: "a.c"
          set_to_server_value: REQUEST_TIME
        >
      >
    >
  >
>
