import { expect } from 'chai'; import { parseListObjectsByBucketNameResponse } from '../src/clients/spclient/spApis/listObjectsByBucket'; import { parseGetUserBucketsResponse } from '../src/clients/spclient/spApis/getUserBuckets'; describe('parseListObjectsByBucketNameResponse', () => { test('parse CommonPrefixes contains 2 element at least', async () => { const data = ` xxx yyy 36 50 false foo `; const res = await parseListObjectsByBucketNameResponse(data); expect(res.GfSpListObjectsByBucketNameResponse).to.have.deep.property('CommonPrefixes', [ 'xxx', 'yyy', ]); }); test('parse CommonPrefixes contains 1 element', async () => { const data = ` xxx 36 50 false foo `; const res = await parseListObjectsByBucketNameResponse(data); expect(res.GfSpListObjectsByBucketNameResponse).to.have.deep.property('CommonPrefixes', [ 'xxx', ]); }); test('parse empty CommonPrefixes', async () => { const data = ` 36 50 false foo `; const res = await parseListObjectsByBucketNameResponse(data); expect(res.GfSpListObjectsByBucketNameResponse).to.have.deep.property('CommonPrefixes', []); }); test('parse empty Objects', async () => { const data = ` 36 50 false foo `; const res = await parseListObjectsByBucketNameResponse(data); expect(res.GfSpListObjectsByBucketNameResponse).to.have.deep.property('Objects', []); }); test('parse Objects contains 1 element', async () => { const data = ` 0x1C893441AB6c1A75E01887087ea508bE8e07AAae 0x1C893441AB6c1A75E01887087ea508bE8e07AAae true obk 739112 1 205 1 application/x-yaml 1692971564 1 0 0 a7554caa696d4db8c8ea4500ad2eac6244bca79e3c3193db8cc699a7e89cf341 b054fd20d637bfa706182288d687f2c0f0ef5afaa4114170bc18699b268e9c28 0x0000000000000000000000000000000000000000000000000000000000000000 false 232480 0 0x8b97D152149309C15B1C339F547a9aca9Bf629D2 0x42d854103bc83359b86b55b8a0452895865c2de1ac51f26d551fca0e2a587214 0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75 0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75 36 50 false foo `; const res = await parseListObjectsByBucketNameResponse(data); expect(res.GfSpListObjectsByBucketNameResponse).to.have.deep.property('Objects', [ { ObjectInfo: { Owner: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae', Creator: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae', BucketName: 'true', ObjectName: 'obk', Id: 739112, LocalVirtualGroupId: 1, PayloadSize: 205, Visibility: 1, ContentType: 'application/x-yaml', CreateAt: 1692971564, ObjectStatus: 1, RedundancyType: 0, SourceType: 0, Checksums: [ 'a7554caa696d4db8c8ea4500ad2eac6244bca79e3c3193db8cc699a7e89cf341', 'b054fd20d637bfa706182288d687f2c0f0ef5afaa4114170bc18699b268e9c28', ], }, LockedBalance: '0x0000000000000000000000000000000000000000000000000000000000000000', Removed: false, UpdateAt: 232480, DeleteAt: 0, DeleteReason: '', Operator: '0x8b97D152149309C15B1C339F547a9aca9Bf629D2', CreateTxHash: '0x42d854103bc83359b86b55b8a0452895865c2de1ac51f26d551fca0e2a587214', UpdateTxHash: '0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75', SealTxHash: '0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75', }, ]); }); test('parse Objects contains 2 element at least', async () => { const data = ` 0x1C893441AB6c1A75E01887087ea508bE8e07AAae 0x1C893441AB6c1A75E01887087ea508bE8e07AAae foo obk 739112 1 205 1 application/x-yaml 1692971564 1 0 0 a7554caa696d4db8c8ea4500ad2eac6244bca79e3c3193db8cc699a7e89cf341 b054fd20d637bfa706182288d687f2c0f0ef5afaa4114170bc18699b268e9c28 0x0000000000000000000000000000000000000000000000000000000000000000 false 232480 0 0x8b97D152149309C15B1C339F547a9aca9Bf629D2 0x42d854103bc83359b86b55b8a0452895865c2de1ac51f26d551fca0e2a587214 0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75 0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75 0x1C893441AB6c1A75E01887087ea508bE8e07AAae 0x1C893441AB6c1A75E01887087ea508bE8e07AAae foo obk 739112 1 205 1 application/x-yaml 1692971564 1 0 0 a7554caa696d4db8c8ea4500ad2eac6244bca79e3c3193db8cc699a7e89cf341 b054fd20d637bfa706182288d687f2c0f0ef5afaa4114170bc18699b268e9c28 0x0000000000000000000000000000000000000000000000000000000000000000 false 232480 0 0x8b97D152149309C15B1C339F547a9aca9Bf629D2 0x42d854103bc83359b86b55b8a0452895865c2de1ac51f26d551fca0e2a587214 0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75 0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75 36 50 false foo `; const res = await parseListObjectsByBucketNameResponse(data); expect(res.GfSpListObjectsByBucketNameResponse).to.have.deep.property('Objects', [ { ObjectInfo: { Owner: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae', Creator: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae', BucketName: 'foo', ObjectName: 'obk', Id: 739112, LocalVirtualGroupId: 1, PayloadSize: 205, Visibility: 1, ContentType: 'application/x-yaml', CreateAt: 1692971564, ObjectStatus: 1, RedundancyType: 0, SourceType: 0, Checksums: [ 'a7554caa696d4db8c8ea4500ad2eac6244bca79e3c3193db8cc699a7e89cf341', 'b054fd20d637bfa706182288d687f2c0f0ef5afaa4114170bc18699b268e9c28', ], }, LockedBalance: '0x0000000000000000000000000000000000000000000000000000000000000000', Removed: false, UpdateAt: 232480, DeleteAt: 0, DeleteReason: '', Operator: '0x8b97D152149309C15B1C339F547a9aca9Bf629D2', CreateTxHash: '0x42d854103bc83359b86b55b8a0452895865c2de1ac51f26d551fca0e2a587214', UpdateTxHash: '0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75', SealTxHash: '0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75', }, { ObjectInfo: { Owner: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae', Creator: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae', BucketName: 'foo', ObjectName: 'obk', Id: 739112, LocalVirtualGroupId: 1, PayloadSize: 205, Visibility: 1, ContentType: 'application/x-yaml', CreateAt: 1692971564, ObjectStatus: 1, RedundancyType: 0, SourceType: 0, Checksums: [ 'a7554caa696d4db8c8ea4500ad2eac6244bca79e3c3193db8cc699a7e89cf341', 'b054fd20d637bfa706182288d687f2c0f0ef5afaa4114170bc18699b268e9c28', ], }, LockedBalance: '0x0000000000000000000000000000000000000000000000000000000000000000', Removed: false, UpdateAt: 232480, DeleteAt: 0, DeleteReason: '', Operator: '0x8b97D152149309C15B1C339F547a9aca9Bf629D2', CreateTxHash: '0x42d854103bc83359b86b55b8a0452895865c2de1ac51f26d551fca0e2a587214', UpdateTxHash: '0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75', SealTxHash: '0x704ba83349018ddcdd0774fb4a01e84eda3d32d8577d958cfa272fbcc2892f75', }, ]); }); }); describe('parseGetUserBucketsResponse', () => { test('parse Buckets containers 2 element at least', async () => { const data = ` 0x1C893441AB6c1A75E01887087ea508bE8e07AAae false 1 1156769 0 1693279149 0x1C893441AB6c1A75E01887087ea508bE8e07AAae 8 0 0 false 0 0x1C893441AB6c1A75E01887087ea508bE8e07AAae 0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292 0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292 363707 1693279149 30 6 0x3dBB43836cF80F141C338Cba7709aBffAfB8F4bC 0x1C893441AB6c1A75E01887087ea508bE8e07AAae false 1 1156769 0 1693279149 0x1C893441AB6c1A75E01887087ea508bE8e07AAae 8 0 0 false 0 0x1C893441AB6c1A75E01887087ea508bE8e07AAae 0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292 0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292 363707 1693279149 31 6 0x3dBB43836cF80F141C338Cba7709aBffAfB8F4bC `; const res = await parseGetUserBucketsResponse(data); expect(res.GfSpGetUserBucketsResponse).to.have.deep.property('Buckets', [ { BucketInfo: { Owner: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae', BucketName: 'false', Visibility: 1, Id: '1156769', SourceType: 0, CreateAt: 1693279149, PaymentAddress: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae', GlobalVirtualGroupFamilyId: 8, ChargedReadQuota: 0, BucketStatus: 0, }, Removed: false, DeleteAt: 0, DeleteReason: '', Operator: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae', CreateTxHash: '0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292', UpdateTxHash: '0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292', UpdateAt: 363707, UpdateTime: 1693279149, Vgf: { Id: 30, PrimarySpId: 6, VirtualPaymentAddress: '0x3dBB43836cF80F141C338Cba7709aBffAfB8F4bC', }, }, { BucketInfo: { Owner: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae', BucketName: 'false', Visibility: 1, Id: '1156769', SourceType: 0, CreateAt: 1693279149, PaymentAddress: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae', GlobalVirtualGroupFamilyId: 8, ChargedReadQuota: 0, BucketStatus: 0, }, Removed: false, DeleteAt: 0, DeleteReason: '', Operator: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae', CreateTxHash: '0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292', UpdateTxHash: '0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292', UpdateAt: 363707, UpdateTime: 1693279149, Vgf: { Id: 31, PrimarySpId: 6, VirtualPaymentAddress: '0x3dBB43836cF80F141C338Cba7709aBffAfB8F4bC', }, }, ]); }); test('parse Buckets containers 1 element', async () => { const data = ` 0x1C893441AB6c1A75E01887087ea508bE8e07AAae false 1 1156769 0 1693279149 0x1C893441AB6c1A75E01887087ea508bE8e07AAae 8 0 0 false 0 0x1C893441AB6c1A75E01887087ea508bE8e07AAae 0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292 0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292 363707 1693279149 30 6 0x3dBB43836cF80F141C338Cba7709aBffAfB8F4bC `; const res = await parseGetUserBucketsResponse(data); expect(res.GfSpGetUserBucketsResponse).to.have.deep.property('Buckets', [ { BucketInfo: { Owner: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae', BucketName: 'false', Visibility: 1, Id: '1156769', SourceType: 0, CreateAt: 1693279149, PaymentAddress: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae', GlobalVirtualGroupFamilyId: 8, ChargedReadQuota: 0, BucketStatus: 0, }, Removed: false, DeleteAt: 0, DeleteReason: '', Operator: '0x1C893441AB6c1A75E01887087ea508bE8e07AAae', CreateTxHash: '0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292', UpdateTxHash: '0xea5f91a6ba8e558e35ecc416579b4585cc494d5dcc99bce519cc54968b0b1292', UpdateAt: 363707, UpdateTime: 1693279149, Vgf: { Id: 30, PrimarySpId: 6, VirtualPaymentAddress: '0x3dBB43836cF80F141C338Cba7709aBffAfB8F4bC', }, }, ]); }); test('parse empty Buckets', async () => { const data = ``; const res = await parseGetUserBucketsResponse(data); expect(res.GfSpGetUserBucketsResponse).to.have.deep.property('Buckets', []); }); });