Skip to content

Commit 3b610f4

Browse files
committed
test: create test cases for convertModelToGraphQL()
1 parent ce596d4 commit 3b610f4

File tree

9 files changed

+68
-9
lines changed

9 files changed

+68
-9
lines changed

src/__mocks__/mongooseCommon.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ mongoose.connect = (async () => {
1717
const mongoUri = await mongoServer.getConnectionString(true);
1818

1919
// originalConnect.bind(mongoose)(mongoUri, { useMongoClient: true }); // mongoose 4
20-
originalConnect.bind(mongoose)(mongoUri, { useNewUrlParser: true }); // mongoose 5
20+
originalConnect.bind(mongoose)(mongoUri, { useNewUrlParser: true, useUnifiedTopology: true }); // mongoose 5
2121

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

src/__tests__/fieldConverter-test.js

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

4-
import { EnumTypeComposer, schemaComposer, ListComposer } from 'graphql-compose';
4+
import { EnumTypeComposer, schemaComposer, ListComposer, SchemaComposer } from 'graphql-compose';
55
import { UserModel } from '../__mocks__/userModel';
66
import {
77
deriveComplexType,
@@ -14,6 +14,7 @@ import {
1414
enumToGraphQL,
1515
documentArrayToGraphQL,
1616
referenceToGraphQL,
17+
convertModelToGraphQL,
1718
} from '../fieldsConverter';
1819
import GraphQLMongoID from '../types/mongoid';
1920
import GraphQLBSONDecimal from '../types/bsonDecimal';
@@ -252,4 +253,62 @@ describe('fieldConverter', () => {
252253
expect(referenceToGraphQL(fields.user)).toBe('MongoID');
253254
});
254255
});
256+
257+
describe('convertModelToGraphQL()', () => {
258+
const sc = new SchemaComposer();
259+
const tc = convertModelToGraphQL(UserModel, 'User', sc);
260+
261+
it('should work with String', () => {
262+
expect(tc.getFieldTypeName('name')).toBe('String');
263+
expect(tc.getFieldTypeName('skills')).toBe('[String]');
264+
});
265+
266+
it('should work with Number', () => {
267+
expect(tc.getFieldTypeName('age')).toBe('Float');
268+
});
269+
270+
it('should work with ObjectId', () => {
271+
expect(tc.getFieldTypeName('user')).toBe('MongoID');
272+
});
273+
274+
it('should work with Enum', () => {
275+
expect((tc: any).getFieldTC('gender').getFieldNames()).toEqual(['male', 'female', 'ladyboy']);
276+
277+
expect((tc: any).getFieldTC('employment').getFieldNames()).toEqual([
278+
'full',
279+
'partial',
280+
'remote',
281+
]);
282+
});
283+
284+
it('should work with Boolean', () => {
285+
expect(tc.getFieldTypeName('relocation')).toBe('Boolean');
286+
});
287+
288+
it('should extract sub schemas', () => {
289+
const contactsTC = tc.getFieldOTC('contacts');
290+
expect(contactsTC.getFieldNames()).toEqual(['phones', 'email', 'skype', 'locationId', '_id']);
291+
});
292+
293+
it('should skip __secretField', () => {
294+
expect(tc.hasField('__secretField')).toBeFalsy();
295+
});
296+
297+
it('should work with Mixed', () => {
298+
expect(tc.getFieldTypeName('someDynamic')).toBe('JSON');
299+
});
300+
301+
it('should work with Array', () => {
302+
expect(tc.getFieldTypeName('periods')).toBe('[UserPeriods]');
303+
expect(sc.getOTC('UserPeriods').getFieldNames()).toEqual(['from', 'to', '_id']);
304+
305+
expect(tc.getFieldTypeName('someDeep')).toBe('UserSomeDeep');
306+
expect(tc.getFieldOTC('someDeep').getFieldTypeName('periods')).toBe('[UserSomeDeepPeriods]');
307+
expect(sc.getOTC('UserSomeDeepPeriods').getFieldNames()).toEqual(['from', 'to', '_id']);
308+
});
309+
310+
it('should work with Decimal128', () => {
311+
expect(tc.getFieldTypeName('salary')).toBe('BSONDecimal');
312+
});
313+
});
255314
});

src/__tests__/github_issues/117-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ let mongoServer;
1111
beforeAll(async () => {
1212
mongoServer = new MongodbMemoryServer();
1313
const mongoUri = await mongoServer.getConnectionString();
14-
await mongoose.connect(mongoUri, { useNewUrlParser: true });
14+
await mongoose.connect(mongoUri, { useNewUrlParser: true, useUnifiedTopology: true });
1515
});
1616

1717
afterAll(() => {

src/__tests__/github_issues/120-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ let mongoServer;
99
beforeAll(async () => {
1010
mongoServer = new MongodbMemoryServer();
1111
const mongoUri = await mongoServer.getConnectionString();
12-
await mongoose.connect(mongoUri, { useNewUrlParser: true });
12+
await mongoose.connect(mongoUri, { useNewUrlParser: true, useUnifiedTopology: true });
1313
// mongoose.set('debug', true);
1414
});
1515

src/__tests__/github_issues/128-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ let mongoServer;
99
beforeAll(async () => {
1010
mongoServer = new MongodbMemoryServer();
1111
const mongoUri = await mongoServer.getConnectionString();
12-
await mongoose.connect(mongoUri, { useNewUrlParser: true });
12+
await mongoose.connect(mongoUri, { useNewUrlParser: true, useUnifiedTopology: true });
1313
// mongoose.set('debug', true);
1414
});
1515

src/__tests__/github_issues/135-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ let mongoServer;
1010
beforeAll(async () => {
1111
mongoServer = new MongodbMemoryServer();
1212
const mongoUri = await mongoServer.getConnectionString();
13-
await mongoose.connect(mongoUri, { useNewUrlParser: true });
13+
await mongoose.connect(mongoUri, { useNewUrlParser: true, useUnifiedTopology: true });
1414
// mongoose.set('debug', true);
1515
});
1616

src/__tests__/github_issues/136-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ let mongoServer;
1010
beforeAll(async () => {
1111
mongoServer = new MongodbMemoryServer();
1212
const mongoUri = await mongoServer.getConnectionString();
13-
await mongoose.connect(mongoUri, { useNewUrlParser: true });
13+
await mongoose.connect(mongoUri, { useNewUrlParser: true, useUnifiedTopology: true });
1414
// mongoose.set('debug', true);
1515
});
1616

src/__tests__/github_issues/157-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ let mongoServer;
1010
beforeAll(async () => {
1111
mongoServer = new MongodbMemoryServer();
1212
const mongoUri = await mongoServer.getConnectionString();
13-
await mongoose.connect(mongoUri, { useNewUrlParser: true });
13+
await mongoose.connect(mongoUri, { useNewUrlParser: true, useUnifiedTopology: true });
1414
// mongoose.set('debug', true);
1515
});
1616

src/__tests__/github_issues/78-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ let mongoServer;
99
beforeAll(async () => {
1010
mongoServer = new MongodbMemoryServer();
1111
const mongoUri = await mongoServer.getConnectionString();
12-
await mongoose.connect(mongoUri, { useNewUrlParser: true });
12+
await mongoose.connect(mongoUri, { useNewUrlParser: true, useUnifiedTopology: true });
1313
});
1414

1515
afterAll(() => {

0 commit comments

Comments
 (0)