jeudi 5 novembre 2020

Avoid namespace collision between my test files and the helper functions being tested

I have some functions that I am requiring into my test files as well as into the helper file being tested. The problem is, depending on which order they are imported, one set of functions ends up undefined. This is easier to show:

fitnessPlanAssignment.test.js

/* global jest, it, expect, beforeAll, afterAll, afterEach, describe */
const mongoose = require('mongoose');
const moment = require('moment');
const faker = require('faker');
const db = require('../models');

const {
  checkFuturePlans,
  determinePlansToAssign,
  assignFitnessPlans,
} = require('../helpers/fitnessPlanAssignment');

const { deleteFuturePlans } = require('../helpers/fitnessplans');

const { assignOneTrack, switchTrack } = require('../helpers/tracks');

/helpers/tracks.js

const db = require('../models');
const { deleteFuturePlans } = require('./fitnessPlans');
const {
  checkFuturePlans,
  determinePlansToAssign,
  assignFitnessPlans,
} = require('./fitnessPlanAssignment');
console.log(determinePlansToAssign); // undefined
console.log(assignFitnessPlans); // undefined

helpers/fitnessPlanAssignment.js

const moment = require('moment');
const db = require('../models');

const { createUserFitnessPlan } = require('../helpers/fitnessplans');
const { assignOneTrack } = require('../helpers/tracks');

enter image description here

When I switch this statement: const { assignOneTrack, switchTrack } = require('../helpers/tracks'); to be required first, they are no longer undefined, but now assignOneTrack() is undefined. How do I avoid this issue?

Aucun commentaire:

Enregistrer un commentaire