Skip to content

Commit 39f349f

Browse files
committed
chore: updated tests for mkdir
[ci skip]
1 parent c53886e commit 39f349f

4 files changed

Lines changed: 846 additions & 78 deletions

File tree

src/secrets/CommandMkdir.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ class CommandMkdir extends CommandPolykey {
1414
'<secretPath...>',
1515
'Path to where the directory to be created, specified as <vaultName>:<directoryPath>',
1616
);
17-
this.option('-r, --recursive', 'Create the directory recursively');
1817
this.addOption(binOptions.nodeId);
1918
this.addOption(binOptions.clientHost);
2019
this.addOption(binOptions.clientPort);

tests/secrets/mkdir.test.ts

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
import type { VaultName } from 'polykey/dist/vaults/types';
2+
import path from 'path';
3+
import fs from 'fs';
4+
import Logger, { LogLevel, StreamHandler } from '@matrixai/logger';
5+
import PolykeyAgent from 'polykey/dist/PolykeyAgent';
6+
import { vaultOps } from 'polykey/dist/vaults';
7+
import * as keysUtils from 'polykey/dist/keys/utils';
8+
import * as testUtils from '../utils';
9+
10+
describe('commandMkdir', () => {
11+
const password = 'password';
12+
const logger = new Logger('CLI Test', LogLevel.WARN, [new StreamHandler()]);
13+
let dataDir: string;
14+
let polykeyAgent: PolykeyAgent;
15+
let command: Array<string>;
16+
17+
beforeEach(async () => {
18+
dataDir = await fs.promises.mkdtemp(
19+
path.join(globalThis.tmpDir, 'polykey-test-'),
20+
);
21+
polykeyAgent = await PolykeyAgent.createPolykeyAgent({
22+
password,
23+
options: {
24+
nodePath: dataDir,
25+
agentServiceHost: '127.0.0.1',
26+
clientServiceHost: '127.0.0.1',
27+
keys: {
28+
passwordOpsLimit: keysUtils.passwordOpsLimits.min,
29+
passwordMemLimit: keysUtils.passwordMemLimits.min,
30+
strictMemoryLock: false,
31+
},
32+
},
33+
logger: logger,
34+
});
35+
});
36+
afterEach(async () => {
37+
await polykeyAgent.stop();
38+
await fs.promises.rm(dataDir, {
39+
force: true,
40+
recursive: true,
41+
});
42+
});
43+
44+
test('should make a directory', async () => {
45+
const vaultName = 'vault' as VaultName;
46+
const dirName = 'dir';
47+
const vaultId = await polykeyAgent.vaultManager.createVault(vaultName);
48+
49+
command = [
50+
'secrets',
51+
'mkdir',
52+
'-np',
53+
dataDir,
54+
`${vaultName}:${dirName}`
55+
];
56+
57+
const result = await testUtils.pkStdio([...command], {
58+
env: { PK_PASSWORD: password },
59+
cwd: dataDir,
60+
});
61+
expect(result.exitCode).toBe(0);
62+
63+
await polykeyAgent.vaultManager.withVaults([vaultId], async (vault) => {
64+
const stat = await vaultOps.statSecret(vault, dirName);
65+
expect(stat.isDirectory()).toBeTruthy();
66+
});
67+
});
68+
test('should make directories recursively', async () => {
69+
const vaultName = 'vault' as VaultName;
70+
const dirName1 = 'dir1';
71+
const dirName2 = 'dir2';
72+
const dirNameNested = `${dirName1}/${dirName2}`;
73+
const vaultId = await polykeyAgent.vaultManager.createVault(vaultName);
74+
75+
command = [
76+
'secrets',
77+
'mkdir',
78+
'-np',
79+
dataDir,
80+
`${vaultName}:${dirNameNested}`,
81+
'--recursive'
82+
];
83+
84+
const result = await testUtils.pkStdio([...command], {
85+
env: { PK_PASSWORD: password },
86+
cwd: dataDir,
87+
});
88+
expect(result.exitCode).toBe(0);
89+
90+
await polykeyAgent.vaultManager.withVaults([vaultId], async (vault) => {
91+
const stat1 = await vaultOps.statSecret(vault, dirName1);
92+
expect(stat1.isDirectory()).toBeTruthy();
93+
const stat2 = await vaultOps.statSecret(vault, dirNameNested);
94+
expect(stat2.isDirectory()).toBeTruthy();
95+
});
96+
});
97+
test('should make directories in multiple vaults', async () => {
98+
const vaultName1 = 'vault1' as VaultName;
99+
const vaultName2 = 'vault2' as VaultName;
100+
const vaultId1 = await polykeyAgent.vaultManager.createVault(vaultName1);
101+
const vaultId2 = await polykeyAgent.vaultManager.createVault(vaultName2);
102+
const dirName1 = 'dir1';
103+
const dirName2 = 'dir2';
104+
const dirName3 = 'dir3';
105+
106+
command = [
107+
'secrets',
108+
'mkdir',
109+
'-np',
110+
dataDir,
111+
`${vaultName1}:${dirName1}`,
112+
`${vaultName2}:${dirName2}`,
113+
`${vaultName1}:${dirName3}`,
114+
];
115+
116+
const result = await testUtils.pkStdio([...command], {
117+
env: { PK_PASSWORD: password },
118+
cwd: dataDir,
119+
});
120+
expect(result.exitCode).toBe(0);
121+
122+
await polykeyAgent.vaultManager.withVaults([vaultId1, vaultId2], async (vault1, vault2) => {
123+
const stat1 = await vaultOps.statSecret(vault1, dirName1);
124+
expect(stat1.isDirectory()).toBeTruthy();
125+
const stat2 = await vaultOps.statSecret(vault2, dirName2);
126+
expect(stat2.isDirectory()).toBeTruthy();
127+
const stat3 = await vaultOps.statSecret(vault1, dirName3);
128+
expect(stat3.isDirectory()).toBeTruthy();
129+
});
130+
});
131+
});

tests/secrets/newDir.test.ts

Lines changed: 0 additions & 77 deletions
This file was deleted.

0 commit comments

Comments
 (0)