Skip to content

Commit 57834e2

Browse files
test(types): add test re#11544
1 parent cda9c97 commit 57834e2

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

test/types/populate.test.ts

+20-4
Original file line numberDiff line numberDiff line change
@@ -164,21 +164,37 @@ function gh11503() {
164164
interface User {
165165
friends: Types.ObjectId[];
166166
}
167-
const UserSchema = new Schema<User>({
167+
const userSchema = new Schema<User>({
168168
friends: [{ type: Schema.Types.ObjectId, ref: 'friends' }]
169169
});
170-
const Users = model<User>('friends', UserSchema);
170+
const User = model<User>('friends', userSchema);
171171

172-
Users.findOne({}).populate('friends').then(user => {
172+
User.findOne({}).populate('friends').then(user => {
173173
expectType<Types.ObjectId | undefined>(user?.friends[0]);
174174
expectError(user?.friends[0].blocked);
175175
expectError(user?.friends.map(friend => friend.blocked));
176176
});
177177

178-
Users.findOne({}).populate<{friends: Friend[]}>('friends').then(user => {
178+
User.findOne({}).populate<{friends: Friend[]}>('friends').then(user => {
179179
expectAssignable<Friend>(user?.friends[0]);
180180
expectType<boolean>(user?.friends[0].blocked);
181181
const firstFriendBlockedValue = user?.friends.map(friend => friend)[0];
182182
expectType<boolean>(firstFriendBlockedValue?.blocked);
183183
});
184+
}
185+
186+
187+
function gh11544() {
188+
189+
interface User {
190+
friends: Types.ObjectId[];
191+
}
192+
const userSchema = new Schema<User>({
193+
friends: [{ type: Schema.Types.ObjectId, ref: 'friends' }]
194+
});
195+
const User = model<User>('friends', userSchema);
196+
197+
User.findOne({}).populate({ path: 'friends', strictPopulate: false });
198+
User.findOne({}).populate({ path: 'friends', strictPopulate: true });
199+
User.findOne({}).populate({ path: 'friends', populate: { path: 'someNestedPath', strictPopulate: false } });
184200
}

0 commit comments

Comments
 (0)