@ledgerhq/vault-cli 1.3.0 → 1.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc +4 -1
- package/__mocks__/@ledgerhq/hw-transport-node-hid.ts +5 -0
- package/__mocks__/@ledgerhq/vault-common.ts +60 -1
- package/__mocks__/command-line-usage/index.ts +1 -0
- package/bin/__tests__/apdu.test.d.ts +1 -0
- package/bin/__tests__/apdu.test.js +33 -0
- package/bin/__tests__/apdu.test.js.map +1 -0
- package/bin/__tests__/bake.test.d.ts +1 -0
- package/bin/__tests__/bake.test.js +71 -0
- package/bin/__tests__/bake.test.js.map +1 -0
- package/bin/__tests__/cli.test.js +37 -1
- package/bin/__tests__/cli.test.js.map +1 -1
- package/bin/__tests__/create.test.d.ts +1 -0
- package/bin/__tests__/create.test.js +33 -0
- package/bin/__tests__/create.test.js.map +1 -0
- package/bin/__tests__/deploy.test.d.ts +1 -0
- package/bin/__tests__/deploy.test.js +67 -0
- package/bin/__tests__/deploy.test.js.map +1 -0
- package/bin/__tests__/destroy.test.d.ts +1 -0
- package/bin/__tests__/destroy.test.js +40 -0
- package/bin/__tests__/destroy.test.js.map +1 -0
- package/bin/__tests__/drain.test.d.ts +1 -0
- package/bin/__tests__/drain.test.js +36 -0
- package/bin/__tests__/drain.test.js.map +1 -0
- package/bin/__tests__/fetch.test.d.ts +1 -0
- package/bin/__tests__/fetch.test.js +28 -0
- package/bin/__tests__/fetch.test.js.map +1 -0
- package/bin/__tests__/get.test.d.ts +1 -0
- package/bin/__tests__/get.test.js +103 -0
- package/bin/__tests__/get.test.js.map +1 -0
- package/bin/__tests__/getAuthToken.test.d.ts +1 -0
- package/bin/__tests__/getAuthToken.test.js +30 -0
- package/bin/__tests__/getAuthToken.test.js.map +1 -0
- package/bin/__tests__/getMVInstances.test.d.ts +1 -0
- package/bin/__tests__/getMVInstances.test.js +61 -0
- package/bin/__tests__/getMVInstances.test.js.map +1 -0
- package/bin/__tests__/getSeeds.test.d.ts +1 -0
- package/bin/__tests__/getSeeds.test.js +20 -0
- package/bin/__tests__/getSeeds.test.js.map +1 -0
- package/bin/__tests__/getUserID.test.d.ts +1 -0
- package/bin/__tests__/getUserID.test.js +30 -0
- package/bin/__tests__/getUserID.test.js.map +1 -0
- package/bin/__tests__/listen.test.d.ts +1 -0
- package/bin/__tests__/listen.test.js +30 -0
- package/bin/__tests__/listen.test.js.map +1 -0
- package/bin/__tests__/onboard.test.d.ts +1 -0
- package/bin/__tests__/onboard.test.js +58 -0
- package/bin/__tests__/onboard.test.js.map +1 -0
- package/bin/__tests__/pathGateOptionsWithEnvVariables.test.d.ts +1 -0
- package/bin/__tests__/pathGateOptionsWithEnvVariables.test.js +27 -0
- package/bin/__tests__/pathGateOptionsWithEnvVariables.test.js.map +1 -0
- package/bin/__tests__/proxy.test.d.ts +1 -0
- package/bin/__tests__/proxy.test.js +22 -0
- package/bin/__tests__/proxy.test.js.map +1 -0
- package/bin/__tests__/receive.test.d.ts +1 -0
- package/bin/__tests__/receive.test.js +28 -0
- package/bin/__tests__/receive.test.js.map +1 -0
- package/bin/__tests__/recipe.test.d.ts +1 -0
- package/bin/__tests__/recipe.test.js +30 -0
- package/bin/__tests__/recipe.test.js.map +1 -0
- package/bin/__tests__/reject.test.d.ts +1 -0
- package/bin/__tests__/reject.test.js +65 -0
- package/bin/__tests__/reject.test.js.map +1 -0
- package/bin/__tests__/send.test.d.ts +1 -0
- package/bin/__tests__/send.test.js +25 -0
- package/bin/__tests__/send.test.js.map +1 -0
- package/bin/__tests__/setQuorum.test.d.ts +1 -0
- package/bin/__tests__/setQuorum.test.js +31 -0
- package/bin/__tests__/setQuorum.test.js.map +1 -0
- package/bin/__tests__/test-utils.d.ts +13 -0
- package/bin/__tests__/test-utils.js +30 -0
- package/bin/__tests__/test-utils.js.map +1 -0
- package/bin/__tests__/wipe.test.js +28 -21
- package/bin/__tests__/wipe.test.js.map +1 -1
- package/bin/commands/apdu.d.ts +2 -2
- package/bin/commands/apdu.js +1 -1
- package/bin/commands/apdu.js.map +1 -1
- package/bin/commands/bake.js +11 -5
- package/bin/commands/bake.js.map +1 -1
- package/bin/commands/bridge.js +6 -3
- package/bin/commands/bridge.js.map +1 -1
- package/bin/commands/create.d.ts +2 -0
- package/bin/commands/create.js +11 -8
- package/bin/commands/create.js.map +1 -1
- package/bin/commands/deploy.d.ts +37 -0
- package/bin/commands/deploy.js +75 -0
- package/bin/commands/deploy.js.map +1 -0
- package/bin/commands/destroy.d.ts +28 -0
- package/bin/commands/destroy.js +51 -0
- package/bin/commands/destroy.js.map +1 -0
- package/bin/commands/drain.js +3 -3
- package/bin/commands/drain.js.map +1 -1
- package/bin/commands/faucet.js +1 -1
- package/bin/commands/faucet.js.map +1 -1
- package/bin/commands/fetch.js +6 -4
- package/bin/commands/fetch.js.map +1 -1
- package/bin/commands/get.d.ts +1 -1
- package/bin/commands/get.js +17 -13
- package/bin/commands/get.js.map +1 -1
- package/bin/commands/getAuthToken.js +2 -1
- package/bin/commands/getAuthToken.js.map +1 -1
- package/bin/commands/getMVInstances.d.ts +32 -0
- package/bin/commands/getMVInstances.js +68 -0
- package/bin/commands/getMVInstances.js.map +1 -0
- package/bin/commands/getSeeds.js +1 -1
- package/bin/commands/getSeeds.js.map +1 -1
- package/bin/commands/getUserID.d.ts +1 -1
- package/bin/commands/getUserID.js +2 -1
- package/bin/commands/getUserID.js.map +1 -1
- package/bin/commands/index.d.ts +72 -14
- package/bin/commands/index.js +6 -0
- package/bin/commands/index.js.map +1 -1
- package/bin/commands/listen.js +5 -3
- package/bin/commands/listen.js.map +1 -1
- package/bin/commands/migrate.js +2 -1
- package/bin/commands/migrate.js.map +1 -1
- package/bin/commands/onboard.d.ts +2 -1
- package/bin/commands/onboard.js +7 -6
- package/bin/commands/onboard.js.map +1 -1
- package/bin/commands/proxy.d.ts +1 -1
- package/bin/commands/receive.js +1 -1
- package/bin/commands/receive.js.map +1 -1
- package/bin/commands/recipe.js +2 -2
- package/bin/commands/recipe.js.map +1 -1
- package/bin/commands/registerMigratedUsers.js +1 -1
- package/bin/commands/registerMigratedUsers.js.map +1 -1
- package/bin/commands/reject.js +2 -2
- package/bin/commands/reject.js.map +1 -1
- package/bin/commands/send.js +2 -2
- package/bin/commands/send.js.map +1 -1
- package/bin/commands/setQuorum.js +3 -2
- package/bin/commands/setQuorum.js.map +1 -1
- package/bin/commands/wipe.js +1 -1
- package/bin/commands/wipe.js.map +1 -1
- package/bin/gateOptions.js +7 -0
- package/bin/gateOptions.js.map +1 -1
- package/bin/presets/beatles.json +4 -32
- package/bin/types.d.ts +1 -0
- package/package.json +5 -5
- package/bin/presets/beatles-legacy.json +0 -58
package/.eslintrc
CHANGED
|
@@ -10,7 +10,10 @@
|
|
|
10
10
|
"rules": {
|
|
11
11
|
"@typescript-eslint/no-explicit-any": 0,
|
|
12
12
|
"@typescript-eslint/ban-ts-comment": 0,
|
|
13
|
-
"@typescript-eslint/no-unused-vars":
|
|
13
|
+
"@typescript-eslint/no-unused-vars": [
|
|
14
|
+
"warn",
|
|
15
|
+
{ "argsIgnorePattern": "^_" }
|
|
16
|
+
],
|
|
14
17
|
"@typescript-eslint/no-non-null-assertion": 0,
|
|
15
18
|
"no-useless-catch": 0
|
|
16
19
|
},
|
|
@@ -1,4 +1,63 @@
|
|
|
1
1
|
export { createConsoleLogger } from "@ledgerhq/vault-common";
|
|
2
2
|
|
|
3
3
|
export const bakeManifest = jest.fn();
|
|
4
|
-
export const
|
|
4
|
+
export const validateManifest = jest.fn();
|
|
5
|
+
export const recipeManifest = jest.fn().mockImplementation(() => ({
|
|
6
|
+
manifest: { accounts: undefined },
|
|
7
|
+
rawData: { usersWithDevice: [{ user: { id: 2 } }] },
|
|
8
|
+
}));
|
|
9
|
+
export const wipeBackend = jest.fn();
|
|
10
|
+
export const fetchTokens = jest.fn().mockReturnValue(["token1", "token2"]);
|
|
11
|
+
export const createDevicesPool = jest.fn().mockReturnValue({
|
|
12
|
+
login: jest.fn().mockReturnValue({
|
|
13
|
+
network: jest.fn().mockReturnValue({
|
|
14
|
+
edges: [
|
|
15
|
+
{
|
|
16
|
+
node: {
|
|
17
|
+
id: 1,
|
|
18
|
+
name: "Bob",
|
|
19
|
+
username: "Bob le bricoleur",
|
|
20
|
+
role: "Admin",
|
|
21
|
+
user_id: "BobLeBricoleur",
|
|
22
|
+
currency: "westend",
|
|
23
|
+
balance: 10,
|
|
24
|
+
status: "status",
|
|
25
|
+
description: "description",
|
|
26
|
+
notes: [],
|
|
27
|
+
type: "type",
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
node: {
|
|
32
|
+
id: 2,
|
|
33
|
+
name: "Alice",
|
|
34
|
+
username: "Alice In Wonderland",
|
|
35
|
+
role: "Admin",
|
|
36
|
+
user_id: "Wonderland",
|
|
37
|
+
currency: "westend",
|
|
38
|
+
balance: 10,
|
|
39
|
+
status: "status",
|
|
40
|
+
description: "description",
|
|
41
|
+
notes: [],
|
|
42
|
+
type: "CREATE_TRANSACTION",
|
|
43
|
+
created_by: { id: 2 },
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
}),
|
|
48
|
+
getToken: jest.fn().mockReturnValue("authToken"),
|
|
49
|
+
connectSocket: jest.fn(),
|
|
50
|
+
onEvent: jest.fn(),
|
|
51
|
+
rejectRequest: jest.fn(),
|
|
52
|
+
}),
|
|
53
|
+
getUserID: jest.fn().mockReturnValue("userID"),
|
|
54
|
+
getOnboardingAdminDevices: jest.fn().mockReturnValue([
|
|
55
|
+
["Admin 1", 4],
|
|
56
|
+
["Admin 2", 5],
|
|
57
|
+
]),
|
|
58
|
+
});
|
|
59
|
+
export const genSeed = jest.fn();
|
|
60
|
+
|
|
61
|
+
export const destroy = jest.fn();
|
|
62
|
+
export const deploy = jest.fn();
|
|
63
|
+
export const getMVInstances = jest.fn();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default jest.fn().mockReturnValue("helper text");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const apdu_1 = __importDefault(require("../commands/apdu"));
|
|
16
|
+
const test_utils_1 = require("./test-utils");
|
|
17
|
+
const opts = {
|
|
18
|
+
positionals: ["<value>"],
|
|
19
|
+
};
|
|
20
|
+
describe("apdu", () => {
|
|
21
|
+
it("should send raw APDU and print response", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
22
|
+
const spyConsole = jest.spyOn(console, "log").mockImplementation();
|
|
23
|
+
yield apdu_1.default.run(opts);
|
|
24
|
+
spyConsole.mockRestore();
|
|
25
|
+
}));
|
|
26
|
+
test_utils_1.testErrorCommand({
|
|
27
|
+
description: "should throw if positionals is undefined",
|
|
28
|
+
task: apdu_1.default.run,
|
|
29
|
+
options: Object.assign(Object.assign({}, opts), { positionals: undefined }),
|
|
30
|
+
errorMessage: "You must pass an APDU",
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=apdu.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apdu.test.js","sourceRoot":"","sources":["../../src/__tests__/apdu.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,4DAAoC;AAEpC,6CAAgD;AAEhD,MAAM,IAAI,GAAgB;IACxB,WAAW,EAAE,CAAC,SAAS,CAAC;CACzB,CAAC;AAEF,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,EAAE,CAAC,yCAAyC,EAAE,GAAS,EAAE;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,EAAE,CAAC;QACnE,MAAM,cAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrB,UAAU,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC,CAAA,CAAC,CAAC;IAEH,6BAAgB,CAAC;QACf,WAAW,EAAE,0CAA0C;QACvD,IAAI,EAAE,cAAI,CAAC,GAAG;QAEd,OAAO,kCAAO,IAAI,KAAE,WAAW,EAAE,SAAS,GAAE;QAC5C,YAAY,EAAE,uBAAuB;KACtC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const vault_common_1 = require("@ledgerhq/vault-common");
|
|
16
|
+
const test_utils_1 = require("./test-utils");
|
|
17
|
+
const bake_1 = __importDefault(require("../commands/bake"));
|
|
18
|
+
const logger_1 = __importDefault(require("../logger"));
|
|
19
|
+
const bakeOpts = {
|
|
20
|
+
positionals: ["<manifest>"],
|
|
21
|
+
stdin: false,
|
|
22
|
+
retry: 0,
|
|
23
|
+
wipe: false,
|
|
24
|
+
gate: "<gate>",
|
|
25
|
+
compartment: 69,
|
|
26
|
+
hsm: "<hsm>",
|
|
27
|
+
hsmCert: "<hsmCert>",
|
|
28
|
+
hsmCertPassword: "<hsmCertPassword>",
|
|
29
|
+
salt: "",
|
|
30
|
+
};
|
|
31
|
+
describe("bake", () => {
|
|
32
|
+
const pool = test_utils_1.createTestDevicesPool();
|
|
33
|
+
const testCommand = (args) => {
|
|
34
|
+
const { description, task, options, manifest } = args;
|
|
35
|
+
it(description, () => __awaiter(void 0, void 0, void 0, function* () {
|
|
36
|
+
yield task(options);
|
|
37
|
+
expect(vault_common_1.bakeManifest).toHaveBeenCalledWith(manifest, pool, { logger: logger_1.default });
|
|
38
|
+
}));
|
|
39
|
+
};
|
|
40
|
+
testCommand({
|
|
41
|
+
description: "should bake using preset flag",
|
|
42
|
+
task: bake_1.default.run,
|
|
43
|
+
options: Object.assign(Object.assign({}, bakeOpts), { preset: "empty" }),
|
|
44
|
+
manifest: {},
|
|
45
|
+
});
|
|
46
|
+
test_utils_1.testErrorCommand({
|
|
47
|
+
description: "should throw if no preset, manifest file or path to manifest is specified",
|
|
48
|
+
task: bake_1.default.run,
|
|
49
|
+
options: Object.assign(Object.assign({}, bakeOpts), { positionals: [], preset: undefined, stdin: false }),
|
|
50
|
+
errorMessage: "You must pass either a preset or a manifest file or a manifest as stdin",
|
|
51
|
+
});
|
|
52
|
+
test_utils_1.testErrorCommand({
|
|
53
|
+
description: "should throw if more than 1 manifest is passed",
|
|
54
|
+
task: bake_1.default.run,
|
|
55
|
+
options: Object.assign(Object.assign({}, bakeOpts), { positionals: ["<manifest_1>", "<manifest_2>"] }),
|
|
56
|
+
errorMessage: "You can pass only one manifest file",
|
|
57
|
+
});
|
|
58
|
+
test_utils_1.testErrorCommand({
|
|
59
|
+
description: "should throw if preset is invalid",
|
|
60
|
+
task: bake_1.default.run,
|
|
61
|
+
options: Object.assign(Object.assign({}, bakeOpts), { preset: "invalid_preset" }),
|
|
62
|
+
errorMessage: "Invalid preset invalid_preset",
|
|
63
|
+
});
|
|
64
|
+
test_utils_1.testErrorCommand({
|
|
65
|
+
description: "should throw if preset is undefined and path to manifest is empty",
|
|
66
|
+
task: bake_1.default.run,
|
|
67
|
+
options: Object.assign(Object.assign({}, bakeOpts), { stdin: false, preset: undefined, positionals: [""] }),
|
|
68
|
+
errorMessage: "No filename given",
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=bake.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bake.test.js","sourceRoot":"","sources":["../../src/__tests__/bake.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,yDAAsD;AAGtD,6CAAuE;AACvE,4DAAoC;AAEpC,uDAA+B;AAE/B,MAAM,QAAQ,GAAgB;IAC5B,WAAW,EAAE,CAAC,YAAY,CAAC;IAC3B,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,EAAE;IACf,GAAG,EAAE,OAAO;IACZ,OAAO,EAAE,WAAW;IACpB,eAAe,EAAE,mBAAmB;IACpC,IAAI,EAAE,EAAE;CACT,CAAC;AAMF,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,MAAM,IAAI,GAAG,kCAAqB,EAAE,CAAC;IAErC,MAAM,WAAW,GAAG,CAA0B,IAAoB,EAAE,EAAE;QACpE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QACtD,EAAE,CAAC,WAAW,EAAE,GAAS,EAAE;YACzB,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,MAAM,CAAC,2BAAY,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,MAAM,EAAN,gBAAM,EAAE,CAAC,CAAC;QACxE,CAAC,CAAA,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,WAAW,CAAC;QACV,WAAW,EAAE,+BAA+B;QAC5C,IAAI,EAAE,cAAI,CAAC,GAAG;QACd,OAAO,kCAAO,QAAQ,KAAE,MAAM,EAAE,OAAO,GAAE;QACzC,QAAQ,EAAE,EAAE;KACb,CAAC,CAAC;IAEH,6BAAgB,CAAC;QACf,WAAW,EACT,2EAA2E;QAC7E,IAAI,EAAE,cAAI,CAAC,GAAG;QACd,OAAO,kCAAO,QAAQ,KAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAE;QAC1E,YAAY,EACV,yEAAyE;KAC5E,CAAC,CAAC;IAEH,6BAAgB,CAAC;QACf,WAAW,EAAE,gDAAgD;QAC7D,IAAI,EAAE,cAAI,CAAC,GAAG;QACd,OAAO,kCAAO,QAAQ,KAAE,WAAW,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,GAAE;QACvE,YAAY,EAAE,qCAAqC;KACpD,CAAC,CAAC;IAEH,6BAAgB,CAAC;QACf,WAAW,EAAE,mCAAmC;QAChD,IAAI,EAAE,cAAI,CAAC,GAAG;QACd,OAAO,kCAAO,QAAQ,KAAE,MAAM,EAAE,gBAAgB,GAAE;QAClD,YAAY,EAAE,+BAA+B;KAC9C,CAAC,CAAC;IAEH,6BAAgB,CAAC;QACf,WAAW,EACT,mEAAmE;QACrE,IAAI,EAAE,cAAI,CAAC,GAAG;QACd,OAAO,kCACF,QAAQ,KACX,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,CAAC,EAAE,CAAC,GAClB;QACD,YAAY,EAAE,mBAAmB;KAClC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -12,8 +12,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const command_line_usage_1 = __importDefault(require("command-line-usage"));
|
|
16
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
15
17
|
const cli_1 = __importDefault(require("../cli"));
|
|
16
18
|
const vault_common_1 = require("@ledgerhq/vault-common");
|
|
19
|
+
const test_utils_1 = require("./test-utils");
|
|
17
20
|
jest.mock("../commands/get");
|
|
18
21
|
const buildCommand = (str) => {
|
|
19
22
|
return str.split(" ");
|
|
@@ -22,11 +25,12 @@ afterEach(() => {
|
|
|
22
25
|
jest.clearAllMocks();
|
|
23
26
|
});
|
|
24
27
|
describe("Create commands", () => {
|
|
28
|
+
const pool = test_utils_1.createTestDevicesPool();
|
|
25
29
|
const testCreateCommand = (desc, command, manifest) => {
|
|
26
30
|
it(desc, () => __awaiter(void 0, void 0, void 0, function* () {
|
|
27
31
|
const argv = buildCommand(command);
|
|
28
32
|
yield cli_1.default(argv);
|
|
29
|
-
expect(vault_common_1.bakeManifest).toHaveBeenCalledWith(manifest,
|
|
33
|
+
expect(vault_common_1.bakeManifest).toHaveBeenCalledWith(manifest, pool, {
|
|
30
34
|
noApproval: undefined,
|
|
31
35
|
});
|
|
32
36
|
}));
|
|
@@ -44,6 +48,38 @@ describe("Create commands", () => {
|
|
|
44
48
|
expect(err).toEqual(new Error(errorMsg));
|
|
45
49
|
}));
|
|
46
50
|
};
|
|
51
|
+
it("should display CLI version", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
52
|
+
const spyConsole = jest.spyOn(console, "log").mockImplementation();
|
|
53
|
+
const argv = buildCommand("--version");
|
|
54
|
+
yield cli_1.default(argv);
|
|
55
|
+
const { version } = require("../../package.json");
|
|
56
|
+
expect(spyConsole).toHaveBeenCalledWith(version);
|
|
57
|
+
spyConsole.mockRestore();
|
|
58
|
+
}));
|
|
59
|
+
it('should set process.env.DEBUG = "1" if --debug flag is specified', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
60
|
+
const argv = buildCommand("create user --name Ringo --device lam --debug");
|
|
61
|
+
yield cli_1.default(argv);
|
|
62
|
+
expect(process.env.DEBUG).toBe("1");
|
|
63
|
+
}));
|
|
64
|
+
it("should process.exit(1) if a required option is not specified", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
65
|
+
const spyConsole = jest.spyOn(console, "log").mockImplementation();
|
|
66
|
+
const spyProcess = jest.spyOn(process, "exit").mockImplementation();
|
|
67
|
+
const argv = buildCommand("create user --role operator --device lam");
|
|
68
|
+
yield cli_1.default(argv);
|
|
69
|
+
expect(spyProcess).toHaveBeenCalledWith(1);
|
|
70
|
+
expect(spyConsole).toHaveBeenCalledWith(chalk_1.default `{red.bold ERROR} {red missing required option --name}`);
|
|
71
|
+
jest.restoreAllMocks();
|
|
72
|
+
}));
|
|
73
|
+
describe("help", () => {
|
|
74
|
+
it("should display help for unknown subcommand", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
75
|
+
const spyConsole = jest.spyOn(console, "log").mockImplementation();
|
|
76
|
+
const argv = buildCommand("create manager");
|
|
77
|
+
yield cli_1.default(argv);
|
|
78
|
+
expect(spyConsole).toHaveBeenCalledWith("helper text");
|
|
79
|
+
expect(command_line_usage_1.default).toHaveBeenCalledTimes(1);
|
|
80
|
+
spyConsole.mockRestore();
|
|
81
|
+
}));
|
|
82
|
+
});
|
|
47
83
|
describe("user creation", () => {
|
|
48
84
|
testCreateCommand("should create properly an operator", "create user --role operator --name Ringo --device 10", {
|
|
49
85
|
customUsernames: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../../src/__tests__/cli.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,iDAAyB;AACzB,yDAAsD;
|
|
1
|
+
{"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../../src/__tests__/cli.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const create_1 = require("../commands/create");
|
|
4
|
+
const test_utils_1 = require("./test-utils");
|
|
5
|
+
const opts = {
|
|
6
|
+
name: "<accountName>",
|
|
7
|
+
command: "account",
|
|
8
|
+
salt: "",
|
|
9
|
+
gate: "<gate>",
|
|
10
|
+
device: 4,
|
|
11
|
+
noApproval: false,
|
|
12
|
+
};
|
|
13
|
+
describe("create", () => {
|
|
14
|
+
test_utils_1.testErrorCommand({
|
|
15
|
+
description: "should throw when trying to whitelist addresses with not the right format",
|
|
16
|
+
task: create_1.createEntity,
|
|
17
|
+
options: Object.assign(Object.assign({}, opts), { command: "whitelist", addresses: ["a", "bc", "defg"] }),
|
|
18
|
+
errorMessage: "invalid address format, should be currency|name|address",
|
|
19
|
+
});
|
|
20
|
+
test_utils_1.testErrorCommand({
|
|
21
|
+
description: "should throw when trying to create an account with invalid rules format",
|
|
22
|
+
task: create_1.createEntity,
|
|
23
|
+
options: Object.assign(Object.assign({}, opts), { command: "account", rules: "rules" }),
|
|
24
|
+
errorMessage: "Invalid rules given",
|
|
25
|
+
});
|
|
26
|
+
test_utils_1.testErrorCommand({
|
|
27
|
+
description: "should throw when trying to create an account with no currency specified",
|
|
28
|
+
task: create_1.createEntity,
|
|
29
|
+
options: Object.assign(Object.assign({}, opts), { command: "account" }),
|
|
30
|
+
errorMessage: "No currency or contractAddress in account",
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=create.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.test.js","sourceRoot":"","sources":["../../src/__tests__/create.test.ts"],"names":[],"mappings":";;AAAA,+CAAkD;AAElD,6CAAgD;AAEhD,MAAM,IAAI,GAAiB;IACzB,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,6BAAgB,CAAC;QACf,WAAW,EACT,2EAA2E;QAC7E,IAAI,EAAE,qBAAY;QAClB,OAAO,kCAAO,IAAI,KAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,GAAE;QAC1E,YAAY,EAAE,yDAAyD;KACxE,CAAC,CAAC;IAEH,6BAAgB,CAAC;QACf,WAAW,EACT,yEAAyE;QAC3E,IAAI,EAAE,qBAAY;QAClB,OAAO,kCAAO,IAAI,KAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAE;QACxD,YAAY,EAAE,qBAAqB;KACpC,CAAC,CAAC;IAEH,6BAAgB,CAAC;QACf,WAAW,EACT,0EAA0E;QAC5E,IAAI,EAAE,qBAAY;QAClB,OAAO,kCAAO,IAAI,KAAE,OAAO,EAAE,SAAS,GAAE;QACxC,YAAY,EAAE,2CAA2C;KAC1D,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
22
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
23
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
24
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
25
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
26
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
27
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
const vaultCommon = __importStar(require("@ledgerhq/vault-common"));
|
|
32
|
+
const deploy_1 = require("../commands/deploy");
|
|
33
|
+
describe("destroy", () => {
|
|
34
|
+
beforeEach(() => {
|
|
35
|
+
jest.spyOn(console, "log").mockImplementation();
|
|
36
|
+
});
|
|
37
|
+
afterEach(() => {
|
|
38
|
+
jest.restoreAllMocks();
|
|
39
|
+
});
|
|
40
|
+
it("should properly call deploy", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
41
|
+
const spyDeploy = jest
|
|
42
|
+
.spyOn(vaultCommon, "deploy")
|
|
43
|
+
.mockResolvedValue({ url: "https://yay.com" });
|
|
44
|
+
yield deploy_1.deployCommand({ remoteURL: "abc", name: "foo", owner: "anon" });
|
|
45
|
+
expect(spyDeploy).toHaveBeenCalledWith({ remoteURL: "abc", name: "foo", owner: "anon" }, expect.anything());
|
|
46
|
+
}));
|
|
47
|
+
it("should pass preset and values if given", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
48
|
+
const spyDeploy = jest
|
|
49
|
+
.spyOn(vaultCommon, "deploy")
|
|
50
|
+
.mockResolvedValue({ url: "https://yay.com" });
|
|
51
|
+
yield deploy_1.deployCommand({
|
|
52
|
+
remoteURL: "abc",
|
|
53
|
+
name: "foo",
|
|
54
|
+
owner: "anon",
|
|
55
|
+
preset: "tezos",
|
|
56
|
+
values: '{ "versions": { "front": "7.4.4" } }',
|
|
57
|
+
});
|
|
58
|
+
expect(spyDeploy).toHaveBeenCalledWith({
|
|
59
|
+
remoteURL: "abc",
|
|
60
|
+
name: "foo",
|
|
61
|
+
owner: "anon",
|
|
62
|
+
preset: "tezos",
|
|
63
|
+
values: { versions: { front: "7.4.4" } },
|
|
64
|
+
}, expect.anything());
|
|
65
|
+
}));
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=deploy.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.test.js","sourceRoot":"","sources":["../../src/__tests__/deploy.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAAsD;AACtD,+CAAmD;AAEnD,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAS,EAAE;QAC3C,MAAM,SAAS,GAAG,IAAI;aACnB,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC;aAC5B,iBAAiB,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACjD,MAAM,sBAAa,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACtE,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CACpC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAChD,MAAM,CAAC,QAAQ,EAAE,CAClB,CAAC;IACJ,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAS,EAAE;QACtD,MAAM,SAAS,GAAG,IAAI;aACnB,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC;aAC5B,iBAAiB,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACjD,MAAM,sBAAa,CAAC;YAClB,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,sCAAsC;SAC/C,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CACpC;YACE,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;SACzC,EACD,MAAM,CAAC,QAAQ,EAAE,CAClB,CAAC;IACJ,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
22
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
23
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
24
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
25
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
26
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
27
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
const vaultCommon = __importStar(require("@ledgerhq/vault-common"));
|
|
32
|
+
const destroy_1 = require("../commands/destroy");
|
|
33
|
+
describe("destroy", () => {
|
|
34
|
+
it("should properly call destroy", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
35
|
+
const spyDestroy = jest.spyOn(vaultCommon, "destroy").mockResolvedValue();
|
|
36
|
+
yield destroy_1.destroyCommand({ remoteURL: "abc", name: "foo" });
|
|
37
|
+
expect(spyDestroy).toHaveBeenCalledWith({ remoteURL: "abc", name: "foo" }, expect.anything());
|
|
38
|
+
}));
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=destroy.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"destroy.test.js","sourceRoot":"","sources":["../../src/__tests__/destroy.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAAsD;AACtD,iDAAqD;AAErD,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,8BAA8B,EAAE,GAAS,EAAE;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAC1E,MAAM,wBAAc,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CACrC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EACjC,MAAM,CAAC,QAAQ,EAAE,CAClB,CAAC;IACJ,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const drain_1 = __importDefault(require("../commands/drain"));
|
|
16
|
+
const opts = {
|
|
17
|
+
gate: "<gate>",
|
|
18
|
+
salt: "",
|
|
19
|
+
device: 4,
|
|
20
|
+
};
|
|
21
|
+
jest.mock("@ledgerhq/vault-common", () => ({
|
|
22
|
+
createDevicesPool: jest.fn().mockReturnValue({
|
|
23
|
+
login: jest
|
|
24
|
+
.fn()
|
|
25
|
+
.mockReturnValue({ network: jest.fn().mockReturnValue("drain") }),
|
|
26
|
+
}),
|
|
27
|
+
}));
|
|
28
|
+
describe("drain", () => {
|
|
29
|
+
it("should drain full gate data", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
30
|
+
const spyConsole = jest.spyOn(console, "log").mockImplementation();
|
|
31
|
+
yield drain_1.default.run(opts);
|
|
32
|
+
expect(spyConsole).toHaveBeenCalledWith('{"/_version":"drain","/organization":"drain","/people/me":"drain","/people?pageSize=-1&role=ADMIN&role=OPERATOR":"drain","/groups?pageSize=-1":"drain","/whitelists?pageSize=-1":"drain","/accounts?pageSize=-1":"drain","/accounts/tx_rights?light=1":"drain","/transactions?pageSize=-1":"drain","/transactions/can_create_tx":"drain","/requests?order=asc&pageSize=-1&status=PENDING_APPROVAL&status=PENDING_REGISTRATION":"drain"}');
|
|
33
|
+
spyConsole.mockRestore();
|
|
34
|
+
}));
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=drain.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drain.test.js","sourceRoot":"","sources":["../../src/__tests__/drain.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,8DAAsC;AAGtC,MAAM,IAAI,GAAiB;IACzB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,CAAC;CACV,CAAC;AAEF,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAAC,CAAC;IACzC,iBAAiB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;QAC3C,KAAK,EAAE,IAAI;aACR,EAAE,EAAE;aACJ,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;KACpE,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,EAAE,CAAC,6BAA6B,EAAE,GAAS,EAAE;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,EAAE,CAAC;QACnE,MAAM,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CACrC,yaAAya,CAC1a,CAAC;QACF,UAAU,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const fetch_1 = __importDefault(require("../commands/fetch"));
|
|
7
|
+
const test_utils_1 = require("./test-utils");
|
|
8
|
+
const fetchOpts = {
|
|
9
|
+
positionals: [],
|
|
10
|
+
salt: "",
|
|
11
|
+
gate: "<gate>",
|
|
12
|
+
device: 4,
|
|
13
|
+
};
|
|
14
|
+
describe("fetch", () => {
|
|
15
|
+
test_utils_1.testErrorCommand({
|
|
16
|
+
description: "should throw if positionals is empty",
|
|
17
|
+
task: fetch_1.default.run,
|
|
18
|
+
options: Object.assign({}, fetchOpts),
|
|
19
|
+
errorMessage: "No URL given",
|
|
20
|
+
});
|
|
21
|
+
test_utils_1.testErrorCommand({
|
|
22
|
+
description: "should throw if url is empty",
|
|
23
|
+
task: fetch_1.default.run,
|
|
24
|
+
options: Object.assign(Object.assign({}, fetchOpts), { positionals: [""] }),
|
|
25
|
+
errorMessage: "No URL given",
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=fetch.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch.test.js","sourceRoot":"","sources":["../../src/__tests__/fetch.test.ts"],"names":[],"mappings":";;;;;AAAA,8DAAsC;AAEtC,6CAAgD;AAEhD,MAAM,SAAS,GAAiB;IAC9B,WAAW,EAAE,EAAE;IACf,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,CAAC;CACV,CAAC;AAEF,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,6BAAgB,CAAC;QACf,WAAW,EAAE,sCAAsC;QACnD,IAAI,EAAE,eAAK,CAAC,GAAG;QACf,OAAO,oBAAO,SAAS,CAAE;QACzB,YAAY,EAAE,cAAc;KAC7B,CAAC,CAAC;IAEH,6BAAgB,CAAC;QACf,WAAW,EAAE,8BAA8B;QAC3C,IAAI,EAAE,eAAK,CAAC,GAAG;QACf,OAAO,kCAAO,SAAS,KAAE,WAAW,EAAE,CAAC,EAAE,CAAC,GAAE;QAC5C,YAAY,EAAE,cAAc;KAC7B,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|