فهرست منبع

refs 112133: refactor

Futa Arai 3 سال پیش
والد
کامیت
bb91554895
1فایلهای تغییر یافته به همراه11 افزوده شده و 9 حذف شده
  1. 11 9
      packages/app/test/integration/service/questionnaire-cron.test.ts

+ 11 - 9
packages/app/test/integration/service/questionnaire-cron.test.ts

@@ -22,11 +22,11 @@ describe('QuestionnaireCronService', () => {
   const mockResponse = {
     data: {
       questionnaireOrders: [
-        // 既に保存されているアンケート
+        // 既に保存されている、終了していないアンケート
         {
           _id: '63a8354837e7aa378e16f0b1',
           showFrom: '2022-12-11',
-          showUntil: '2023-12-12',
+          showUntil: '2100-12-12',
           questions: [
             {
               type: 'points',
@@ -43,11 +43,11 @@ describe('QuestionnaireCronService', () => {
             },
           },
         },
-        // 新しいアンケート
+        // 保存されておらず、終了していないアンケート
         {
           _id: '63a8354837e7aa378e16f0b2',
           showFrom: '2021-12-11',
-          showUntil: '2022-12-12',
+          showUntil: '2100-12-12',
           questions: [
             {
               type: 'points',
@@ -75,7 +75,9 @@ describe('QuestionnaireCronService', () => {
     crowi = await getInstance();
     // reload
     await crowi.setupConfigManager();
+  });
 
+  beforeEach(async() => {
     // 初期データ投入
     await QuestionnaireOrder.insertMany([
       {
@@ -98,7 +100,7 @@ describe('QuestionnaireCronService', () => {
           },
         },
       },
-      // 期限切れ
+      // 終了しているアンケート
       {
         _id: '63a8354837e7aa378e16f0b3',
         showFrom: '2020-12-11',
@@ -128,6 +130,9 @@ describe('QuestionnaireCronService', () => {
 
     // useFakeTimers の後でないと設定した mock 時刻が反映されない
     crowi.setupCron();
+
+    spyAxiosGet.mockResolvedValue(mockResponse);
+    spyGetRandomInt.mockReturnValue(secondsUntilRequest); // リクエストまでの待機時間を固定化
   });
 
   afterAll(() => {
@@ -136,12 +141,9 @@ describe('QuestionnaireCronService', () => {
   });
 
   test('Should save new quesionnaire orders and delete outdated ones', async() => {
-    spyAxiosGet.mockResolvedValue(mockResponse);
-    spyGetRandomInt.mockReturnValue(secondsUntilRequest);
-
     jest.advanceTimersByTime(5 * 1000); // cronjob 実行時刻まで進める
     jest.advanceTimersByTime(secondsUntilRequest); // 待機時間の最大値まで進め、リクエストを実行する
-    jest.useRealTimers(); // cronjob 実行完了後は real timers に戻さないと mongoose が正常に動作しない
+    jest.useRealTimers(); // cronjob 実行開始後は real timers に戻さないと mongoose が正常に動作しない
 
     await new Promise(resolve => setTimeout(resolve, 3000)); // 裏で動いている cronjob が実行完了するまで待つ