类型错误:无法读取未定义的 faker-js faker 的属性“uuid”

问题描述 投票:0回答:3

我正在尝试使用 faker-js 包,但我意外地为我的变量

TypeError: Cannot read property 'uuid' of undefined
获得了
businessId
,它尝试使用
faker.datatype.uuid()

通常会在我忘记安装

faker-js
时发生,但这里不是这种情况,我检查是否导入了这个包。因此我对我在这里做错了什么一无所知。

// eslint-disable-next-line import/order
const { initConfig } = require('../../../config');

initConfig();

const sinon = require('sinon');
const faker = require('@faker-js/faker');
const { retryAsyncCall } = require('../../../src/common/helpers/retry-async');
const { createFacebookAdVideoFromUrl } = require('../../../src/common/controllers/facebook/api');

function createPayloadDataBuilder(payload = {}) {
  const template = {
    accountId: faker.datatype.uuid(),
    publicLink: faker.internet.url(),
    videoName: faker.lorem.word(),
    facebookToken: undefined,
    params: null,
    businessId: faker.datatype.uuid(),
  };
  return { ...payload, ...template };
}

describe('Facebook Gateway', () => {
  describe('createFacebookAdVideoFromUrl', () => {
    describe('Given businessId', () => {
      it.only("should create the video calling business's Facebook ids", async () => {
        const businessId = faker.datatype.uuid();
        console.log(faker, businessId);
        const createFacebookAdVideoPayload = createPayloadDataBuilder({
          businessId,
        });

        await createFacebookAdVideoFromUrl(...createFacebookAdVideoPayload);

        // sinon.assert.called(retryAsyncCall);
      });
    });
  });
});
javascript node.js testing requirejs faker.js
3个回答
9
投票

找到了!我需要解构导入:

const { faker } = require('@faker-js/faker');


3
投票

faker.random.uuid()
已移至
faker.datatype.uuid()

请参阅文档:https://fakerjs.dev/api/datatype.html#uuid


0
投票

看起来最新版本(v9.4.0)已再次将其移至

faker.string.uuid()

https://fakerjs.dev/api/string.html#uuid

© www.soinside.com 2019 - 2024. All rights reserved.