runOn:
    -
        minServerVersion: "4.0"
        topology: ["replicaset"]
    -
        minServerVersion: "4.1.8"
        topology: ["sharded"]

database_name: &database_name "transaction-tests"
collection_name: &collection_name "test"

data: []
tests:
  - description: Client side error in command starting transaction

    operations:
      - name: startTransaction
        object: session0
      - name: insertOne
        object: collection
        arguments:
          session: session0
          document:
            _id: {.: .}
        error: true
      - name: assertSessionTransactionState
        object: testRunner
        arguments:
          session: session0
          state: starting

  - description: Client side error when transaction is in progress

    operations:
      - name: startTransaction
        object: session0
      - name: insertOne
        object: collection
        arguments:
          session: session0
          document:
            _id: 4
        result:
          insertedId: 4
      - name: insertOne
        object: collection
        arguments:
          session: session0
          document:
            _id: {.: .}
        error: true
      - name: assertSessionTransactionState
        object: testRunner
        arguments:
          session: session0
          state: in_progress