@@ -40,6 +40,21 @@ const gatewayApi = new GatewayAPI({
40
40
} ) ;
41
41
42
42
describe ( 'ArFSPublicDriveBuilder' , ( ) => {
43
+ it ( 'handles empty app version when building from node' , async ( ) => {
44
+ const nodeWithEmptyAppVersion = {
45
+ ...stubPublicDriveGQLNode ,
46
+ tags : stubPublicDriveGQLNode . tags ?. map ( ( tag ) => ( tag . name === 'App-Version' ? { ...tag , value : '' } : tag ) )
47
+ } ;
48
+
49
+ const builder = ArFSPublicDriveBuilder . fromArweaveNode ( nodeWithEmptyAppVersion as GQLNodeInterface , gatewayApi ) ;
50
+ stub ( builder , 'getDataForTxID' ) . resolves ( stubPublicDriveGetDataResult ) ;
51
+ const driveMetaData = await builder . build ( nodeWithEmptyAppVersion as GQLNodeInterface ) ;
52
+
53
+ expect ( driveMetaData . appVersion ) . to . equal ( '' ) ;
54
+ expect ( driveMetaData . appName ) . to . equal ( 'ArDrive-CLI' ) ;
55
+ expect ( `${ driveMetaData . driveId } ` ) . to . equal ( 'e93cf9c4-5f20-4d7a-87c4-034777cbb51e' ) ;
56
+ } ) ;
57
+
43
58
it ( 'constructs expected drive from node' , async ( ) => {
44
59
const builder = ArFSPublicDriveBuilder . fromArweaveNode ( stubPublicDriveGQLNode as GQLNodeInterface , gatewayApi ) ;
45
60
stub ( builder , 'getDataForTxID' ) . resolves ( stubPublicDriveGetDataResult ) ;
@@ -167,6 +182,26 @@ const stubPrivateDriveGetDataResult = Buffer.from(Uint8Array.from([
167
182
] ) ) ;
168
183
169
184
describe ( 'ArFSPrivateDriveBuilder' , ( ) => {
185
+ it ( 'handles empty app version when building from node' , async ( ) => {
186
+ const nodeWithEmptyAppVersion = {
187
+ ...stubPrivateDriveGQLNode ,
188
+ tags : stubPrivateDriveGQLNode . tags ?. map ( ( tag ) => ( tag . name === 'App-Version' ? { ...tag , value : '' } : tag ) )
189
+ } ;
190
+
191
+ const builder = ArFSPrivateDriveBuilder . fromArweaveNode (
192
+ nodeWithEmptyAppVersion as GQLNodeInterface ,
193
+ gatewayApi ,
194
+ driveKeyForStubPrivateDrive
195
+ ) ;
196
+ stub ( builder , 'getDataForTxID' ) . resolves ( stubPrivateDriveGetDataResult ) ;
197
+
198
+ const driveMetaData = await builder . build ( nodeWithEmptyAppVersion as GQLNodeInterface ) ;
199
+
200
+ expect ( driveMetaData . appVersion ) . to . equal ( '' ) ;
201
+ expect ( driveMetaData . appName ) . to . equal ( 'ArDrive-CLI' ) ;
202
+ expect ( `${ driveMetaData . driveId } ` ) . to . equal ( '5ca7ddfe-effa-4fc5-8796-8f3e0502854a' ) ;
203
+ } ) ;
204
+
170
205
it ( 'constructs expected drive from node' , async ( ) => {
171
206
const builder = ArFSPrivateDriveBuilder . fromArweaveNode (
172
207
stubPrivateDriveGQLNode as GQLNodeInterface ,
@@ -246,6 +281,56 @@ describe('SafeArFSDriveBuilder', () => {
246
281
const stubPrivateKeyData = new PrivateKeyData ( { driveKeys : [ driveKeyForStubPrivateDrive ] } ) ;
247
282
const emptyPrivateKeyData = new PrivateKeyData ( { } ) ;
248
283
284
+ it ( 'handles empty app version when building public drive' , async ( ) => {
285
+ const nodeWithEmptyAppVersion = {
286
+ ...stubPublicDriveGQLNode ,
287
+ tags : stubPublicDriveGQLNode . tags ?. map ( ( tag ) => ( tag . name === 'App-Version' ? { ...tag , value : '' } : tag ) )
288
+ } ;
289
+
290
+ stub ( gatewayApi , 'gqlRequest' ) . resolves ( {
291
+ edges : [ { node : nodeWithEmptyAppVersion } ]
292
+ } as GQLTransactionsResultInterface ) ;
293
+
294
+ const builder = new SafeArFSDriveBuilder ( {
295
+ entityId : EID ( 'e93cf9c4-5f20-4d7a-87c4-034777cbb51e' ) ,
296
+ gatewayApi,
297
+ privateKeyData : emptyPrivateKeyData
298
+ } ) ;
299
+
300
+ stub ( builder , 'getDataForTxID' ) . resolves ( stubPublicDriveGetDataResult ) ;
301
+
302
+ const driveMetaData = await builder . build ( ) ;
303
+
304
+ expect ( driveMetaData . appVersion ) . to . equal ( '' ) ;
305
+ expect ( driveMetaData . appName ) . to . equal ( 'ArDrive-CLI' ) ;
306
+ expect ( `${ driveMetaData . driveId } ` ) . to . equal ( 'e93cf9c4-5f20-4d7a-87c4-034777cbb51e' ) ;
307
+ } ) ;
308
+
309
+ it ( 'handles empty app version when building private drive' , async ( ) => {
310
+ const nodeWithEmptyAppVersion = {
311
+ ...stubPrivateDriveGQLNode ,
312
+ tags : stubPrivateDriveGQLNode . tags ?. map ( ( tag ) => ( tag . name === 'App-Version' ? { ...tag , value : '' } : tag ) )
313
+ } ;
314
+
315
+ stub ( gatewayApi , 'gqlRequest' ) . resolves ( {
316
+ edges : [ { node : nodeWithEmptyAppVersion } ]
317
+ } as GQLTransactionsResultInterface ) ;
318
+
319
+ const builder = new SafeArFSDriveBuilder ( {
320
+ entityId : EID ( '5ca7ddfe-effa-4fc5-8796-8f3e0502854a' ) ,
321
+ gatewayApi,
322
+ privateKeyData : stubPrivateKeyData
323
+ } ) ;
324
+
325
+ stub ( builder , 'getDataForTxID' ) . resolves ( stubPrivateDriveGetDataResult ) ;
326
+
327
+ const driveMetaData = ( await builder . build ( ) ) as ArFSPrivateDrive ;
328
+
329
+ expect ( driveMetaData . appVersion ) . to . equal ( '' ) ;
330
+ expect ( driveMetaData . appName ) . to . equal ( 'ArDrive-CLI' ) ;
331
+ expect ( `${ driveMetaData . driveId } ` ) . to . equal ( '5ca7ddfe-effa-4fc5-8796-8f3e0502854a' ) ;
332
+ } ) ;
333
+
249
334
it ( 'constructs expected public drive from node' , async ( ) => {
250
335
const builder = SafeArFSDriveBuilder . fromArweaveNode (
251
336
stubPublicDriveGQLNode as GQLNodeInterface ,
0 commit comments