Тестирование схемы GraphQL: от схемы к типу объекта - PullRequest
0 голосов
/ 10 декабря 2018

Я хочу проверить мою базовую GraphQLSchema, если в моем ObjectType есть определенное поле.

Следующие TypeDefs у меня есть.

export const categoryTypeDefs = `
  type Category {
    _id: ID!
    name: String!
  } ... ` 

В настоящее время тест выглядит следующим образом.

describe('Category Schema', () => {
        const categorySchema = graphql.buildSchema(categoryTypeDefs)
        it('Should have an Category field of type String', () => {
            expect(categorySchema.getTypeMap).to.have.property("name");
        })
    })

Теперь мой вопрос: есть ли возможность получить из моей схемы ObjectType категории и получить доступ к методу ".getFields ()".В конце я хочу следующие тесты.

expect(categoryType.getFields()).to.have.property('name');
expect(categoryType.getFields().name.type).to.deep.equals(graphql.GraphQLString);

1 Ответ

0 голосов
/ 10 декабря 2018

Хорошо, тогда решение оказалось проще, чем я ожидал.Нам просто нужно привести преобразование getType к GraphQLObjectType в TypeScript.

Так что всякий раз, когда у кого-то возникает такая же проблема.

describe('Category Schema', () => {
    it('Should have an Name field of type String', () => {
        let testType = schema.getType('Category') as GraphQLObjectType;

        expect(testType.getFields()).to.have.property("name");
        expect(testType.getFields().name.type).to.deep.equals(GraphQLString)
    })
})
...