From b6a6694abf7b7eb03482c206c0e73391512689be Mon Sep 17 00:00:00 2001 From: badrAZ Date: Mon, 29 Jun 2020 14:04:23 +0200 Subject: [PATCH] fix(xo-server-test/job with non-existent VM): logged as failed task (#5112) Since c061505bf888a286a6552ab1808022665eff6f72, missing VMs are logged as a failure tasks --- .../__snapshots__/backupNg.spec.js.snap | 20 ++++++------ .../src/backupNg/backupNg.spec.js | 31 ++++++++++++++++--- 2 files changed, 38 insertions(+), 13 deletions(-) diff --git a/packages/xo-server-test/src/backupNg/__snapshots__/backupNg.spec.js.snap b/packages/xo-server-test/src/backupNg/__snapshots__/backupNg.spec.js.snap index af6fd0557..d66ec37b0 100644 --- a/packages/xo-server-test/src/backupNg/__snapshots__/backupNg.spec.js.snap +++ b/packages/xo-server-test/src/backupNg/__snapshots__/backupNg.spec.js.snap @@ -22,16 +22,18 @@ Object { exports[`backupNg .runJob() : fails trying to run a backup job with no matching VMs 1`] = `[JsonRpcError: unknown error from the peer]`; exports[`backupNg .runJob() : fails trying to run a backup job with non-existent vm 1`] = ` -Array [ - Object { - "data": Object { - "vms": Array [ - "non-existent-id", - ], - }, - "message": "missingVms", +Object { + "data": Object { + "id": Any, + "type": "VM", }, -] + "end": Any, + "id": Any, + "message": Any, + "result": Any, + "start": Any, + "status": "failure", +} `; exports[`backupNg .runJob() : fails trying to run a backup job without schedule 1`] = `[JsonRpcError: invalid parameters]`; diff --git a/packages/xo-server-test/src/backupNg/backupNg.spec.js b/packages/xo-server-test/src/backupNg/backupNg.spec.js index 7782ec5d3..9e64a8b5d 100644 --- a/packages/xo-server-test/src/backupNg/backupNg.spec.js +++ b/packages/xo-server-test/src/backupNg/backupNg.spec.js @@ -198,7 +198,7 @@ describe('backupNg', () => { it('fails trying to run a backup job with non-existent vm', async () => { jest.setTimeout(7e3) const scheduleTempId = randomId() - const { id: jobId } = await xo.createTempBackupNgJob({ + const jobInput = { schedules: { [scheduleTempId]: getDefaultSchedule(), }, @@ -208,16 +208,39 @@ describe('backupNg', () => { vms: { id: 'non-existent-id', }, - }) + } + const { id: jobId } = await xo.createTempBackupNgJob(jobInput) const schedule = await xo.getSchedule({ jobId }) expect(typeof schedule).toBe('object') await xo.call('backupNg.runJob', { id: jobId, schedule: schedule.id }) - const [log] = await xo.getBackupLogs({ + const [ + { + tasks: [vmTask], + ...log + }, + ] = await xo.getBackupLogs({ scheduleId: schedule.id, }) - expect(log.warnings).toMatchSnapshot() + + validateRootTask(log, { + data: { + mode: jobInput.mode, + reportWhen: jobInput.settings[''].reportWhen, + }, + jobId, + jobName: jobInput.name, + scheduleId: schedule.id, + status: 'failure', + }) + + validateVmTask(vmTask, jobInput.vms.id, { + status: 'failure', + result: expect.any(Object), + }) + + expect(noSuchObject.is(vmTask.result)).toBe(true) }) it('fails trying to run a backup job with a VM without disks', async () => {