Convert manager_service

This commit is contained in:
fortuna 2019-08-05 15:18:36 -04:00
parent 57132b52b8
commit e3c7dd4bff
5 changed files with 147 additions and 372 deletions

View file

@ -35,7 +35,7 @@
"dependencies": {
"js-yaml": "^3.13.1",
"mkdirp": "^0.5.1",
"ShadowsocksConfig": "Jigsaw-Code/outline-shadowsocksconfig#^v0.0.9",
"ShadowsocksConfig": "Jigsaw-Code/outline-shadowsocksconfig",
"randomstring": "^1.1.5",
"request-lite": "^2.40.1",
"restify": "4",

View file

@ -52,9 +52,13 @@ ts_library(
srcs = ["manager_service.spec.ts"],
deps = [
":manager_service",
":server_access_key",
":server_config",
":shared_metrics",
"//src/shadowbox/infrastructure:get_port",
"//src/shadowbox/infrastructure:json_config",
"//src/shadowbox/model",
"//src/shadowbox/server/mocks",
"@npm//@types/jasmine",
],
testonly = True,

View file

@ -239,7 +239,7 @@ describe('ShadowsocksManagerService', () => {
responseProcessed = true; // required for afterEach to pass.
}
};
service.setAccessKeyQuota({params: {id: accessKey.id, quota}}, res, done);
await service.setAccessKeyQuota({params: {id: accessKey.id, quota}}, res, done);
});
it('returns 409 when quota is missing values', async (done) => {
const repo = getAccessKeyRepository();
@ -255,7 +255,7 @@ describe('ShadowsocksManagerService', () => {
expect(error.statusCode).toEqual(409);
});
quota = {window: {hours: 1}} as AccessKeyQuota;
service.setAccessKeyQuota({params: {id: accessKey.id, quota}}, res, (error) => {
await service.setAccessKeyQuota({params: {id: accessKey.id, quota}}, res, (error) => {
expect(error.statusCode).toEqual(409);
responseProcessed = true; // required for afterEach to pass.
done();
@ -267,7 +267,7 @@ describe('ShadowsocksManagerService', () => {
const accessKey = await repo.createNewAccessKey();
const quota = {data: {bytes: -1}, window: {hours: 24}};
const res = {send: (httpCode, data) => {}};
service.setAccessKeyQuota({params: {id: accessKey.id, quota}}, res, (error) => {
await service.setAccessKeyQuota({params: {id: accessKey.id, quota}}, res, (error) => {
expect(error.statusCode).toEqual(409);
responseProcessed = true; // required for afterEach to pass.
done();
@ -279,7 +279,7 @@ describe('ShadowsocksManagerService', () => {
const accessKey = await repo.createNewAccessKey();
const quota = {data: {bytes: 1000}, window: {hours: -24}};
const res = {send: (httpCode, data) => {}};
service.setAccessKeyQuota({params: {id: accessKey.id, quota}}, res, (error) => {
await service.setAccessKeyQuota({params: {id: accessKey.id, quota}}, res, (error) => {
expect(error.statusCode).toEqual(409);
responseProcessed = true; // required for afterEach to pass.
done();
@ -290,7 +290,7 @@ describe('ShadowsocksManagerService', () => {
const service = new ShadowsocksManagerService('default name', null, repo, null, null);
const quota = {data: {bytes: 1000}, window: {hours: 24}};
const res = {send: (httpCode, data) => {}};
service.setAccessKeyQuota({params: {id: 'doesnotexist', quota}}, res, (error) => {
await service.setAccessKeyQuota({params: {id: 'doesnotexist', quota}}, res, (error) => {
expect(error.statusCode).toEqual(404);
responseProcessed = true; // required for afterEach to pass.
done();
@ -303,7 +303,7 @@ describe('ShadowsocksManagerService', () => {
const accessKey = await repo.createNewAccessKey();
const quota = {data: {bytes: 10000}, window: {hours: 48}};
const res = {send: (httpCode, data) => {}};
service.setAccessKeyQuota({params: {id: accessKey.id, quota}}, res, (error) => {
await service.setAccessKeyQuota({params: {id: accessKey.id, quota}}, res, (error) => {
expect(error.statusCode).toEqual(500);
responseProcessed = true; // required for afterEach to pass.
done();
@ -317,7 +317,7 @@ describe('ShadowsocksManagerService', () => {
const service = new ShadowsocksManagerService('default name', null, repo, null, null);
const quota = {data: {bytes: 10000}, window: {hours: 48}};
const accessKey = await repo.createNewAccessKey();
repo.setAccessKeyQuota(accessKey.id, quota);
await repo.setAccessKeyQuota(accessKey.id, quota);
expect(accessKey.quotaUsage.quota).toEqual(quota);
expect(accessKey.quotaUsage.usage.bytes).toEqual(0);
const res = {
@ -329,13 +329,13 @@ describe('ShadowsocksManagerService', () => {
responseProcessed = true; // required for afterEach to pass.
}
};
service.removeAccessKeyQuota({params: {id: accessKey.id}}, res, done);
await service.removeAccessKeyQuota({params: {id: accessKey.id}}, res, done);
});
it('returns 404 when the access key is not found', async (done) => {
const repo = getAccessKeyRepository();
const service = new ShadowsocksManagerService('default name', null, repo, null, null);
const res = {send: (httpCode, data) => {}};
service.removeAccessKeyQuota({params: {id: 'doesnotexist'}}, res, (error) => {
await service.removeAccessKeyQuota({params: {id: 'doesnotexist'}}, res, (error) => {
expect(error.statusCode).toEqual(404);
responseProcessed = true; // required for afterEach to pass.
done();
@ -347,7 +347,7 @@ describe('ShadowsocksManagerService', () => {
const service = new ShadowsocksManagerService('default name', null, repo, null, null);
const accessKey = await repo.createNewAccessKey();
const res = {send: (httpCode, data) => {}};
service.removeAccessKeyQuota({params: {id: accessKey.id}}, res, (error) => {
await service.removeAccessKeyQuota({params: {id: accessKey.id}}, res, (error) => {
expect(error.statusCode).toEqual(500);
responseProcessed = true; // required for afterEach to pass.
done();

View file

@ -13,7 +13,7 @@
// limitations under the License.
import * as restify from 'restify';
import {makeConfig, SIP002_URI} from 'ShadowsocksConfig/shadowsocks_config';
import {makeConfig, SIP002_URI} from 'ShadowsocksConfig';
import {JsonConfig} from '../infrastructure/json_config';
import * as logging from '../infrastructure/logging';

491
yarn.lock

File diff suppressed because it is too large Load diff