@@ -19,9 +19,9 @@ import {
1919
2020describe ( 'attributeFields' , function ( ) {
2121 var Model ;
22-
22+ var modelName = Math . random ( ) . toString ( ) ;
2323 before ( function ( ) {
24- Model = sequelize . define ( Math . random ( ) . toString ( ) , {
24+ Model = sequelize . define ( modelName , {
2525 email : {
2626 type : Sequelize . STRING ,
2727 allowNull : false
@@ -38,6 +38,9 @@ describe('attributeFields', function () {
3838 enum : {
3939 type : Sequelize . ENUM ( 'first' , 'second' )
4040 } ,
41+ enumTwo : {
42+ type : Sequelize . ENUM ( 'first' , 'second' )
43+ } ,
4144 list : {
4245 type : Sequelize . ARRAY ( Sequelize . STRING )
4346 } ,
@@ -55,7 +58,7 @@ describe('attributeFields', function () {
5558 it ( 'should return fields for a simple model' , function ( ) {
5659 var fields = attributeFields ( Model ) ;
5760
58- expect ( Object . keys ( fields ) ) . to . deep . equal ( [ 'id' , 'email' , 'firstName' , 'lastName' , 'float' , 'enum' , 'list' , 'virtualInteger' , 'virtualBoolean' ] ) ;
61+ expect ( Object . keys ( fields ) ) . to . deep . equal ( [ 'id' , 'email' , 'firstName' , 'lastName' , 'float' , 'enum' , 'enumTwo' , ' list', 'virtualInteger' , 'virtualBoolean' ] ) ;
5962
6063 expect ( fields . id . type ) . to . be . an . instanceOf ( GraphQLNonNull ) ;
6164 expect ( fields . id . type . ofType ) . to . equal ( GraphQLInt ) ;
@@ -69,6 +72,8 @@ describe('attributeFields', function () {
6972
7073 expect ( fields . enum . type ) . to . be . an . instanceOf ( GraphQLEnumType ) ;
7174
75+ expect ( fields . enumTwo . type ) . to . be . an . instanceOf ( GraphQLEnumType ) ;
76+
7277 expect ( fields . list . type ) . to . be . an . instanceOf ( GraphQLList ) ;
7378
7479 expect ( fields . float . type ) . to . equal ( GraphQLFloat ) ;
@@ -80,9 +85,19 @@ describe('attributeFields', function () {
8085
8186 it ( 'should be possible to exclude fields' , function ( ) {
8287 var fields = attributeFields ( Model , {
83- exclude : [ 'id' , 'email' , 'float' , 'enum' , 'list' , 'virtualInteger' , 'virtualBoolean' ]
88+ exclude : [ 'id' , 'email' , 'float' , 'enum' , 'enumTwo' , ' list', 'virtualInteger' , 'virtualBoolean' ]
8489 } ) ;
8590
8691 expect ( Object . keys ( fields ) ) . to . deep . equal ( [ 'firstName' , 'lastName' ] ) ;
8792 } ) ;
93+
94+ it ( 'should automatically name enum types' , function ( ) {
95+ var fields = attributeFields ( Model ) ;
96+
97+ expect ( fields . enum . type . name ) . to . not . be . undefined ;
98+ expect ( fields . enumTwo . type . name ) . to . not . be . undefined ;
99+
100+ expect ( fields . enum . type . name ) . to . equal ( modelName + 'enum' + 'EnumType' ) ;
101+ expect ( fields . enumTwo . type . name ) . to . equal ( modelName + 'enumTwo' + 'EnumType' ) ;
102+ } ) ;
88103} ) ;
0 commit comments