Skip to content

Commit 0493811

Browse files
committed
test(FieldConverter): add User.period as an array
1 parent 18ad740 commit 0493811

File tree

3 files changed

+20
-12
lines changed

3 files changed

+20
-12
lines changed

src/__mocks__/userModel.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ const UserSchema = new Schema(
8383
description: "Some mixed value, that served with @taion's `graphql-type-json`",
8484
},
8585

86+
periods: [{ from: Number, to: Number }],
87+
8688
// createdAt, created via option `timastamp: true` (see bottom)
8789
// updatedAt, created via option `timastamp: true` (see bottom)
8890
},
@@ -96,7 +98,8 @@ const UserSchema = new Schema(
9698
UserSchema.set('autoIndex', false);
9799
UserSchema.index({ name: 1, age: -1 });
98100

99-
UserSchema.virtual('nameVirtual').get(function () { // eslint-disable-line
101+
UserSchema.virtual('nameVirtual').get(function() {
102+
// eslint-disable-line
100103
return `VirtualFieldValue${this._id}`;
101104
});
102105

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ Array [
1212
"gender",
1313
"relocation",
1414
"languages",
15+
"periods",
1516
"createdAt",
1617
"updatedAt",
1718
"__v",

src/__tests__/fieldConverter-test.js

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ describe('fieldConverter', () => {
6969

7070
it('should derive DOCUMENT_ARRAY', () => {
7171
expect(deriveComplexType(fields.languages)).toBe(ComplexTypes.DOCUMENT_ARRAY);
72+
expect(deriveComplexType(fields.periods)).toBe(ComplexTypes.DOCUMENT_ARRAY);
7273
});
7374

7475
it('should derive EMBEDDED', () => {
@@ -197,21 +198,24 @@ describe('fieldConverter', () => {
197198
});
198199

199200
describe('documentArrayToGraphQL()', () => {
200-
const languagesTypeAsList = documentArrayToGraphQL(fields.languages, '', schemaComposer);
201-
const languagesType = languagesTypeAsList[0];
202-
const languagesFields = languagesType.getFields();
201+
it('test schema as array', () => {
202+
const languagesTypeAsList = documentArrayToGraphQL(fields.languages, '', schemaComposer);
203+
const languagesType = languagesTypeAsList[0];
204+
const languagesFields = languagesType.getFields();
203205

204-
it('should produce GraphQLList', () => {
205206
expect(Array.isArray(languagesTypeAsList)).toBeTruthy();
207+
expect(languagesType.getTypeName()).toBe('Languages');
208+
expect(languagesFields._id).toBeTruthy();
206209
});
207210

208-
it('should has Language type in ofType', () => {
209-
// see src/__mocks__/languageSchema.js where type name `Language` is defined
210-
expect(languagesType.getTypeName()).toBe('Language');
211-
});
212-
213-
it('should include pseudo mongoose _id field in document', () => {
214-
expect(languagesFields._id).toBeTruthy();
211+
it('test object as array', () => {
212+
const periodsTypeAsList = documentArrayToGraphQL(fields.periods, '', schemaComposer);
213+
const periodsType = periodsTypeAsList[0];
214+
const periodsFields = periodsType.getFields();
215+
expect(Array.isArray(periodsTypeAsList)).toBeTruthy();
216+
expect(periodsType.getTypeName()).toBe('Periods');
217+
expect(periodsFields.from).toBeTruthy();
218+
expect(periodsFields.to).toBeTruthy();
215219
});
216220
});
217221

0 commit comments

Comments
 (0)