Hi i'm testing a function with few function dependencies been mocked and when i run the test it always returns undefined i've even debugged it and didn't understand the cause. it happens on the method of repistory typeorm "repository.save".
here is the code:
const oneCrop = new Crop();
oneCrop.id = expect.any(Number);
oneCrop.name = "avocado";
oneCrop.color = "green";
oneCrop.typeId = 1;
oneCrop.type = expect.any(CropType);
oneCrop.strains = expect.any(Array<CropStrain>);
const updateCrop = new Crop;
updateCrop.id = expect.any(Number);
updateCrop.name = "banana";
updateCrop.color = "yellow";
updateCrop.typeId = 3;
updateCrop.type = expect.any(CropType);
updateCrop.strains = expect.any(Array<CropStrain>);
const oneCropType = new CropType();
oneCropType.id = 3;
oneCropType.name = "Gidulim";
const mockRepository = {
save: jest.fn((crop: Crop) => Promise.resolve(crop)),
find: jest.fn(),
findOne: jest.fn()
};
const mockConnectionService = {
getStrainsByProject: jest.fn(projectId => []),
getCropTypeById: jest.fn(id => Promise.resolve(oneCropType))
};
describe("Crop Service", () => {
let cropService: CropService;
beforeAll(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [
CropService,
{
provide: getRepositoryToken(Crop),
useValue: mockRepository
},
{
provide: CropsConnectionService,
useValue: mockConnectionService
}
],
}).compile();
cropService = module.get<CropService>(CropService);
});