1{
2  "runOn": [
3    {
4      "minServerVersion": "4.0",
5      "topology": [
6        "replicaset"
7      ]
8    },
9    {
10      "minServerVersion": "4.1.8",
11      "topology": [
12        "sharded"
13      ]
14    }
15  ],
16  "database_name": "transaction-tests",
17  "collection_name": "test",
18  "data": [],
19  "tests": [
20    {
21      "description": "Client side error in command starting transaction",
22      "operations": [
23        {
24          "name": "startTransaction",
25          "object": "session0"
26        },
27        {
28          "name": "insertOne",
29          "object": "collection",
30          "arguments": {
31            "session": "session0",
32            "document": {
33              "_id": {
34                ".": "."
35              }
36            }
37          },
38          "error": true
39        },
40        {
41          "name": "assertSessionTransactionState",
42          "object": "testRunner",
43          "arguments": {
44            "session": "session0",
45            "state": "starting"
46          }
47        }
48      ]
49    },
50    {
51      "description": "Client side error when transaction is in progress",
52      "operations": [
53        {
54          "name": "startTransaction",
55          "object": "session0"
56        },
57        {
58          "name": "insertOne",
59          "object": "collection",
60          "arguments": {
61            "session": "session0",
62            "document": {
63              "_id": 4
64            }
65          },
66          "result": {
67            "insertedId": 4
68          }
69        },
70        {
71          "name": "insertOne",
72          "object": "collection",
73          "arguments": {
74            "session": "session0",
75            "document": {
76              "_id": {
77                ".": "."
78              }
79            }
80          },
81          "error": true
82        },
83        {
84          "name": "assertSessionTransactionState",
85          "object": "testRunner",
86          "arguments": {
87            "session": "session0",
88            "state": "in_progress"
89          }
90        }
91      ]
92    }
93  ]
94}
95