- fix test: 'mongo-livedata - upsert handles dotted selectors corrrectly'

This commit is contained in:
denihs
2023-02-15 18:42:13 -04:00
parent 99399d5f51
commit 1c45d14b14

View File

@@ -3316,135 +3316,164 @@ if (Meteor.isServer) {
}
);
Tinytest.add("mongo-livedata - upsert handles dotted selectors corrrectly", function (test) {
var collection = new Mongo.Collection(Random.id());
Tinytest.addAsync(
'mongo-livedata - upsert handles dotted selectors corrrectly',
async function(test) {
var collection = new Mongo.Collection(Random.id());
var result1 = collection.upsert({
"subdocument.a": 1
}, {
$set: {message: "upsert 1"}
});
var result1 = await collection.upsertAsync(
{
'subdocument.a': 1,
},
{
$set: { message: 'upsert 1' },
}
);
test.equal(collection.findOne(result1.insertedId),{
_id: result1.insertedId,
subdocument: {a: 1},
message: "upsert 1"
});
test.equal(await collection.findOneAsync(result1.insertedId), {
_id: result1.insertedId,
subdocument: { a: 1 },
message: 'upsert 1',
});
var result2 = collection.upsert({
"subdocument.a": 1
}, {
$set: {message: "upsert 2"}
});
var result2 = await collection.upsertAsync(
{
'subdocument.a': 1,
},
{
$set: { message: 'upsert 2' },
}
);
test.equal(result2, {numberAffected: 1});
test.equal(result2, { numberAffected: 1 });
test.equal(collection.findOne(result1.insertedId),{
_id: result1.insertedId,
subdocument: {a: 1},
message: "upsert 2"
});
test.equal(await collection.findOneAsync(result1.insertedId), {
_id: result1.insertedId,
subdocument: { a: 1 },
message: 'upsert 2',
});
var result3 = collection.upsert({
"subdocument.a.b": 1,
"subdocument.c": 2
}, {
$set: {message: "upsert3"}
});
var result3 = await collection.upsertAsync(
{
'subdocument.a.b': 1,
'subdocument.c': 2,
},
{
$set: { message: 'upsert3' },
}
);
test.equal(collection.findOne(result3.insertedId),{
_id: result3.insertedId,
subdocument: {a: {b: 1}, c: 2},
message: "upsert3"
});
test.equal(await collection.findOneAsync(result3.insertedId), {
_id: result3.insertedId,
subdocument: { a: { b: 1 }, c: 2 },
message: 'upsert3',
});
var result4 = collection.upsert({
"subdocument.a": 4
}, {
$set: {"subdocument.a": "upsert 4"}
});
var result4 = await collection.upsertAsync(
{
'subdocument.a': 4,
},
{
$set: { 'subdocument.a': 'upsert 4' },
}
);
test.equal(collection.findOne(result4.insertedId), {
_id: result4.insertedId,
subdocument: {a: "upsert 4"}
});
test.equal(await collection.findOneAsync(result4.insertedId), {
_id: result4.insertedId,
subdocument: { a: 'upsert 4' },
});
var result5 = collection.upsert({
"subdocument.a": "upsert 4"
}, {
$set: {"subdocument.a": "upsert 5"}
});
var result5 = await collection.upsertAsync(
{
'subdocument.a': 'upsert 4',
},
{
$set: { 'subdocument.a': 'upsert 5' },
}
);
test.equal(result5, {numberAffected: 1});
test.equal(result5, { numberAffected: 1 });
test.equal(collection.findOne(result4.insertedId), {
_id: result4.insertedId,
subdocument: {a: "upsert 5"}
});
test.equal(await collection.findOneAsync(result4.insertedId), {
_id: result4.insertedId,
subdocument: { a: 'upsert 5' },
});
var result6 = collection.upsert({
"subdocument.a": "upsert 5"
}, {
$set: {"subdocument": "upsert 6"}
});
var result6 = await collection.upsertAsync(
{
'subdocument.a': 'upsert 5',
},
{
$set: { subdocument: 'upsert 6' },
}
);
test.equal(result6, {numberAffected: 1});
test.equal(result6, { numberAffected: 1 });
test.equal(collection.findOne(result4.insertedId), {
_id: result4.insertedId,
subdocument: "upsert 6"
});
test.equal(await collection.findOneAsync(result4.insertedId), {
_id: result4.insertedId,
subdocument: 'upsert 6',
});
var result7 = collection.upsert({
"subdocument.a.b": 7
}, {
$set: {
"subdocument.a.c": "upsert7"
}
});
var result7 = await collection.upsertAsync(
{
'subdocument.a.b': 7,
},
{
$set: {
'subdocument.a.c': 'upsert7',
},
}
);
test.equal(collection.findOne(result7.insertedId), {
_id: result7.insertedId,
subdocument: {
a: {b: 7, c: "upsert7"}
}
});
test.equal(await collection.findOneAsync(result7.insertedId), {
_id: result7.insertedId,
subdocument: {
a: { b: 7, c: 'upsert7' },
},
});
var result8 = collection.upsert({
"subdocument.a.b": 7
}, {
$set: {
"subdocument.a.c": "upsert8"
}
});
var result8 = await collection.upsertAsync(
{
'subdocument.a.b': 7,
},
{
$set: {
'subdocument.a.c': 'upsert8',
},
}
);
test.equal(result8, {numberAffected: 1});
test.equal(result8, { numberAffected: 1 });
test.equal(collection.findOne(result7.insertedId), {
_id: result7.insertedId,
subdocument: {
a: {b: 7, c: "upsert8"}
}
});
test.equal(await collection.findOneAsync(result7.insertedId), {
_id: result7.insertedId,
subdocument: {
a: { b: 7, c: 'upsert8' },
},
});
var result9 = collection.upsert({
"subdocument.a.b": 7
}, {
$set: {
"subdocument.a.b": "upsert9"
}
});
var result9 = await collection.upsertAsync(
{
'subdocument.a.b': 7,
},
{
$set: {
'subdocument.a.b': 'upsert9',
},
}
);
test.equal(result9, {numberAffected: 1});
test.equal(result9, { numberAffected: 1 });
test.equal(collection.findOne(result7.insertedId), {
_id: result7.insertedId,
subdocument: {
a: {b: "upsert9", c: "upsert8"}
}
});
});
test.equal(await collection.findOneAsync(result7.insertedId), {
_id: result7.insertedId,
subdocument: {
a: { b: 'upsert9', c: 'upsert8' },
},
});
}
);
}
// This is a VERY white-box test.