mirror of
https://github.com/OutlineFoundation/outline-server.git
synced 2026-08-04 14:37:34 +00:00
Convert manager_service
This commit is contained in:
parent
57132b52b8
commit
e3c7dd4bff
5 changed files with 147 additions and 372 deletions
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue