Skip to content

Commit 9a90b82

Browse files
committed
feat: add support for mongoose@5.0.0
1 parent d9bc9c2 commit 9a90b82

File tree

6 files changed

+35
-17
lines changed

6 files changed

+35
-17
lines changed

src/__mocks__/mongooseCommon.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ mongoose.connect = async () => {
1414

1515
const mongoUri = await mongoServer.getConnectionString(true);
1616

17-
originalConnect.bind(mongoose)(mongoUri, { useMongoClient: true });
17+
// originalConnect.bind(mongoose)(mongoUri, { useMongoClient: true }); // mongoose 4
18+
originalConnect.bind(mongoose)(mongoUri); // mongoose 5
1819

1920
mongoose.connection.on('error', e => {
2021
if (e.message.code === 'ETIMEDOUT') {

src/__tests__/__snapshots__/integration-test.js.snap

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
11
// Jest Snapshot v1, https://goo.gl/fbAQLP
22

3-
exports[`projection from all fields 1`] = `
3+
exports[`integration tests projection should request all fields to rawData field: projection from all fields 1`] = `
44
Array [
5+
"users",
6+
"skills",
7+
"employment",
8+
"contacts",
9+
"languages",
510
"_id",
6-
"updatedAt",
7-
"createdAt",
811
"name",
912
"age",
1013
"gender",
1114
"relocation",
15+
"createdAt",
16+
"updatedAt",
1217
"__v",
13-
"languages",
14-
"contacts",
15-
"employment",
16-
"skills",
17-
"users",
1818
"nameVirtual",
1919
"id",
2020
]
2121
`;
2222

23-
exports[`projection from query fields 1`] = `
23+
exports[`integration tests projection should request only fields from query: projection from query fields 1`] = `
2424
Object {
2525
"data": Object {
2626
"user": Object {

src/__tests__/fieldConverter-test.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
/* @flow */
22
/* eslint-disable no-unused-expressions, no-template-curly-in-string */
33

4-
import { GraphQLDate, GraphQLBuffer, GraphQLGeneric, GraphQLJSON } from 'graphql-compose';
4+
import {
5+
GraphQLDate,
6+
GraphQLBuffer,
7+
GraphQLGeneric,
8+
GraphQLJSON,
9+
EnumTypeComposer,
10+
} from 'graphql-compose';
511
import {
612
GraphQLString,
713
GraphQLFloat,
@@ -172,8 +178,9 @@ describe('fieldConverter', () => {
172178

173179
it('should pass all enum values to GQ type', () => {
174180
const genderEnum: any = enumToGraphQL(fields.gender);
175-
expect(genderEnum._values.length).toBe(fields.gender.enumValues.length);
176-
expect(genderEnum._values[0].value).toBe(fields.gender.enumValues[0]);
181+
const etc = EnumTypeComposer.create(genderEnum);
182+
expect(etc.getFieldNames().length).toBe(fields.gender.enumValues.length);
183+
expect(etc.getField('male').value).toBe(fields.gender.enumValues[0]);
177184
});
178185
});
179186

src/__tests__/github-issues-test.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ import { composeWithMongoose } from '../index';
99
jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000;
1010

1111
let mongoServer;
12-
const opts = { useMongoClient: true };
12+
13+
// const opts = { useMongoClient: true }; // Mongoose 4
14+
const opts = {}; // Mongoose 5
1315

1416
beforeAll(async () => {
1517
mongoServer = new MongodbMemoryServer();

src/resolvers/helpers/__tests__/sort-test.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/* @flow */
22

3+
import { EnumTypeComposer } from 'graphql-compose';
34
import { GraphQLEnumType } from 'graphql-compose/lib/graphql';
45
import { sortHelperArgs, sortHelper, getSortTypeFromModel } from '../sort';
56
import { UserModel } from '../../../__mocks__/userModel';
@@ -32,7 +33,8 @@ describe('Resolver helper `sort` ->', () => {
3233

3334
// only indexed fields in enum
3435
const ascDescNum = indexedFields.length * 2;
35-
expect(type._values).toHaveLength(ascDescNum);
36+
const etc = EnumTypeComposer.create(type);
37+
expect(etc.getFieldNames()).toHaveLength(ascDescNum);
3638

3739
// should have ASC DESC keys
3840
const enumNames = type._values.map(enumConfig => enumConfig.name);

src/resolvers/removeMany.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,19 @@ export default function removeMany(
7474
? Promise.resolve(resolveParams.beforeQuery(resolveParams.query, resolveParams))
7575
: resolveParams.query.exec()
7676
).then(res => {
77-
if (res.result && res.result.ok) {
77+
if (res.ok) {
78+
// mongoose 5
79+
return {
80+
numAffected: res.n,
81+
};
82+
} else if (res.result && res.result.ok) {
83+
// mongoose 4
7884
return {
7985
numAffected: res.result.n,
8086
};
8187
}
8288

83-
return Promise.reject(res);
89+
return Promise.reject(new Error(JSON.stringify(res)));
8490
})
8591
);
8692
},

0 commit comments

Comments
 (0)