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

# A RESET message turns off the CURRENT state, and marks all documents as deleted.

# If a document appeared on the stream but was never part of a snapshot ("d3" in
# this test), a reset will make it disappear completely.

# For a snapshot to happen at a NO_CHANGE reponse, we need to have both seen a
# CURRENT response, and have a change from the previous snapshot. Here, after the
# reset, we see the same version of d2 again. That doesn't result in a snapshot.

description: "listen: RESET turns off CURRENT"
listen: <
  responses: <
    document_change: <
      document: <
        name: "projects/projectID/databases/(default)/documents/C/d1"
        fields: <
          key: "a"
          value: <
            integer_value: 2
          >
        >
        create_time: <
          seconds: 1
        >
        update_time: <
          seconds: 1
        >
      >
      target_ids: 1
    >
  >
  responses: <
    document_change: <
      document: <
        name: "projects/projectID/databases/(default)/documents/C/d2"
        fields: <
          key: "a"
          value: <
            integer_value: 1
          >
        >
        create_time: <
          seconds: 1
        >
        update_time: <
          seconds: 2
        >
      >
      target_ids: 1
    >
  >
  responses: <
    target_change: <
      target_change_type: CURRENT
    >
  >
  responses: <
    target_change: <
      read_time: <
        seconds: 1
      >
    >
  >
  responses: <
    document_change: <
      document: <
        name: "projects/projectID/databases/(default)/documents/C/d3"
        fields: <
          key: "a"
          value: <
            integer_value: 3
          >
        >
        create_time: <
          seconds: 1
        >
        update_time: <
          seconds: 2
        >
      >
      target_ids: 1
    >
  >
  responses: <
    target_change: <
      target_change_type: RESET
    >
  >
  responses: <
    target_change: <
      read_time: <
        seconds: 2
      >
    >
  >
  responses: <
    target_change: <
      target_change_type: CURRENT
    >
  >
  responses: <
    document_change: <
      document: <
        name: "projects/projectID/databases/(default)/documents/C/d2"
        fields: <
          key: "a"
          value: <
            integer_value: 3
          >
        >
        create_time: <
          seconds: 1
        >
        update_time: <
          seconds: 3
        >
      >
      target_ids: 1
    >
  >
  responses: <
    target_change: <
      read_time: <
        seconds: 3
      >
    >
  >
  responses: <
    target_change: <
      target_change_type: RESET
    >
  >
  responses: <
    document_change: <
      document: <
        name: "projects/projectID/databases/(default)/documents/C/d2"
        fields: <
          key: "a"
          value: <
            integer_value: 3
          >
        >
        create_time: <
          seconds: 1
        >
        update_time: <
          seconds: 3
        >
      >
      target_ids: 1
    >
  >
  responses: <
    target_change: <
      target_change_type: CURRENT
    >
  >
  responses: <
    target_change: <
      read_time: <
        seconds: 4
      >
    >
  >
  responses: <
    document_change: <
      document: <
        name: "projects/projectID/databases/(default)/documents/C/d3"
        fields: <
          key: "a"
          value: <
            integer_value: 3
          >
        >
        create_time: <
          seconds: 1
        >
        update_time: <
          seconds: 2
        >
      >
      target_ids: 1
    >
  >
  responses: <
    target_change: <
      read_time: <
        seconds: 5
      >
    >
  >
  snapshots: <
    docs: <
      name: "projects/projectID/databases/(default)/documents/C/d2"
      fields: <
        key: "a"
        value: <
          integer_value: 1
        >
      >
      create_time: <
        seconds: 1
      >
      update_time: <
        seconds: 2
      >
    >
    docs: <
      name: "projects/projectID/databases/(default)/documents/C/d1"
      fields: <
        key: "a"
        value: <
          integer_value: 2
        >
      >
      create_time: <
        seconds: 1
      >
      update_time: <
        seconds: 1
      >
    >
    changes: <
      kind: ADDED
      doc: <
        name: "projects/projectID/databases/(default)/documents/C/d2"
        fields: <
          key: "a"
          value: <
            integer_value: 1
          >
        >
        create_time: <
          seconds: 1
        >
        update_time: <
          seconds: 2
        >
      >
      old_index: -1
    >
    changes: <
      kind: ADDED
      doc: <
        name: "projects/projectID/databases/(default)/documents/C/d1"
        fields: <
          key: "a"
          value: <
            integer_value: 2
          >
        >
        create_time: <
          seconds: 1
        >
        update_time: <
          seconds: 1
        >
      >
      old_index: -1
      new_index: 1
    >
    read_time: <
      seconds: 1
    >
  >
  snapshots: <
    docs: <
      name: "projects/projectID/databases/(default)/documents/C/d2"
      fields: <
        key: "a"
        value: <
          integer_value: 3
        >
      >
      create_time: <
        seconds: 1
      >
      update_time: <
        seconds: 3
      >
    >
    changes: <
      kind: REMOVED
      doc: <
        name: "projects/projectID/databases/(default)/documents/C/d1"
        fields: <
          key: "a"
          value: <
            integer_value: 2
          >
        >
        create_time: <
          seconds: 1
        >
        update_time: <
          seconds: 1
        >
      >
      old_index: 1
      new_index: -1
    >
    changes: <
      kind: MODIFIED
      doc: <
        name: "projects/projectID/databases/(default)/documents/C/d2"
        fields: <
          key: "a"
          value: <
            integer_value: 3
          >
        >
        create_time: <
          seconds: 1
        >
        update_time: <
          seconds: 3
        >
      >
    >
    read_time: <
      seconds: 3
    >
  >
  snapshots: <
    docs: <
      name: "projects/projectID/databases/(default)/documents/C/d2"
      fields: <
        key: "a"
        value: <
          integer_value: 3
        >
      >
      create_time: <
        seconds: 1
      >
      update_time: <
        seconds: 3
      >
    >
    docs: <
      name: "projects/projectID/databases/(default)/documents/C/d3"
      fields: <
        key: "a"
        value: <
          integer_value: 3
        >
      >
      create_time: <
        seconds: 1
      >
      update_time: <
        seconds: 2
      >
    >
    changes: <
      kind: ADDED
      doc: <
        name: "projects/projectID/databases/(default)/documents/C/d3"
        fields: <
          key: "a"
          value: <
            integer_value: 3
          >
        >
        create_time: <
          seconds: 1
        >
        update_time: <
          seconds: 2
        >
      >
      old_index: -1
      new_index: 1
    >
    read_time: <
      seconds: 5
    >
  >
>
