/* global it:false */ /* global describe:false */ /* global before:false */ /* global after:false */ 'use strict'; const archives = require('../../archives.js'), backups = require('../../backups.js'), common = require('./common.js'), expect = require('expect.js'), superagent = require('superagent'); describe('Archives API', function () { const { setup, cleanup, serverUrl, owner } = common; const appBackup = { id: null, remotePath: 'app_appid_123', encryptionVersion: null, packageVersion: '1.0.0', type: backups.BACKUP_TYPE_APP, state: backups.BACKUP_STATE_CREATING, identifier: 'appid', dependsOn: [ ], manifest: { foo: 'bar' }, format: 'tgz', preserveSecs: 0, label: '', }; const appConfig = { loc: 'loc1' }; let archiveId; before(async function () { await setup(); appBackup.id = await backups.add(appBackup); archiveId = await archives.add(appBackup.id, { appConfig }); }); after(cleanup); it('list succeeds', async function () { const response = await superagent.get(`${serverUrl}/api/v1/archives`) .query({ access_token: owner.token }); expect(response.statusCode).to.equal(200); expect(response.body.archives.length).to.be(1); expect(response.body.archives[0].id).to.be(archiveId); }); it('get valid archive', async function () { const response = await superagent.get(`${serverUrl}/api/v1/archives/${archiveId}`) .query({ access_token: owner.token }); expect(response.statusCode).to.equal(200); expect(response.body.appConfig).to.eql(appConfig); }); it('cannot get invalid archive', async function () { const response = await superagent.get(`${serverUrl}/api/v1/archives/random`) .query({ access_token: owner.token }) .ok(() => true); expect(response.statusCode).to.equal(404); }); it('cannot del invalid archive', async function () { const response = await superagent.del(`${serverUrl}/api/v1/archives/random`) .query({ access_token: owner.token }) .ok(() => true); expect(response.statusCode).to.equal(404); }); it('del valid archive', async function () { const response = await superagent.del(`${serverUrl}/api/v1/archives/${archiveId}`) .query({ access_token: owner.token }); expect(response.statusCode).to.equal(204); const response2 = await superagent.get(`${serverUrl}/api/v1/archives`) .query({ access_token: owner.token }); expect(response2.statusCode).to.equal(200); expect(response2.body.archives.length).to.be(0); }); });