Skip to content

Commit 60af931

Browse files
RUBY-2876 Add test for let options for replace_one (#2405)
1 parent 836ad5f commit 60af931

File tree

2 files changed

+95
-0
lines changed

2 files changed

+95
-0
lines changed

spec/runners/unified/crud_operations.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ def replace_one(op)
164164
args.use!('filter'),
165165
args.use!('replacement'),
166166
upsert: args.use('upsert'),
167+
let: args.use('let')
167168
)
168169
end
169170
end
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
description: "replaceOne-let"
2+
3+
schemaVersion: "1.0"
4+
5+
createEntities:
6+
- client:
7+
id: &client0 client0
8+
observeEvents: [ commandStartedEvent ]
9+
- database:
10+
id: &database0 database0
11+
client: *client0
12+
databaseName: &database0Name crud-tests
13+
- collection:
14+
id: &collection0 collection0
15+
database: *database0
16+
collectionName: &collection0Name coll0
17+
18+
initialData: &initialData
19+
- collectionName: *collection0Name
20+
databaseName: *database0Name
21+
documents:
22+
- { _id: 1 }
23+
- { _id: 2 }
24+
25+
tests:
26+
- description: "ReplaceOne with let option"
27+
runOnRequirements:
28+
- minServerVersion: "5.0"
29+
operations:
30+
- name: replaceOne
31+
object: *collection0
32+
arguments:
33+
filter: &filter
34+
$expr:
35+
$eq: [ "$_id", "$$id" ]
36+
replacement: &replacement
37+
x: "foo"
38+
let: &let
39+
id: 1
40+
expectResult:
41+
matchedCount: 1
42+
modifiedCount: 1
43+
upsertedCount: 0
44+
expectEvents:
45+
- client: *client0
46+
events:
47+
- commandStartedEvent:
48+
command:
49+
update: *collection0Name
50+
updates:
51+
-
52+
q: *filter
53+
u: *replacement
54+
let: *let
55+
outcome:
56+
-
57+
collectionName: *collection0Name
58+
databaseName: *database0Name
59+
documents:
60+
- { _id: 1, x: "foo" }
61+
- { _id: 2 }
62+
63+
- description: "ReplaceOne with let option unsupported (server-side error)"
64+
runOnRequirements:
65+
- minServerVersion: "3.6.0"
66+
maxServerVersion: "4.4.99"
67+
operations:
68+
- name: replaceOne
69+
object: *collection0
70+
arguments:
71+
filter: *filter
72+
replacement: *replacement
73+
let: *let
74+
expectError:
75+
errorContains: "'update.let' is an unknown field"
76+
isClientError: false
77+
expectEvents:
78+
- client: *client0
79+
events:
80+
- commandStartedEvent:
81+
command:
82+
update: *collection0Name
83+
updates:
84+
-
85+
q: *filter
86+
u: *replacement
87+
let: *let
88+
outcome:
89+
-
90+
collectionName: *collection0Name
91+
databaseName: *database0Name
92+
documents:
93+
- { _id: 1 }
94+
- { _id: 2 }

0 commit comments

Comments
 (0)