如果特定的字段位于我的ObjectType上,我想对GraphQLSchema进行非常基本的测试。
我拥有以下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");
})
})
现在我的问题是,是否有可能从我的模式中获取Category的ObjectType并访问方法“ .getFields()”。最后,我要进行测试。
expect(categoryType.getFields()).to.have.property('name');
expect(categoryType.getFields().name.type).to.deep.equals(graphql.GraphQLString);
答案 0 :(得分:0)
好的,然后解决方案比我预期的要容易。我们只需要将TypeType中getType的返回值转换为GraphQLObjectType。
所以只要有人遇到相同的问题。
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)
})
})