87 lines
3.3 KiB
JavaScript
87 lines
3.3 KiB
JavaScript
/* global it:false */
|
|
/* global describe:false */
|
|
/* global before:false */
|
|
/* global after:false */
|
|
|
|
'use strict';
|
|
|
|
const common = require('./common.js'),
|
|
expect = require('expect.js'),
|
|
fs = require('fs'),
|
|
nock = require('nock'),
|
|
support = require('../../support.js'),
|
|
superagent = require('@cloudron/superagent');
|
|
|
|
describe('Support API', function () {
|
|
const { setup, cleanup, serverUrl, owner, mockApiServerOrigin, appstoreToken, user, admin } = common;
|
|
|
|
before(setup);
|
|
before(() => { if (!nock.isActive()) nock.activate(); });
|
|
after(cleanup);
|
|
|
|
const authorizedKeysFile = support._sshInfo().filePath;
|
|
|
|
describe('remote support', function () {
|
|
it('get remote support', async function () {
|
|
const response = await superagent.get(`${serverUrl}/api/v1/support/remote_support`)
|
|
.query({ access_token: owner.token });
|
|
expect(response.status).to.equal(200);
|
|
expect(response.body.enabled).to.be(false);
|
|
});
|
|
|
|
it('enable remote support', async function () {
|
|
const response = await superagent.post(`${serverUrl}/api/v1/support/remote_support`)
|
|
.query({ access_token: owner.token })
|
|
.send({ enabled: true });
|
|
|
|
expect(response.status).to.equal(202);
|
|
|
|
let data = await fs.promises.readFile(authorizedKeysFile, 'utf8');
|
|
let count = (data.match(/support@cloudron.io/g) || []).length;
|
|
expect(count).to.be(1);
|
|
});
|
|
|
|
it('returns true when remote support enabled', async function () {
|
|
const response = await superagent.get(`${serverUrl}/api/v1/support/remote_support`)
|
|
.query({ access_token: owner.token });
|
|
expect(response.status).to.equal(200);
|
|
expect(response.body.enabled).to.be(true);
|
|
});
|
|
|
|
it('enable remote support (again)', async function () {
|
|
const response = await superagent.post(`${serverUrl}/api/v1/support/remote_support`)
|
|
.query({ access_token: owner.token })
|
|
.send({ enabled: true });
|
|
expect(response.status).to.equal(202);
|
|
|
|
let data = await fs.promises.readFile(authorizedKeysFile, 'utf8');
|
|
let count = (data.match(/support@cloudron.io/g) || []).length;
|
|
expect(count).to.be(1);
|
|
});
|
|
|
|
it('disable remote support', async function () {
|
|
const response = await superagent.post(`${serverUrl}/api/v1/support/remote_support`)
|
|
.query({ access_token: owner.token })
|
|
.send({ enabled: false });
|
|
|
|
expect(response.status).to.equal(202);
|
|
|
|
let data = await fs.promises.readFile(authorizedKeysFile, 'utf8');
|
|
let count = (data.match(/support@cloudron.io/g) || []).length;
|
|
expect(count).to.be(0);
|
|
});
|
|
|
|
it('disable remote support (again)', async function () {
|
|
const response = await superagent.post(`${serverUrl}/api/v1/support/remote_support`)
|
|
.query({ access_token: owner.token })
|
|
.send({ enabled: false });
|
|
|
|
expect(response.status).to.equal(202);
|
|
|
|
const data = await fs.promises.readFile(authorizedKeysFile, 'utf8');
|
|
const count = (data.match(/support@cloudron.io/g) || []).length;
|
|
expect(count).to.be(0);
|
|
});
|
|
});
|
|
});
|