Nest js Graphql загружать тест интеграции изображений с помощью супер-тест? - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь написать тест для распознавателя графических изображений для загрузки и не могу найти ни одного примера того, как это сделать правильно. Я использую библиотеку 'graphql-upload', но каждый раз, когда я пытаюсь отправить файл из теста, используя fs.createReadStream (path_to_test_file) и пытаюсь отправить его через супертест в резольвере, createReadStream всегда пуст. test

const file = fs.createReadStream(Path.join(__dirname, '/logo.png'));
      await request(app.getHttpServer())
        .post('/graphql')
        .set({ Authorization: `Bearer ${token}` })
        .send({
          operationName: null,
          query: `
          mutation($profileImage: Upload!) {
            uploadProfileImage(profileImage: $profileImage) {
              filename
              path
            }
          }
        `,
          variables: {
            profileImage: file
          }
        })
        .expect(({ body }) => {
          console.log(body);
        })
        .expect(200);

resolver

async uploadProfileImage(
    @Args({ name: 'profileImage', type: () => GraphQLUpload }) profileImage
  ): Promise<any> {
    const { filename, createReadStream } = profileImage;

    await new Promise(async (resolve, reject) =>
      createReadStream() ----> ALWAYS EMPTY
        .pipe(createWriteStream(Path.join(__dirname, `/uploads/${filename}`)))
        .on('finish', data => {
          console.log('here', data);
          resolve(true);
        })
        .on('error', error => {
          console.error(error);
          reject(false);
        })
    );

    return ;
  }

Я что-то упустил? Можно ли даже проверить загрузку файла graphql с помощью супертеста? Некоторая помощь была бы потрясающей !! Спасибо всем

...