mongo 2.19.1 → 2.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (356) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +40 -1
  3. data/Rakefile +83 -174
  4. data/lib/mongo/address.rb +22 -3
  5. data/lib/mongo/auth/aws/credentials_retriever.rb +70 -17
  6. data/lib/mongo/auth/base.rb +1 -1
  7. data/lib/mongo/bulk_write.rb +35 -2
  8. data/lib/mongo/client.rb +38 -6
  9. data/lib/mongo/client_encryption.rb +6 -3
  10. data/lib/mongo/cluster/reapers/cursor_reaper.rb +6 -1
  11. data/lib/mongo/cluster/sdam_flow.rb +20 -7
  12. data/lib/mongo/cluster/topology/base.rb +16 -0
  13. data/lib/mongo/cluster.rb +41 -5
  14. data/lib/mongo/collection/helpers.rb +1 -1
  15. data/lib/mongo/collection/view/aggregation/behavior.rb +131 -0
  16. data/lib/mongo/collection/view/aggregation.rb +33 -99
  17. data/lib/mongo/collection/view/builder/aggregation.rb +1 -7
  18. data/lib/mongo/collection/view/change_stream.rb +80 -27
  19. data/lib/mongo/collection/view/iterable.rb +92 -60
  20. data/lib/mongo/collection/view/map_reduce.rb +25 -8
  21. data/lib/mongo/collection/view/readable.rb +79 -30
  22. data/lib/mongo/collection/view/writable.rb +109 -48
  23. data/lib/mongo/collection/view.rb +44 -3
  24. data/lib/mongo/collection.rb +185 -26
  25. data/lib/mongo/config.rb +2 -2
  26. data/lib/mongo/crypt/auto_encrypter.rb +4 -6
  27. data/lib/mongo/crypt/binding.rb +4 -4
  28. data/lib/mongo/crypt/context.rb +20 -14
  29. data/lib/mongo/crypt/encryption_io.rb +56 -26
  30. data/lib/mongo/crypt/explicit_encrypter.rb +49 -20
  31. data/lib/mongo/crypt/explicit_encryption_context.rb +17 -11
  32. data/lib/mongo/crypt/kms/azure/credentials_retriever.rb +22 -6
  33. data/lib/mongo/crypt/kms/gcp/credentials_retriever.rb +29 -4
  34. data/lib/mongo/csot_timeout_holder.rb +119 -0
  35. data/lib/mongo/cursor/kill_spec.rb +5 -2
  36. data/lib/mongo/cursor/nontailable.rb +27 -0
  37. data/lib/mongo/cursor.rb +86 -24
  38. data/lib/mongo/cursor_host.rb +82 -0
  39. data/lib/mongo/database/view.rb +81 -14
  40. data/lib/mongo/database.rb +88 -18
  41. data/lib/mongo/error/operation_failure.rb +209 -204
  42. data/lib/mongo/error/server_timeout_error.rb +12 -0
  43. data/lib/mongo/error/socket_timeout_error.rb +3 -1
  44. data/lib/mongo/error/timeout_error.rb +23 -0
  45. data/lib/mongo/error/transactions_not_supported.rb +34 -0
  46. data/lib/mongo/error.rb +3 -0
  47. data/lib/mongo/grid/fs_bucket.rb +48 -9
  48. data/lib/mongo/grid/stream/read.rb +15 -1
  49. data/lib/mongo/grid/stream/write.rb +21 -4
  50. data/lib/mongo/index/view.rb +77 -16
  51. data/lib/mongo/monitoring/event/secure.rb +1 -1
  52. data/lib/mongo/operation/context.rb +40 -2
  53. data/lib/mongo/operation/create_search_indexes/op_msg.rb +31 -0
  54. data/lib/mongo/operation/create_search_indexes.rb +15 -0
  55. data/lib/mongo/operation/delete/op_msg.rb +2 -1
  56. data/lib/mongo/operation/drop_search_index/op_msg.rb +33 -0
  57. data/lib/mongo/operation/drop_search_index.rb +15 -0
  58. data/lib/mongo/operation/find/op_msg.rb +45 -0
  59. data/lib/mongo/operation/get_more/op_msg.rb +33 -0
  60. data/lib/mongo/operation/insert/op_msg.rb +3 -2
  61. data/lib/mongo/operation/insert/result.rb +4 -2
  62. data/lib/mongo/operation/list_collections/result.rb +1 -1
  63. data/lib/mongo/operation/map_reduce/result.rb +1 -1
  64. data/lib/mongo/operation/op_msg_base.rb +3 -1
  65. data/lib/mongo/operation/result.rb +26 -5
  66. data/lib/mongo/operation/shared/executable.rb +55 -28
  67. data/lib/mongo/operation/shared/op_msg_executable.rb +4 -1
  68. data/lib/mongo/operation/shared/response_handling.rb +25 -27
  69. data/lib/mongo/operation/shared/sessions_supported.rb +1 -1
  70. data/lib/mongo/operation/shared/specifiable.rb +7 -0
  71. data/lib/mongo/operation/shared/timed.rb +52 -0
  72. data/lib/mongo/operation/shared/write.rb +4 -1
  73. data/lib/mongo/operation/update/op_msg.rb +2 -1
  74. data/lib/mongo/operation/update_search_index/op_msg.rb +34 -0
  75. data/lib/mongo/operation/update_search_index.rb +15 -0
  76. data/lib/mongo/operation.rb +4 -0
  77. data/lib/mongo/protocol/message.rb +1 -4
  78. data/lib/mongo/protocol/msg.rb +2 -2
  79. data/lib/mongo/retryable/base_worker.rb +28 -3
  80. data/lib/mongo/retryable/read_worker.rb +78 -36
  81. data/lib/mongo/retryable/write_worker.rb +59 -25
  82. data/lib/mongo/retryable.rb +8 -2
  83. data/lib/mongo/search_index/view.rb +232 -0
  84. data/lib/mongo/server/app_metadata/environment.rb +64 -9
  85. data/lib/mongo/server/app_metadata.rb +5 -4
  86. data/lib/mongo/server/connection.rb +11 -5
  87. data/lib/mongo/server/connection_base.rb +22 -2
  88. data/lib/mongo/server/connection_pool.rb +32 -14
  89. data/lib/mongo/server/description/features.rb +2 -1
  90. data/lib/mongo/server/description.rb +18 -5
  91. data/lib/mongo/server/monitor.rb +7 -4
  92. data/lib/mongo/server/pending_connection.rb +25 -8
  93. data/lib/mongo/server/{round_trip_time_averager.rb → round_trip_time_calculator.rb} +25 -7
  94. data/lib/mongo/server.rb +11 -6
  95. data/lib/mongo/server_selector/base.rb +54 -12
  96. data/lib/mongo/session/server_session/dirtyable.rb +52 -0
  97. data/lib/mongo/session/server_session.rb +3 -0
  98. data/lib/mongo/session/session_pool.rb +12 -18
  99. data/lib/mongo/session.rb +110 -9
  100. data/lib/mongo/socket/ssl.rb +131 -18
  101. data/lib/mongo/socket/tcp.rb +40 -6
  102. data/lib/mongo/socket.rb +154 -25
  103. data/lib/mongo/uri/options_mapper.rb +1 -0
  104. data/lib/mongo/uri.rb +0 -4
  105. data/lib/mongo/version.rb +1 -5
  106. data/lib/mongo.rb +2 -0
  107. data/mongo.gemspec +9 -18
  108. data/spec/atlas/atlas_connectivity_spec.rb +9 -9
  109. data/spec/atlas/operations_spec.rb +5 -5
  110. data/spec/faas/ruby-sam-app/Gemfile +9 -0
  111. data/spec/faas/ruby-sam-app/mongodb/Gemfile +4 -0
  112. data/spec/faas/ruby-sam-app/mongodb/app.rb +149 -0
  113. data/spec/faas/ruby-sam-app/template.yaml +48 -0
  114. data/spec/integration/client_side_encryption/auto_encryption_mongocryptd_spawn_spec.rb +2 -1
  115. data/spec/integration/client_side_encryption/auto_encryption_spec.rb +494 -487
  116. data/spec/integration/client_side_encryption/corpus_spec.rb +10 -2
  117. data/spec/integration/client_side_encryption/on_demand_aws_credentials_spec.rb +1 -1
  118. data/spec/integration/client_side_encryption/range_explicit_encryption_prose_spec.rb +67 -20
  119. data/spec/integration/client_side_operations_timeout/encryption_prose_spec.rb +131 -0
  120. data/spec/integration/connection_pool_populator_spec.rb +2 -0
  121. data/spec/integration/cursor_pinning_spec.rb +15 -60
  122. data/spec/integration/cursor_reaping_spec.rb +1 -1
  123. data/spec/integration/docs_examples_spec.rb +1 -1
  124. data/spec/integration/find_options_spec.rb +227 -0
  125. data/spec/integration/operation_failure_code_spec.rb +1 -1
  126. data/spec/integration/operation_failure_message_spec.rb +3 -3
  127. data/spec/integration/retryable_errors_spec.rb +2 -2
  128. data/spec/integration/retryable_reads_errors_spec.rb +196 -31
  129. data/spec/integration/retryable_writes_errors_spec.rb +156 -0
  130. data/spec/integration/sdam_error_handling_spec.rb +4 -1
  131. data/spec/integration/search_indexes_prose_spec.rb +172 -0
  132. data/spec/integration/server_spec.rb +4 -3
  133. data/spec/integration/transactions_api_examples_spec.rb +2 -0
  134. data/spec/kerberos/kerberos_spec.rb +4 -0
  135. data/spec/lite_spec_helper.rb +34 -20
  136. data/spec/mongo/auth/user/view_spec.rb +1 -1
  137. data/spec/mongo/caching_cursor_spec.rb +1 -1
  138. data/spec/mongo/client_encryption_spec.rb +1 -0
  139. data/spec/mongo/client_spec.rb +158 -4
  140. data/spec/mongo/cluster_spec.rb +36 -0
  141. data/spec/mongo/collection/view/aggregation_spec.rb +20 -40
  142. data/spec/mongo/collection/view/change_stream_spec.rb +3 -3
  143. data/spec/mongo/collection/view/explainable_spec.rb +2 -0
  144. data/spec/mongo/collection_crud_spec.rb +2 -1
  145. data/spec/mongo/collection_spec.rb +5 -6
  146. data/spec/mongo/crypt/auto_encrypter_spec.rb +14 -12
  147. data/spec/mongo/crypt/data_key_context_spec.rb +3 -1
  148. data/spec/mongo/crypt/explicit_encryption_context_spec.rb +2 -2
  149. data/spec/mongo/crypt/handle_spec.rb +1 -1
  150. data/spec/mongo/cursor_spec.rb +26 -9
  151. data/spec/mongo/error/operation_failure_heavy_spec.rb +2 -2
  152. data/spec/mongo/operation/context_spec.rb +79 -0
  153. data/spec/mongo/operation/create/op_msg_spec.rb +106 -110
  154. data/spec/mongo/operation/delete/op_msg_spec.rb +6 -5
  155. data/spec/mongo/operation/find/op_msg_spec.rb +66 -0
  156. data/spec/mongo/operation/get_more/op_msg_spec.rb +65 -0
  157. data/spec/mongo/operation/insert/op_msg_spec.rb +128 -131
  158. data/spec/mongo/operation/insert_spec.rb +1 -1
  159. data/spec/mongo/operation/shared/csot/examples.rb +113 -0
  160. data/spec/mongo/query_cache_spec.rb +243 -225
  161. data/spec/mongo/retryable/write_worker_spec.rb +39 -0
  162. data/spec/mongo/retryable_spec.rb +1 -0
  163. data/spec/mongo/server/app_metadata/environment_spec.rb +135 -0
  164. data/spec/mongo/server/app_metadata_spec.rb +12 -2
  165. data/spec/mongo/server/connection_spec.rb +26 -0
  166. data/spec/mongo/server/round_trip_time_calculator_spec.rb +120 -0
  167. data/spec/mongo/session/session_pool_spec.rb +1 -16
  168. data/spec/mongo/session_transaction_spec.rb +15 -0
  169. data/spec/mongo/socket/ssl_spec.rb +0 -10
  170. data/spec/mongo/uri_spec.rb +0 -9
  171. data/spec/runners/change_streams/test.rb +2 -2
  172. data/spec/runners/crud/operation.rb +1 -1
  173. data/spec/runners/crud/test.rb +0 -8
  174. data/spec/runners/crud/verifier.rb +3 -1
  175. data/spec/runners/crud.rb +1 -1
  176. data/spec/runners/transactions/operation.rb +4 -6
  177. data/spec/runners/transactions/test.rb +12 -3
  178. data/spec/runners/unified/ambiguous_operations.rb +13 -0
  179. data/spec/runners/unified/assertions.rb +20 -3
  180. data/spec/runners/unified/change_stream_operations.rb +14 -24
  181. data/spec/runners/unified/crud_operations.rb +82 -47
  182. data/spec/runners/unified/ddl_operations.rb +38 -7
  183. data/spec/runners/unified/grid_fs_operations.rb +37 -2
  184. data/spec/runners/unified/search_index_operations.rb +63 -0
  185. data/spec/runners/unified/support_operations.rb +46 -9
  186. data/spec/runners/unified/test.rb +33 -12
  187. data/spec/runners/unified.rb +1 -1
  188. data/spec/solo/clean_exit_spec.rb +2 -0
  189. data/spec/spec_helper.rb +1 -1
  190. data/spec/spec_tests/client_side_operations_timeout_spec.rb +15 -0
  191. data/spec/spec_tests/data/change_streams_unified/change-streams-clusterTime.yml +3 -1
  192. data/spec/spec_tests/data/change_streams_unified/change-streams-disambiguatedPaths.yml +3 -1
  193. data/spec/spec_tests/data/change_streams_unified/change-streams-errors.yml +3 -1
  194. data/spec/spec_tests/data/change_streams_unified/change-streams-pre_and_post_images.yml +1 -1
  195. data/spec/spec_tests/data/change_streams_unified/change-streams-resume-allowlist.yml +1 -1
  196. data/spec/spec_tests/data/change_streams_unified/change-streams-resume-errorLabels.yml +1 -1
  197. data/spec/spec_tests/data/change_streams_unified/change-streams-showExpandedEvents.yml +1 -1
  198. data/spec/spec_tests/data/client_side_encryption/badQueries.yml +2 -1
  199. data/spec/spec_tests/data/client_side_encryption/explain.yml +2 -2
  200. data/spec/spec_tests/data/client_side_encryption/fle2v2-BypassQueryAnalysis.yml +1 -0
  201. data/spec/spec_tests/data/client_side_encryption/fle2v2-Compact.yml +1 -0
  202. data/spec/spec_tests/data/client_side_encryption/fle2v2-CreateCollection.yml +1 -0
  203. data/spec/spec_tests/data/client_side_encryption/fle2v2-DecryptExistingData.yml +1 -0
  204. data/spec/spec_tests/data/client_side_encryption/fle2v2-Delete.yml +1 -0
  205. data/spec/spec_tests/data/client_side_encryption/fle2v2-EncryptedFields-vs-EncryptedFieldsMap.yml +1 -0
  206. data/spec/spec_tests/data/client_side_encryption/fle2v2-EncryptedFields-vs-jsonSchema.yml +1 -0
  207. data/spec/spec_tests/data/client_side_encryption/fle2v2-EncryptedFieldsMap-defaults.yml +1 -0
  208. data/spec/spec_tests/data/client_side_encryption/fle2v2-FindOneAndUpdate.yml +1 -0
  209. data/spec/spec_tests/data/client_side_encryption/fle2v2-InsertFind-Indexed.yml +1 -0
  210. data/spec/spec_tests/data/client_side_encryption/fle2v2-InsertFind-Unindexed.yml +1 -0
  211. data/spec/spec_tests/data/client_side_encryption/fle2v2-MissingKey.yml +1 -0
  212. data/spec/spec_tests/data/client_side_encryption/fle2v2-NoEncryption.yml +1 -0
  213. data/spec/spec_tests/data/client_side_encryption/fle2v2-Update.yml +1 -0
  214. data/spec/spec_tests/data/client_side_encryption/fle2v2-validatorAndPartialFieldExpression.yml +2 -1
  215. data/spec/spec_tests/data/client_side_encryption/timeoutMS.yml +67 -0
  216. data/spec/spec_tests/data/client_side_operations_timeout/bulkWrite.yml +87 -0
  217. data/spec/spec_tests/data/client_side_operations_timeout/change-streams.yml +358 -0
  218. data/spec/spec_tests/data/client_side_operations_timeout/close-cursors.yml +129 -0
  219. data/spec/spec_tests/data/client_side_operations_timeout/command-execution.yml +250 -0
  220. data/spec/spec_tests/data/client_side_operations_timeout/convenient-transactions.yml +113 -0
  221. data/spec/spec_tests/data/client_side_operations_timeout/cursors.yml +70 -0
  222. data/spec/spec_tests/data/client_side_operations_timeout/deprecated-options.yml +3982 -0
  223. data/spec/spec_tests/data/client_side_operations_timeout/error-transformations.yml +96 -0
  224. data/spec/spec_tests/data/client_side_operations_timeout/global-timeoutMS.yml +3236 -0
  225. data/spec/spec_tests/data/client_side_operations_timeout/gridfs-advanced.yml +207 -0
  226. data/spec/spec_tests/data/client_side_operations_timeout/gridfs-delete.yml +152 -0
  227. data/spec/spec_tests/data/client_side_operations_timeout/gridfs-download.yml +182 -0
  228. data/spec/spec_tests/data/client_side_operations_timeout/gridfs-find.yml +100 -0
  229. data/spec/spec_tests/data/client_side_operations_timeout/gridfs-upload.yml +249 -0
  230. data/spec/spec_tests/data/client_side_operations_timeout/legacy-timeouts.yml +204 -0
  231. data/spec/spec_tests/data/client_side_operations_timeout/non-tailable-cursors.yml +307 -0
  232. data/spec/spec_tests/data/client_side_operations_timeout/override-collection-timeoutMS.yml +1877 -0
  233. data/spec/spec_tests/data/client_side_operations_timeout/override-operation-timeoutMS.yml +1918 -0
  234. data/spec/spec_tests/data/client_side_operations_timeout/retryability-legacy-timeouts.yml +1676 -0
  235. data/spec/spec_tests/data/client_side_operations_timeout/retryability-timeoutMS.yml +2824 -0
  236. data/spec/spec_tests/data/client_side_operations_timeout/sessions-inherit-timeoutMS.yml +168 -0
  237. data/spec/spec_tests/data/client_side_operations_timeout/sessions-override-operation-timeoutMS.yml +171 -0
  238. data/spec/spec_tests/data/client_side_operations_timeout/sessions-override-timeoutMS.yml +168 -0
  239. data/spec/spec_tests/data/client_side_operations_timeout/tailable-awaitData.yml +247 -0
  240. data/spec/spec_tests/data/client_side_operations_timeout/tailable-non-awaitData.yml +181 -0
  241. data/spec/spec_tests/data/connection_string/invalid-uris.yml +0 -10
  242. data/spec/spec_tests/data/connection_string/valid-options.yml +13 -0
  243. data/spec/spec_tests/data/crud_unified/aggregate-write-readPreference.yml +6 -0
  244. data/spec/spec_tests/data/crud_unified/db-aggregate-write-readPreference.yml +6 -0
  245. data/spec/spec_tests/data/crud_unified/find-test-all-options.yml +377 -0
  246. data/spec/spec_tests/data/index_management/createSearchIndex.yml +64 -0
  247. data/spec/spec_tests/data/index_management/createSearchIndexes.yml +86 -0
  248. data/spec/spec_tests/data/index_management/dropSearchIndex.yml +43 -0
  249. data/spec/spec_tests/data/index_management/listSearchIndexes.yml +91 -0
  250. data/spec/spec_tests/data/index_management/updateSearchIndex.yml +46 -0
  251. data/spec/spec_tests/data/retryable_writes/unified/bulkWrite-serverErrors.yml +3 -6
  252. data/spec/spec_tests/data/retryable_writes/unified/insertOne-serverErrors.yml +3 -6
  253. data/spec/spec_tests/data/run_command_unified/runCommand.yml +319 -0
  254. data/spec/spec_tests/data/sessions_unified/driver-sessions-dirty-session-errors.yml +351 -0
  255. data/spec/spec_tests/data/unified/valid-pass/poc-crud.yml +1 -1
  256. data/spec/spec_tests/data/unified/valid-pass/poc-retryable-writes.yml +7 -7
  257. data/spec/spec_tests/data/unified/valid-pass/poc-sessions.yml +3 -4
  258. data/spec/spec_tests/data/unified/valid-pass/poc-transactions-convenient-api.yml +1 -1
  259. data/spec/spec_tests/data/unified/valid-pass/poc-transactions-mongos-pin-auto.yml +1 -1
  260. data/spec/spec_tests/data/unified/valid-pass/poc-transactions.yml +3 -3
  261. data/spec/spec_tests/index_management_unified_spec.rb +13 -0
  262. data/spec/spec_tests/run_command_unified_spec.rb +13 -0
  263. data/spec/spec_tests/sdam_unified_spec.rb +2 -0
  264. data/spec/spec_tests/server_selection_rtt_spec.rb +6 -6
  265. data/spec/spec_tests/transactions_unified_spec.rb +2 -1
  266. data/spec/support/certificates/atlas-ocsp-ca.crt +89 -79
  267. data/spec/support/certificates/atlas-ocsp.crt +117 -122
  268. data/spec/support/certificates/retrieve-atlas-cert +1 -1
  269. data/spec/support/cluster_tools.rb +3 -3
  270. data/spec/support/common_shortcuts.rb +2 -2
  271. data/spec/support/constraints.rb +6 -0
  272. data/spec/support/crypt/encrypted_fields/range-encryptedFields-Date.json +1 -1
  273. data/spec/support/crypt/encrypted_fields/range-encryptedFields-DecimalNoPrecision.json +1 -1
  274. data/spec/support/crypt/encrypted_fields/range-encryptedFields-DecimalPrecision.json +1 -1
  275. data/spec/support/crypt/encrypted_fields/range-encryptedFields-DoubleNoPrecision.json +1 -1
  276. data/spec/support/crypt/encrypted_fields/range-encryptedFields-DoublePrecision.json +1 -1
  277. data/spec/support/crypt/encrypted_fields/range-encryptedFields-Int.json +1 -1
  278. data/spec/support/crypt/encrypted_fields/range-encryptedFields-Long.json +1 -1
  279. data/spec/support/ocsp +1 -1
  280. data/spec/support/recording_logger.rb +27 -0
  281. data/spec/support/shared/session.rb +2 -2
  282. data/spec/support/spec_config.rb +5 -0
  283. data/spec/support/spec_setup.rb +2 -2
  284. data/spec/support/utils.rb +3 -1
  285. metadata +1329 -1368
  286. checksums.yaml.gz.sig +0 -0
  287. data/spec/mongo/server/round_trip_time_averager_spec.rb +0 -48
  288. data/spec/shared/LICENSE +0 -20
  289. data/spec/shared/bin/get-mongodb-download-url +0 -17
  290. data/spec/shared/bin/s3-copy +0 -45
  291. data/spec/shared/bin/s3-upload +0 -69
  292. data/spec/shared/lib/mrss/child_process_helper.rb +0 -80
  293. data/spec/shared/lib/mrss/cluster_config.rb +0 -231
  294. data/spec/shared/lib/mrss/constraints.rb +0 -378
  295. data/spec/shared/lib/mrss/docker_runner.rb +0 -295
  296. data/spec/shared/lib/mrss/eg_config_utils.rb +0 -51
  297. data/spec/shared/lib/mrss/event_subscriber.rb +0 -210
  298. data/spec/shared/lib/mrss/lite_constraints.rb +0 -238
  299. data/spec/shared/lib/mrss/server_version_registry.rb +0 -113
  300. data/spec/shared/lib/mrss/session_registry.rb +0 -69
  301. data/spec/shared/lib/mrss/session_registry_legacy.rb +0 -60
  302. data/spec/shared/lib/mrss/spec_organizer.rb +0 -179
  303. data/spec/shared/lib/mrss/utils.rb +0 -37
  304. data/spec/shared/share/Dockerfile.erb +0 -330
  305. data/spec/shared/share/haproxy-1.conf +0 -16
  306. data/spec/shared/share/haproxy-2.conf +0 -17
  307. data/spec/shared/shlib/config.sh +0 -27
  308. data/spec/shared/shlib/distro.sh +0 -74
  309. data/spec/shared/shlib/server.sh +0 -416
  310. data/spec/shared/shlib/set_env.sh +0 -169
  311. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Date-Aggregate.yml +0 -241
  312. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Date-Correctness.yml +0 -422
  313. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Date-Delete.yml +0 -182
  314. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Date-FindOneAndUpdate.yml +0 -239
  315. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Date-InsertFind.yml +0 -235
  316. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Date-Update.yml +0 -252
  317. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Decimal-Aggregate.yml +0 -1687
  318. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Decimal-Correctness.yml +0 -293
  319. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Decimal-Delete.yml +0 -905
  320. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Decimal-FindOneAndUpdate.yml +0 -1684
  321. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Decimal-InsertFind.yml +0 -1680
  322. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Decimal-Update.yml +0 -1697
  323. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-DecimalPrecision-Aggregate.yml +0 -329
  324. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-DecimalPrecision-Correctness.yml +0 -424
  325. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-DecimalPrecision-Delete.yml +0 -226
  326. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-DecimalPrecision-FindOneAndUpdate.yml +0 -327
  327. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-DecimalPrecision-InsertFind.yml +0 -319
  328. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-DecimalPrecision-Update.yml +0 -336
  329. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Double-Aggregate.yml +0 -913
  330. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Double-Correctness.yml +0 -292
  331. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Double-Delete.yml +0 -518
  332. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Double-FindOneAndUpdate.yml +0 -911
  333. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Double-InsertFind.yml +0 -907
  334. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Double-Update.yml +0 -924
  335. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-DoublePrecision-Aggregate.yml +0 -325
  336. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-DoublePrecision-Correctness.yml +0 -424
  337. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-DoublePrecision-Delete.yml +0 -224
  338. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-DoublePrecision-FindOneAndUpdate.yml +0 -323
  339. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-DoublePrecision-InsertFind.yml +0 -319
  340. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-DoublePrecision-Update.yml +0 -338
  341. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Int-Aggregate.yml +0 -241
  342. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Int-Correctness.yml +0 -423
  343. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Int-Delete.yml +0 -182
  344. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Int-FindOneAndUpdate.yml +0 -239
  345. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Int-InsertFind.yml +0 -235
  346. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Int-Update.yml +0 -254
  347. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Long-Aggregate.yml +0 -241
  348. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Long-Correctness.yml +0 -422
  349. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Long-Delete.yml +0 -182
  350. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Long-FindOneAndUpdate.yml +0 -239
  351. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Long-InsertFind.yml +0 -235
  352. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-Long-Update.yml +0 -254
  353. data/spec/spec_tests/data/client_side_encryption/fle2v2-Range-WrongType.yml +0 -43
  354. data/spec/spec_tests/data/cmap/pool-clear-interrupt-immediately.yml +0 -49
  355. data.tar.gz.sig +0 -0
  356. metadata.gz.sig +0 -2
@@ -0,0 +1,377 @@
1
+ # This spec is specific to the ruby driver, and is not part of the general
2
+ # `specifications` repo.
3
+
4
+ description: "find options"
5
+
6
+ schemaVersion: "1.0"
7
+ runOnRequirements:
8
+ - serverless: 'forbid'
9
+
10
+
11
+ createEntities:
12
+ - client:
13
+ id: &client0 client0
14
+ observeEvents: [ commandStartedEvent ]
15
+ - database:
16
+ id: &database0 database0
17
+ client: *client0
18
+ databaseName: &database0Name find-tests
19
+ - collection:
20
+ id: &collection0 collection0
21
+ database: *database0
22
+ collectionName: &collection0Name coll0
23
+
24
+ tests:
25
+ - description: "sort"
26
+ operations:
27
+ - name: find
28
+ arguments:
29
+ filter: &filter { _name: "John" }
30
+ sort: &sort { _id: 1 }
31
+ object: *collection0
32
+ expectEvents:
33
+ - client: *client0
34
+ events:
35
+ - commandStartedEvent:
36
+ command:
37
+ find: *collection0Name
38
+ filter: *filter
39
+ sort: *sort
40
+ commandName: find
41
+
42
+ - description: "projection"
43
+ operations:
44
+ - name: find
45
+ arguments:
46
+ filter: *filter
47
+ projection: &projection { _id: 1 }
48
+ object: *collection0
49
+ expectEvents:
50
+ - client: *client0
51
+ events:
52
+ - commandStartedEvent:
53
+ command:
54
+ find: *collection0Name
55
+ filter: *filter
56
+ projection: *projection
57
+ commandName: find
58
+ databaseName: *database0Name
59
+
60
+ - description: "hint"
61
+ operations:
62
+ - name: find
63
+ arguments:
64
+ filter: *filter
65
+ hint: &hint { _id: 1 }
66
+ object: *collection0
67
+ expectEvents:
68
+ - client: *client0
69
+ events:
70
+ - commandStartedEvent:
71
+ command:
72
+ find: *collection0Name
73
+ filter: *filter
74
+ hint: *hint
75
+ commandName: find
76
+ databaseName: *database0Name
77
+
78
+ - description: "skip"
79
+ operations:
80
+ - name: find
81
+ arguments:
82
+ filter: *filter
83
+ skip: &skip 10
84
+ object: *collection0
85
+ expectEvents:
86
+ - client: *client0
87
+ events:
88
+ - commandStartedEvent:
89
+ command:
90
+ find: *collection0Name
91
+ filter: *filter
92
+ skip: *skip
93
+ commandName: find
94
+ databaseName: *database0Name
95
+
96
+ - description: "limit"
97
+ operations:
98
+ - name: find
99
+ arguments:
100
+ filter: *filter
101
+ limit: &limit 10
102
+ object: *collection0
103
+ expectEvents:
104
+ - client: *client0
105
+ events:
106
+ - commandStartedEvent:
107
+ command:
108
+ find: *collection0Name
109
+ filter: *filter
110
+ limit: *limit
111
+ commandName: find
112
+ databaseName: *database0Name
113
+
114
+ - description: "batchSize"
115
+ operations:
116
+ - name: find
117
+ arguments:
118
+ filter: *filter
119
+ batchSize: &batchSize 10
120
+ object: *collection0
121
+ expectEvents:
122
+ - client: *client0
123
+ events:
124
+ - commandStartedEvent:
125
+ command:
126
+ find: *collection0Name
127
+ filter: *filter
128
+ batchSize: *batchSize
129
+ commandName: find
130
+ databaseName: *database0Name
131
+
132
+ - description: "comment"
133
+ operations:
134
+ - name: find
135
+ arguments:
136
+ filter: *filter
137
+ comment: &comment 'comment'
138
+ object: *collection0
139
+ expectEvents:
140
+ - client: *client0
141
+ events:
142
+ - commandStartedEvent:
143
+ command:
144
+ find: *collection0Name
145
+ filter: *filter
146
+ comment: *comment
147
+ commandName: find
148
+ databaseName: *database0Name
149
+
150
+ - description: "maxTimeMS"
151
+ operations:
152
+ - name: find
153
+ arguments:
154
+ filter: *filter
155
+ maxTimeMS: &maxTimeMS 1000
156
+ object: *collection0
157
+ expectEvents:
158
+ - client: *client0
159
+ events:
160
+ - commandStartedEvent:
161
+ command:
162
+ find: *collection0Name
163
+ filter: *filter
164
+ maxTimeMS: *maxTimeMS
165
+ commandName: find
166
+ databaseName: *database0Name
167
+
168
+ - description: "timeoutMS"
169
+ operations:
170
+ - name: find
171
+ arguments:
172
+ filter: *filter
173
+ timeoutMS: &timeoutMS 1000
174
+ object: *collection0
175
+ expectEvents:
176
+ - client: *client0
177
+ events:
178
+ - commandStartedEvent:
179
+ command:
180
+ find: *collection0Name
181
+ filter: *filter
182
+ maxTimeMS: { $$type: [ int ] }
183
+ commandName: find
184
+ databaseName: *database0Name
185
+
186
+ - description: "max"
187
+ operations:
188
+ - name: find
189
+ arguments:
190
+ filter: *filter
191
+ hint: { _id: 1 }
192
+ max: &max { _id: 10 }
193
+ object: *collection0
194
+ expectEvents:
195
+ - client: *client0
196
+ events:
197
+ - commandStartedEvent:
198
+ command:
199
+ find: *collection0Name
200
+ filter: *filter
201
+ max: *max
202
+ commandName: find
203
+ databaseName: *database0Name
204
+
205
+ - description: "min"
206
+ operations:
207
+ - name: createIndex
208
+ object: *collection0
209
+ arguments:
210
+ name: "name_1"
211
+ keys: { name: 1 }
212
+ - name: find
213
+ arguments:
214
+ filter: *filter
215
+ hint: { name: 1 }
216
+ min: &min { name: 'John' }
217
+ object: *collection0
218
+ expectEvents:
219
+ - client: *client0
220
+ events:
221
+ - commandStartedEvent:
222
+ commandName: createIndexes
223
+ - commandStartedEvent:
224
+ command:
225
+ find: *collection0Name
226
+ filter: *filter
227
+ min: *min
228
+ commandName: find
229
+ databaseName: *database0Name
230
+
231
+ - description: "returnKey"
232
+ operations:
233
+ - name: find
234
+ arguments:
235
+ filter: *filter
236
+ returnKey: &returnKey false
237
+ object: *collection0
238
+ expectEvents:
239
+ - client: *client0
240
+ events:
241
+ - commandStartedEvent:
242
+ command:
243
+ find: *collection0Name
244
+ filter: *filter
245
+ returnKey: *returnKey
246
+ commandName: find
247
+ databaseName: *database0Name
248
+
249
+ - description: "showRecordId"
250
+ operations:
251
+ - name: find
252
+ arguments:
253
+ filter: *filter
254
+ showRecordId: &showRecordId false
255
+ object: *collection0
256
+ expectEvents:
257
+ - client: *client0
258
+ events:
259
+ - commandStartedEvent:
260
+ command:
261
+ find: *collection0Name
262
+ filter: *filter
263
+ showRecordId: *showRecordId
264
+ commandName: find
265
+ databaseName: *database0Name
266
+
267
+ - description: "oplogReplay"
268
+ operations:
269
+ - name: find
270
+ arguments:
271
+ filter: *filter
272
+ oplogReplay: &oplogReplay false
273
+ object: *collection0
274
+ expectEvents:
275
+ - client: *client0
276
+ events:
277
+ - commandStartedEvent:
278
+ command:
279
+ find: *collection0Name
280
+ filter: *filter
281
+ oplogReplay: *oplogReplay
282
+ commandName: find
283
+ databaseName: *database0Name
284
+
285
+ - description: "noCursorTimeout"
286
+ operations:
287
+ - name: find
288
+ arguments:
289
+ filter: *filter
290
+ noCursorTimeout: &noCursorTimeout false
291
+ object: *collection0
292
+ expectEvents:
293
+ - client: *client0
294
+ events:
295
+ - commandStartedEvent:
296
+ command:
297
+ find: *collection0Name
298
+ filter: *filter
299
+ noCursorTimeout: *noCursorTimeout
300
+ commandName: find
301
+ databaseName: *database0Name
302
+
303
+ - description: "allowPartialResults"
304
+ operations:
305
+ - name: find
306
+ arguments:
307
+ filter: *filter
308
+ allowPartialResults: &allowPartialResults false
309
+ object: *collection0
310
+ expectEvents:
311
+ - client: *client0
312
+ events:
313
+ - commandStartedEvent:
314
+ command:
315
+ find: *collection0Name
316
+ filter: *filter
317
+ allowPartialResults: *allowPartialResults
318
+ commandName: find
319
+ databaseName: *database0Name
320
+
321
+ - description: "collation"
322
+ operations:
323
+ - name: find
324
+ arguments:
325
+ filter: *filter
326
+ collation: &collation { locale: "en" }
327
+ object: *collection0
328
+ expectEvents:
329
+ - client: *client0
330
+ events:
331
+ - commandStartedEvent:
332
+ command:
333
+ find: *collection0Name
334
+ filter: *filter
335
+ collation: *collation
336
+ commandName: find
337
+ databaseName: *database0Name
338
+
339
+ - description: "allowDiskUse"
340
+ runOnRequirements:
341
+ - minServerVersion: 4.4
342
+ operations:
343
+ - name: find
344
+ arguments:
345
+ filter: *filter
346
+ allowDiskUse: &allowDiskUse true
347
+ object: *collection0
348
+ expectEvents:
349
+ - client: *client0
350
+ events:
351
+ - commandStartedEvent:
352
+ command:
353
+ find: *collection0Name
354
+ filter: *filter
355
+ allowDiskUse: *allowDiskUse
356
+ commandName: find
357
+ databaseName: *database0Name
358
+
359
+ - description: "let"
360
+ runOnRequirements:
361
+ - minServerVersion: "5.0"
362
+ operations:
363
+ - name: find
364
+ arguments:
365
+ filter: *filter
366
+ let: &let { name: "Mary" }
367
+ object: *collection0
368
+ expectEvents:
369
+ - client: *client0
370
+ events:
371
+ - commandStartedEvent:
372
+ command:
373
+ find: *collection0Name
374
+ filter: *filter
375
+ let: *let
376
+ commandName: find
377
+ databaseName: *database0Name
@@ -0,0 +1,64 @@
1
+ description: "createSearchIndex"
2
+ schemaVersion: "1.4"
3
+ createEntities:
4
+ - client:
5
+ id: &client0 client0
6
+ useMultipleMongoses: false
7
+ observeEvents:
8
+ - commandStartedEvent
9
+ - database:
10
+ id: &database0 database0
11
+ client: *client0
12
+ databaseName: *database0
13
+ - collection:
14
+ id: &collection0 collection0
15
+ database: *database0
16
+ collectionName: *collection0
17
+
18
+ runOnRequirements:
19
+ - minServerVersion: "7.0.0"
20
+ topologies: [ replicaset, load-balanced, sharded ]
21
+ serverless: forbid
22
+
23
+ tests:
24
+ - description: "no name provided for an index definition"
25
+ operations:
26
+ - name: createSearchIndex
27
+ object: *collection0
28
+ arguments:
29
+ model: { definition: &definition { mappings: { dynamic: true } } }
30
+ expectError:
31
+ # This test always errors in a non-Atlas environment. The test functions as a unit test by asserting
32
+ # that the driver constructs and sends the correct command.
33
+ # The expected error message was changed in SERVER-83003. Check for the substring "Atlas" shared by both error messages.
34
+ isError: true
35
+ errorContains: Atlas
36
+ expectEvents:
37
+ - client: *client0
38
+ events:
39
+ - commandStartedEvent:
40
+ command:
41
+ createSearchIndexes: *collection0
42
+ indexes: [ { definition: *definition } ]
43
+ $db: *database0
44
+
45
+ - description: "name provided for an index definition"
46
+ operations:
47
+ - name: createSearchIndex
48
+ object: *collection0
49
+ arguments:
50
+ model: { definition: &definition { mappings: { dynamic: true } } , name: 'test index' }
51
+ expectError:
52
+ # This test always errors in a non-Atlas environment. The test functions as a unit test by asserting
53
+ # that the driver constructs and sends the correct command.
54
+ # The expected error message was changed in SERVER-83003. Check for the substring "Atlas" shared by both error messages.
55
+ isError: true
56
+ errorContains: Atlas
57
+ expectEvents:
58
+ - client: *client0
59
+ events:
60
+ - commandStartedEvent:
61
+ command:
62
+ createSearchIndexes: *collection0
63
+ indexes: [ { definition: *definition, name: 'test index' } ]
64
+ $db: *database0
@@ -0,0 +1,86 @@
1
+ description: "createSearchIndexes"
2
+ schemaVersion: "1.4"
3
+ createEntities:
4
+ - client:
5
+ id: &client0 client0
6
+ useMultipleMongoses: false
7
+ observeEvents:
8
+ - commandStartedEvent
9
+ - database:
10
+ id: &database0 database0
11
+ client: *client0
12
+ databaseName: *database0
13
+ - collection:
14
+ id: &collection0 collection0
15
+ database: *database0
16
+ collectionName: *collection0
17
+
18
+ runOnRequirements:
19
+ - minServerVersion: "7.0.0"
20
+ topologies: [ replicaset, load-balanced, sharded ]
21
+ serverless: forbid
22
+
23
+ tests:
24
+ - description: "empty index definition array"
25
+ operations:
26
+ - name: createSearchIndexes
27
+ object: *collection0
28
+ arguments:
29
+ models: []
30
+ expectError:
31
+ # This test always errors in a non-Atlas environment. The test functions as a unit test by asserting
32
+ # that the driver constructs and sends the correct command.
33
+ # The expected error message was changed in SERVER-83003. Check for the substring "Atlas" shared by both error messages.
34
+ isError: true
35
+ errorContains: Atlas
36
+ expectEvents:
37
+ - client: *client0
38
+ events:
39
+ - commandStartedEvent:
40
+ command:
41
+ createSearchIndexes: *collection0
42
+ indexes: []
43
+ $db: *database0
44
+
45
+
46
+ - description: "no name provided for an index definition"
47
+ operations:
48
+ - name: createSearchIndexes
49
+ object: *collection0
50
+ arguments:
51
+ models: [ { definition: &definition { mappings: { dynamic: true } } } ]
52
+ expectError:
53
+ # This test always errors in a non-Atlas environment. The test functions as a unit test by asserting
54
+ # that the driver constructs and sends the correct command.
55
+ # The expected error message was changed in SERVER-83003. Check for the substring "Atlas" shared by both error messages.
56
+ isError: true
57
+ errorContains: Atlas
58
+ expectEvents:
59
+ - client: *client0
60
+ events:
61
+ - commandStartedEvent:
62
+ command:
63
+ createSearchIndexes: *collection0
64
+ indexes: [ { definition: *definition } ]
65
+ $db: *database0
66
+
67
+ - description: "name provided for an index definition"
68
+ operations:
69
+ - name: createSearchIndexes
70
+ object: *collection0
71
+ arguments:
72
+ models: [ { definition: &definition { mappings: { dynamic: true } } , name: 'test index' } ]
73
+ expectError:
74
+ # This test always errors in a non-Atlas environment. The test functions as a unit test by asserting
75
+ # that the driver constructs and sends the correct command.
76
+ # The expected error message was changed in SERVER-83003. Check for the substring "Atlas" shared by both error messages.
77
+ isError: true
78
+ errorContains: Atlas
79
+ expectEvents:
80
+ - client: *client0
81
+ events:
82
+ - commandStartedEvent:
83
+ command:
84
+ createSearchIndexes: *collection0
85
+ indexes: [ { definition: *definition, name: 'test index' } ]
86
+ $db: *database0
@@ -0,0 +1,43 @@
1
+ description: "dropSearchIndex"
2
+ schemaVersion: "1.4"
3
+ createEntities:
4
+ - client:
5
+ id: &client0 client0
6
+ useMultipleMongoses: false
7
+ observeEvents:
8
+ - commandStartedEvent
9
+ - database:
10
+ id: &database0 database0
11
+ client: *client0
12
+ databaseName: *database0
13
+ - collection:
14
+ id: &collection0 collection0
15
+ database: *database0
16
+ collectionName: *collection0
17
+
18
+ runOnRequirements:
19
+ - minServerVersion: "7.0.0"
20
+ topologies: [ replicaset, load-balanced, sharded ]
21
+ serverless: forbid
22
+
23
+ tests:
24
+ - description: "sends the correct command"
25
+ operations:
26
+ - name: dropSearchIndex
27
+ object: *collection0
28
+ arguments:
29
+ name: &indexName 'test index'
30
+ expectError:
31
+ # This test always errors in a non-Atlas environment. The test functions as a unit test by asserting
32
+ # that the driver constructs and sends the correct command.
33
+ # The expected error message was changed in SERVER-83003. Check for the substring "Atlas" shared by both error messages.
34
+ isError: true
35
+ errorContains: Atlas
36
+ expectEvents:
37
+ - client: *client0
38
+ events:
39
+ - commandStartedEvent:
40
+ command:
41
+ dropSearchIndex: *collection0
42
+ name: *indexName
43
+ $db: *database0
@@ -0,0 +1,91 @@
1
+ description: "listSearchIndexes"
2
+ schemaVersion: "1.4"
3
+ createEntities:
4
+ - client:
5
+ id: &client0 client0
6
+ useMultipleMongoses: false
7
+ observeEvents:
8
+ - commandStartedEvent
9
+ - database:
10
+ id: &database0 database0
11
+ client: *client0
12
+ databaseName: *database0
13
+ - collection:
14
+ id: &collection0 collection0
15
+ database: *database0
16
+ collectionName: *collection0
17
+
18
+ runOnRequirements:
19
+ - minServerVersion: "7.0.0"
20
+ topologies: [ replicaset, load-balanced, sharded ]
21
+ serverless: forbid
22
+
23
+ tests:
24
+ - description: "when no name is provided, it does not populate the filter"
25
+ skipReason: https://jira.mongodb.org/browse/DRIVERS-2794
26
+ operations:
27
+ - name: listSearchIndexes
28
+ object: *collection0
29
+ expectError:
30
+ # This test always errors in a non-Atlas environment. The test functions as a unit test by asserting
31
+ # that the driver constructs and sends the correct command.
32
+ # The expected error message was changed in SERVER-83003. Check for the substring "Atlas" shared by both error messages.
33
+ isError: true
34
+ errorContains: Atlas
35
+ expectEvents:
36
+ - client: *client0
37
+ events:
38
+ - commandStartedEvent:
39
+ command:
40
+ aggregate: *collection0
41
+ pipeline:
42
+ - $listSearchIndexes: {}
43
+
44
+ - description: "when a name is provided, it is present in the filter"
45
+ skipReason: https://jira.mongodb.org/browse/DRIVERS-2794
46
+ operations:
47
+ - name: listSearchIndexes
48
+ object: *collection0
49
+ arguments:
50
+ name: &indexName "test index"
51
+ expectError:
52
+ # This test always errors in a non-Atlas environment. The test functions as a unit test by asserting
53
+ # that the driver constructs and sends the correct command.
54
+ # The expected error message was changed in SERVER-83003. Check for the substring "Atlas" shared by both error messages.
55
+ isError: true
56
+ errorContains: Atlas
57
+ expectEvents:
58
+ - client: *client0
59
+ events:
60
+ - commandStartedEvent:
61
+ command:
62
+ aggregate: *collection0
63
+ pipeline:
64
+ - $listSearchIndexes: { name: *indexName }
65
+ $db: *database0
66
+
67
+ - description: aggregation cursor options are supported
68
+ skipReason: https://jira.mongodb.org/browse/DRIVERS-2794
69
+ operations:
70
+ - name: listSearchIndexes
71
+ object: *collection0
72
+ arguments:
73
+ name: &indexName "test index"
74
+ aggregationOptions:
75
+ batchSize: 10
76
+ expectError:
77
+ # This test always errors in a non-Atlas environment. The test functions as a unit test by asserting
78
+ # that the driver constructs and sends the correct command.
79
+ # The expected error message was changed in SERVER-83003. Check for the substring "Atlas" shared by both error messages.
80
+ isError: true
81
+ errorContains: Atlas
82
+ expectEvents:
83
+ - client: *client0
84
+ events:
85
+ - commandStartedEvent:
86
+ command:
87
+ aggregate: *collection0
88
+ cursor: { batchSize: 10 }
89
+ pipeline:
90
+ - $listSearchIndexes: { name: *indexName }
91
+ $db: *database0
@@ -0,0 +1,46 @@
1
+ description: "updateSearchIndex"
2
+ schemaVersion: "1.4"
3
+ createEntities:
4
+ - client:
5
+ id: &client0 client0
6
+ useMultipleMongoses: false
7
+ observeEvents:
8
+ - commandStartedEvent
9
+ - database:
10
+ id: &database0 database0
11
+ client: *client0
12
+ databaseName: *database0
13
+ - collection:
14
+ id: &collection0 collection0
15
+ database: *database0
16
+ collectionName: *collection0
17
+
18
+ runOnRequirements:
19
+ - minServerVersion: "7.0.0"
20
+ topologies: [ replicaset, load-balanced, sharded ]
21
+ serverless: forbid
22
+
23
+ tests:
24
+ - description: "sends the correct command"
25
+ operations:
26
+ - name: updateSearchIndex
27
+ object: *collection0
28
+ arguments:
29
+ name: &indexName 'test index'
30
+ definition: &definition {}
31
+ expectError:
32
+ # This test always errors in a non-Atlas environment. The test functions as a unit test by asserting
33
+ # that the driver constructs and sends the correct command.
34
+ # The expected error message was changed in SERVER-83003. Check for the substring "Atlas" shared by both error messages.
35
+ isError: true
36
+ errorContains: Atlas
37
+ expectEvents:
38
+ - client: *client0
39
+ events:
40
+ - commandStartedEvent:
41
+ command:
42
+ updateSearchIndex: *collection0
43
+ name: *indexName
44
+ definition: *definition
45
+ $db: *database0
46
+