@@ -41,27 +41,123 @@ describe('commandListSecrets', () => {
4141 } ) ;
4242 } ) ;
4343
44+ test (
45+ 'should fail when vault does not exist' ,
46+ async ( ) => {
47+ command = [ 'secrets' , 'ls' , '-np' , dataDir , 'DoesntExist' ] ;
48+ const result = await testUtils . pkStdio ( [ ...command ] , {
49+ env : {
50+ PK_PASSWORD : password ,
51+ } ,
52+ cwd : dataDir ,
53+ } ) ;
54+ expect ( result . exitCode ) . toBe ( 64 ) ; // Sysexits.USAGE
55+ } ,
56+ globalThis . defaultTimeout * 2 ,
57+ ) ;
58+
4459 test (
4560 'should list secrets' ,
4661 async ( ) => {
4762 const vaultName = 'Vault4' as VaultName ;
4863 const vaultId = await polykeyAgent . vaultManager . createVault ( vaultName ) ;
4964
5065 await polykeyAgent . vaultManager . withVaults ( [ vaultId ] , async ( vault ) => {
51- await vaultOps . addSecret ( vault , 'MySecret1' , 'this is the secret 1 ' ) ;
52- await vaultOps . addSecret ( vault , 'MySecret2' , 'this is the secret 2 ' ) ;
53- await vaultOps . addSecret ( vault , 'MySecret3' , 'this is the secret 3 ' ) ;
66+ await vaultOps . addSecret ( vault , 'MySecret1' , '' ) ;
67+ await vaultOps . addSecret ( vault , 'MySecret2' , '' ) ;
68+ await vaultOps . addSecret ( vault , 'MySecret3' , '' ) ;
5469 } ) ;
5570
56- command = [ 'secrets' , 'list' , '-np' , dataDir , vaultName ] ;
57-
71+ command = [ 'secrets' , 'ls' , '-np' , dataDir , vaultName ] ;
5872 const result = await testUtils . pkStdio ( [ ...command ] , {
5973 env : {
6074 PK_PASSWORD : password ,
6175 } ,
6276 cwd : dataDir ,
6377 } ) ;
6478 expect ( result . exitCode ) . toBe ( 0 ) ;
79+ expect ( result . stdout ) . toBe ( 'MySecret1\nMySecret2\nMySecret3\n' ) ;
80+ } ,
81+ globalThis . defaultTimeout * 2 ,
82+ ) ;
83+
84+ test (
85+ 'should fail when path is not a directory' ,
86+ async ( ) => {
87+ const vaultName = 'Vault5' as VaultName ;
88+ const vaultId = await polykeyAgent . vaultManager . createVault ( vaultName ) ;
89+
90+ await polykeyAgent . vaultManager . withVaults ( [ vaultId ] , async ( vault ) => {
91+ await vaultOps . mkdir ( vault , 'SecretDir' ) ;
92+ await vaultOps . addSecret ( vault , 'SecretDir/MySecret1' , '' ) ;
93+ await vaultOps . addSecret ( vault , 'SecretDir/MySecret2' , '' ) ;
94+ await vaultOps . addSecret ( vault , 'SecretDir/MySecret3' , '' ) ;
95+ } ) ;
96+
97+ command = [ 'secrets' , 'ls' , '-np' , dataDir , `${ vaultName } :WrongDirName` ] ;
98+ let result = await testUtils . pkStdio ( [ ...command ] , {
99+ env : {
100+ PK_PASSWORD : password ,
101+ } ,
102+ cwd : dataDir ,
103+ } ) ;
104+ expect ( result . exitCode ) . toBe ( 64 ) ;
105+
106+ command = [
107+ 'secrets' ,
108+ 'ls' ,
109+ '-np' ,
110+ dataDir ,
111+ `${ vaultName } :SecretDir/MySecret1` ,
112+ ] ;
113+ result = await testUtils . pkStdio ( [ ...command ] , {
114+ env : {
115+ PK_PASSWORD : password ,
116+ } ,
117+ cwd : dataDir ,
118+ } ) ;
119+ expect ( result . exitCode ) . toBe ( 64 ) ;
120+ } ,
121+ globalThis . defaultTimeout * 2 ,
122+ ) ;
123+
124+ test (
125+ 'should list secrets within directories' ,
126+ async ( ) => {
127+ const vaultName = 'Vault6' as VaultName ;
128+ const vaultId = await polykeyAgent . vaultManager . createVault ( vaultName ) ;
129+
130+ await polykeyAgent . vaultManager . withVaults ( [ vaultId ] , async ( vault ) => {
131+ await vaultOps . mkdir ( vault , 'SecretDir/NestedDir' , { recursive : true } ) ;
132+ await vaultOps . addSecret ( vault , 'SecretDir/MySecret1' , '' ) ;
133+ await vaultOps . addSecret ( vault , 'SecretDir/NestedDir/MySecret2' , '' ) ;
134+ } ) ;
135+
136+ command = [ 'secrets' , 'ls' , '-np' , dataDir , `${ vaultName } :SecretDir` ] ;
137+ let result = await testUtils . pkStdio ( [ ...command ] , {
138+ env : {
139+ PK_PASSWORD : password ,
140+ } ,
141+ cwd : dataDir ,
142+ } ) ;
143+ expect ( result . exitCode ) . toBe ( 0 ) ;
144+ expect ( result . stdout ) . toBe ( 'SecretDir/MySecret1\nSecretDir/NestedDir\n' ) ;
145+
146+ command = [
147+ 'secrets' ,
148+ 'ls' ,
149+ '-np' ,
150+ dataDir ,
151+ `${ vaultName } :SecretDir/NestedDir` ,
152+ ] ;
153+ result = await testUtils . pkStdio ( [ ...command ] , {
154+ env : {
155+ PK_PASSWORD : password ,
156+ } ,
157+ cwd : dataDir ,
158+ } ) ;
159+ expect ( result . exitCode ) . toBe ( 0 ) ;
160+ expect ( result . stdout ) . toBe ( 'SecretDir/NestedDir/MySecret2\n' ) ;
65161 } ,
66162 globalThis . defaultTimeout * 2 ,
67163 ) ;
0 commit comments