Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion .talismanrc
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ fileignoreconfig:
- filename: packages/contentstack-import/test/unit/import/modules/labels.test.ts
checksum: 46fe0d1602ab386f7eaee9839bc376b98ab8d4262f823784eda9cfa2bf893758
- filename: packages/contentstack-export/test/unit/export/modules/assets.test.ts
checksum: 192c515e32db3f5d8c4f47d57aa65597b41167f83e70ec9592e4deb88dc47802
checksum: 9245c4d4842493e0599e0e5034404be5a01907e64f11825ff169e537758f2cb2
- filename: packages/contentstack-export/test/unit/export/modules/base-class.test.ts
checksum: c7f9801faeb300f8bd97534ac72441bde5aac625dd4beaf5531945d14d9d4db0
- filename: packages/contentstack-import/test/unit/import/modules/environments.test.ts
Expand All @@ -143,4 +143,12 @@ fileignoreconfig:
checksum: bb0f20845d85fd56197f1a8c67b8f71c57dcd1836ed9cfd86d1f49f41e84d3a0
- filename: packages/contentstack-export/test/unit/export/modules/taxonomies.test.ts
checksum: 621c1de129488b6a0372a91056ebb84353bcc642ce06de59e3852cfee8d0ce49
- filename: packages/contentstack-export/test/unit/export/modules/custom-roles.test.ts
checksum: 39f0166a8030ee8f504301f3a42cc71b46ddc027189b90029ef19800b79a46e5
- filename: packages/contentstack-export/test/unit/export/modules/workflows.test.ts
checksum: c5ddb72558ffbe044abd2da7c1e2a922dbc0a99b3f31fa9df743ad1628ffd1e5
- filename: packages/contentstack-export/test/unit/export/modules/content-types.test.ts
checksum: 457912f0f1ad3cadabbdf19cff6c325164e76063f12b968a00af37ec15a875e9
- filename: packages/contentstack-export/test/unit/export/modules/global-fields.test.ts
checksum: 64d204d0ff6232d161275b1df5b2ea5612b53c72d9ba2c22bd13564229353c4d
version: "1.0"
135 changes: 135 additions & 0 deletions packages/contentstack-export/test/unit/export/modules/assets.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -682,6 +682,141 @@ describe('ExportAssets', () => {
await exportAssets.getAssets(10);
expect(makeConcurrentCallStub.called).to.be.true;
});

it('should handle assets with versioned assets enabled', async () => {
(exportAssets as any).assetsRootPath = '/test/data/assets';
mockExportConfig.modules.assets.includeVersionedAssets = true;

// Stub FsUtility methods to prevent fs operations
sinon.stub(FsUtility.prototype, 'writeIntoFile').resolves();
sinon.stub(FsUtility.prototype, 'completeFile').resolves();
sinon.stub(FsUtility.prototype, 'createFolderIfNotExist').resolves();

makeConcurrentCallStub.callsFake(async (options: any) => {
const onSuccess = options.apiParams.resolve;
// Mock versioned assets
onSuccess({
response: {
items: [
{ uid: '1', _version: 2, url: 'url1', filename: 'test.jpg' },
{ uid: '2', _version: 1, url: 'url2', filename: 'test2.jpg' }
]
}
});
});

await exportAssets.getAssets(10);
expect(makeConcurrentCallStub.called).to.be.true;
});

it('should apply query filters when configured', async () => {
(exportAssets as any).assetsRootPath = '/test/data/assets';
mockExportConfig.modules.assets.invalidKeys = ['SYS_ACL'];

// Stub FsUtility methods to prevent fs operations
sinon.stub(FsUtility.prototype, 'writeIntoFile').resolves();
sinon.stub(FsUtility.prototype, 'completeFile').resolves();
sinon.stub(FsUtility.prototype, 'createFolderIfNotExist').resolves();

makeConcurrentCallStub.callsFake(async (options: any) => {
const onSuccess = options.apiParams.resolve;
onSuccess({ response: { items: [{ uid: '1', url: 'url1', filename: 'test.jpg' }] } });
});

await exportAssets.getAssets(10);
expect(makeConcurrentCallStub.called).to.be.true;
});
});

describe('getAssetsFolders() - Additional Coverage', () => {
it('should handle folders with empty items response', async () => {
(exportAssets as any).assetsRootPath = '/test/data/assets';
const makeConcurrentCallStub = sinon.stub(exportAssets as any, 'makeConcurrentCall').resolves();

makeConcurrentCallStub.callsFake(async (options: any) => {
const onSuccess = options.apiParams.resolve;
onSuccess({ response: { items: [] } });
});

await exportAssets.getAssetsFolders(10);
expect(makeConcurrentCallStub.called).to.be.true;

makeConcurrentCallStub.restore();
});

it('should add folders to assetsFolder array', async () => {
(exportAssets as any).assetsRootPath = '/test/data/assets';

const makeConcurrentCallStub = sinon.stub(exportAssets as any, 'makeConcurrentCall').resolves();

// Stub FsUtility methods to prevent file system operations
sinon.stub(FsUtility.prototype, 'writeFile').resolves();
sinon.stub(FsUtility.prototype, 'createFolderIfNotExist').resolves();

makeConcurrentCallStub.callsFake(async (options: any) => {
const onSuccess = options.apiParams.resolve;
// Simulate adding folders to the array
(exportAssets as any).assetsFolder.push({ uid: 'folder-1', name: 'Test Folder' });
onSuccess({ response: { items: [{ uid: 'folder-1', name: 'Test Folder' }] } });
});

await exportAssets.getAssetsFolders(10);

expect(makeConcurrentCallStub.called).to.be.true;
// Verify folders were added
expect((exportAssets as any).assetsFolder.length).to.be.greaterThan(0);

makeConcurrentCallStub.restore();
});
});

describe('downloadAssets() - Additional Coverage', () => {
it('should handle download with secured assets', async () => {
mockExportConfig.modules.assets.securedAssets = true;
(exportAssets as any).assetsRootPath = '/test/data/assets';

const getPlainMetaStub = sinon.stub(FsUtility.prototype, 'getPlainMeta').returns({
'file-1': [{ uid: '1', url: 'url1', filename: 'test.jpg' }]
});
const makeConcurrentCallStub = sinon.stub(exportAssets as any, 'makeConcurrentCall').resolves();

await exportAssets.downloadAssets();

expect(makeConcurrentCallStub.called).to.be.true;
getPlainMetaStub.restore();
makeConcurrentCallStub.restore();
});

it('should handle download with enableDownloadStatus', async () => {
mockExportConfig.modules.assets.enableDownloadStatus = true;
(exportAssets as any).assetsRootPath = '/test/data/assets';

const getPlainMetaStub = sinon.stub(FsUtility.prototype, 'getPlainMeta').returns({
'file-1': [{ uid: '1', url: 'url1', filename: 'test.jpg' }]
});
const makeConcurrentCallStub = sinon.stub(exportAssets as any, 'makeConcurrentCall').resolves();

await exportAssets.downloadAssets();

expect(makeConcurrentCallStub.called).to.be.true;
getPlainMetaStub.restore();
makeConcurrentCallStub.restore();
});

it('should handle download with concurrent call structure', async () => {
(exportAssets as any).assetsRootPath = '/test/data/assets';

const getPlainMetaStub = sinon.stub(FsUtility.prototype, 'getPlainMeta').returns({
'file-1': [{ uid: '1', url: 'url1', filename: 'test.jpg' }]
});
const makeConcurrentCallStub = sinon.stub(exportAssets as any, 'makeConcurrentCall').resolves();

await exportAssets.downloadAssets();

expect(makeConcurrentCallStub.called).to.be.true;
getPlainMetaStub.restore();
makeConcurrentCallStub.restore();
});
});
});

Loading
Loading