diff --git a/lib/config/migration.js b/lib/config/migration.js index 894f5dff2c5bdd20b37a903306e50abb4e554719..b65c8500a656b1df0fbeed1f7f40375619a29943 100644 --- a/lib/config/migration.js +++ b/lib/config/migration.js @@ -54,6 +54,16 @@ function migrateConfig(config, parentConfig) { isMigrated = true; migratedConfig.packagePatterns = [val]; delete migratedConfig.packagePattern; + } else if (key === 'schedule') { + for (let i = 0; i < val.length; i += 1) { + if (val[i].indexOf('on the last day of the month') !== -1) { + isMigrated = true; + migratedConfig.schedule[i] = val[i].replace( + 'on the last day of the month', + 'on the first day of the month' + ); + } + } } else if ( typeof val === 'string' && val.indexOf('{{semanticPrefix}}') === 0 diff --git a/lib/workers/branch/schedule.js b/lib/workers/branch/schedule.js index 8ca82a82529353e769a8a9d88e9dbd566f65e0a6..8b93d9b3fd07d96dce6e30cdaa6427e423e0f1d0 100644 --- a/lib/workers/branch/schedule.js +++ b/lib/workers/branch/schedule.js @@ -32,7 +32,11 @@ function hasValidSchedule(schedule) { message = `Schedule "${scheduleText}" should not specify minutes`; return true; } - if (!parsedSchedule.schedules.some(s => s.d || s.t_a || s.t_b)) { + if ( + !parsedSchedule.schedules.some( + s => s.d !== undefined || s.D || s.t_a !== undefined || s.t_b + ) + ) { message = `Schedule "${scheduleText}" has no days of week or time of day`; return true; } diff --git a/test/config/__snapshots__/migration.spec.js.snap b/test/config/__snapshots__/migration.spec.js.snap index a705f286c3b2f7c43787936a2f15f7afe6d6b8de..6a70ff1546fdce3d469ba0eb81b35397088ae617 100644 --- a/test/config/__snapshots__/migration.spec.js.snap +++ b/test/config/__snapshots__/migration.spec.js.snap @@ -22,7 +22,9 @@ Object { }, ], "prTitle": "some pr title", - "schedule": "after 5pm", + "schedule": Array [ + "on the first day of the month", + ], "semanticPrefix": "fix(deps):", } `; diff --git a/test/config/migration.spec.js b/test/config/migration.spec.js index ec0fb6cf9e1a90e7776032f863ad7b85219a856e..6d9307dc370f8cec09bf891e2cf6f29147ef962f 100644 --- a/test/config/migration.spec.js +++ b/test/config/migration.spec.js @@ -10,7 +10,7 @@ describe('config/migration', () => { onboarding: 'false', automerge: false, autodiscover: 'true', - schedule: 'after 5pm', + schedule: ['on the last day of the month'], commitMessage: '{{semanticPrefix}}some commit message', prTitle: '{{semanticPrefix}}some pr title', semanticPrefix: 'fix(deps): ', diff --git a/test/workers/branch/schedule.spec.js b/test/workers/branch/schedule.spec.js index 3d42f32f62239b317c12a9877f21afe01c3d9ac9..8b09c38b1aa933d4d52e2ceca0e5069a9bd59684 100644 --- a/test/workers/branch/schedule.spec.js +++ b/test/workers/branch/schedule.spec.js @@ -41,6 +41,11 @@ describe('workers/branch/schedule', () => { it('returns true if schedule has a start time', () => { expect(schedule.hasValidSchedule(['after 8:00pm'])[0]).toBe(true); }); + it('returns true for first day of the month', () => { + expect( + schedule.hasValidSchedule(['on the first day of the month'])[0] + ).toBe(true); + }); it('returns true if schedule has an end time', () => { expect(schedule.hasValidSchedule(['before 6:00am'])[0]).toBe(true); });