bin*_*n k 6 testing e2e-testing graphql nestjs graphql-mutation
当我通过 graphql-playground 创建我的所有者时,它工作正常,\n但我的测试失败并回复我“body.data.createOwner 未定义”,没有数据。
\n// owner.e2e.spec.ts\ndescribe('Owner test (e2e)', () => {\n let app: INestApplication;\n\n beforeAll(async () => {\n const moduleRef = await Test.createTestingModule({\n imports: [\n GraphQLModule.forRoot({\n autoSchemaFile: join(process.cwd(), 'src/schema.gql'),\n }),\n OwnerModule,\n DatabaseModule\n ]\n }).compile();\n app = moduleRef.createNestApplication();\n await app.init();\n });\n\n afterAll(async () => {\n await app.close();\n })\n\n const createOwnerQuery = `\n mutation createOwner($OwnerInput: OwnerInput!) {\n createOwner(ownerInput: $OwnerInput) {\n _id\n name\n firstname\n email\n password\n firstsub\n expsub\n createdAt\n updatedAt\n }\n }\n `;\n \n let id: string = '';\n\n it('createOwner', () => {\n return request(app.getHttpServer())\n .post('/graphql')\n .send({\n operationName: 'createOwner',\n variables: {\n OwnerInput: {\n name: 'adar',\n firstname: 'adar',\n email: 'adar@test.com',\n password: 'testing',\n firstsub: '2020-08-14',\n expsub: '2020-07-13'\n }\n },\n query: createOwnerQuery,\n })\n .expect(({ body }) => {\n const data = body.data.createOwner <-- test fail at this line\n id = data._id\n expect(data.name).toBe(owner.name)\n expect(data.email).toBe(owner.email)\n expect(data.firstsub).toBe(owner.firstsub)\n })\n .expect(200)\n })\nRun Code Online (Sandbox Code Playgroud)\n// Output terminal\n\n FAIL test/owner.e2e-spec.ts (9.567 s)\n Owner test (e2e)\n \xe2\x9c\x95 createOwner (79 ms)\n\n \xe2\x97\x8f Owner test (e2e) \xe2\x80\xba createOwner\n\n TypeError: Cannot read property 'createOwner' of undefined\n\n 98 | })\n 99 | .expect(({ body }) => {\n > 100 | const data = body.data.createOwner\n | ^\n 101 | id = data._id\n 102 | expect(data.name).toBe(owner.name)\n 103 | expect(data.email).toBe(owner.email)\n\n at owner.e2e-spec.ts:100:40\n at Test._assertFunction (../node_modules/supertest/lib/test.js:283:11)\n at Test.assert (../node_modules/supertest/lib/test.js:173:18)\n at Server.localAssert (../node_modules/supertest/lib/test.js:131:12)\n\nTest Suites: 1 failed, 1 total\nTests: 1 failed, 1 total\nSnapshots: 0 total\nTime: 9.645 s, estimated 10 s\nRan all test suites.\nRun Code Online (Sandbox Code Playgroud)\n
我的问题来自 CLI 插件,它会自动生成可为空的 Graphql 字段,而无需将 @Field 装饰器放入我的 ObjectType 中。
Nest的创建者针对这个问题给出了一个技巧。
--> https://github.com/nestjs/graphql/issues/810
但这对我不起作用,所以我只是将“@Field”装饰器添加到模型 @ObjectType() 中的所有属性。
| 归档时间: |
|
| 查看次数: |
5426 次 |
| 最近记录: |