diff --git a/core/enedis/enedis.js b/core/enedis/enedis.js index eebfca2..0e2befb 100644 --- a/core/enedis/enedis.js +++ b/core/enedis/enedis.js @@ -284,7 +284,15 @@ module.exports = function EnedisModel(logger, db, redisClient) { logger.info(`Enedis: Found ${usagePointIds.length} usage points for user ${job.userId}`); // Foreach usage points, we generate one job per request to make await Promise.each(usagePointIds, async (usagePointId) => { - const contract = await getContract(account.id, usagePointId); + let contract; + try { + contract = await getContract(account.id, usagePointId); + } catch (e) { + logger.warn( + `Failed to get contract for usage_point ${usagePointId}. Will continue with a default value for last activation date.`, + ); + } + let oldestDate = job.start ? dayjs(job.start) : dayjs().subtract(2, 'years'); // We cannot get data before lastActivationDate diff --git a/test/core/enedis/enedis.dailyRefreshAllUsers.test.js b/test/core/enedis/enedis.dailyRefreshAllUsers.test.js index 72c9be8..937ff58 100644 --- a/test/core/enedis/enedis.dailyRefreshAllUsers.test.js +++ b/test/core/enedis/enedis.dailyRefreshAllUsers.test.js @@ -42,7 +42,7 @@ describe('EnedisWorker.dailyRefreshAllUsers', function Describe() { ({ enedisModel, shutdown } = await initEnedisListener()); await shutdown(); }); - it('should publish 2 jobs', async () => { + it('should publish 4 jobs', async () => { // Insert broken enedis user data await TEST_DATABASE_INSTANCE.t_account.insert({ id: 'ab9c205a-d090-4c97-84b5-d2a9eb932201', @@ -122,7 +122,7 @@ describe('EnedisWorker.dailyRefreshAllUsers', function Describe() { mockAccessTokenRefresh(); await enedisModel.dailyRefreshOfAllUsers(); const counts = await enedisModel.queue.getJobCounts('wait', 'completed', 'failed'); - expect(counts).to.deep.equal({ wait: 2, completed: 0, failed: 0 }); + expect(counts).to.deep.equal({ wait: 4, completed: 0, failed: 0 }); }); it('should play job', async () => { // First, finalize Enedis Oauth process