@@ -15,7 +15,9 @@ const ADDON_OCR = helper.ADDON_OCR;
1515const callReusableTest = require ( '../../../testUtils/reusableTests/reusableTests' ) . callReusableTest ;
1616const testConstants = require ( '../../../testUtils/testConstants' ) ;
1717const retry = require ( '../../../testUtils/helpers/retry' ) ;
18+ const { shouldTestFeature} = require ( "../../../spechelper" ) ;
1819const API_V2 = cloudinary . v2 . api ;
20+ const DYNAMIC_FOLDERS = helper . DYNAMIC_FOLDERS ;
1921
2022const {
2123 TIMEOUT ,
@@ -1122,6 +1124,78 @@ describe("api", function () {
11221124 callReusableTest ( "a list with a cursor" , cloudinary . v2 . api . sub_folders , '/' ) ;
11231125 } ) ;
11241126 } ) ;
1127+ describe ( "dynamic folders" , ( ) => {
1128+ it ( 'should create upload_preset when use_asset_folder_as_public_id_prefix is true' , async function ( ) {
1129+ if ( ! shouldTestFeature ( DYNAMIC_FOLDERS ) ) {
1130+ this . skip ( ) ;
1131+ }
1132+
1133+ this . timeout ( TIMEOUT . LONG ) ;
1134+ let preset = await cloudinary . v2 . api . create_upload_preset ( {
1135+ use_asset_folder_as_public_id_prefix : true
1136+ } )
1137+ let preset_details = await cloudinary . v2 . api . upload_preset ( preset . name ) ;
1138+ expect ( preset_details . settings ) . to . eql ( { use_asset_folder_as_public_id_prefix : true } )
1139+ } ) ;
1140+
1141+ it ( 'should update upload_preset when use_asset_folder_as_public_id_prefix is true' , async function ( ) {
1142+ if ( ! shouldTestFeature ( DYNAMIC_FOLDERS ) ) {
1143+ this . skip ( ) ;
1144+ }
1145+ this . timeout ( TIMEOUT . LONG ) ;
1146+ let preset = await cloudinary . v2 . api . create_upload_preset ( ) ;
1147+ await cloudinary . v2 . api . update_upload_preset ( preset . name ,
1148+ {
1149+ use_asset_folder_as_public_id_prefix : true
1150+ } ) ;
1151+
1152+ let preset_details = await cloudinary . v2 . api . upload_preset ( preset . name ) ;
1153+ expect ( preset_details . settings ) . to . eql ( { use_asset_folder_as_public_id_prefix : true } )
1154+ } ) ;
1155+
1156+ it ( 'should update asset_folder' , async function ( ) {
1157+ if ( ! shouldTestFeature ( DYNAMIC_FOLDERS ) ) {
1158+ this . skip ( ) ;
1159+ }
1160+ const asset_folder = "asset_folder" ;
1161+ return uploadImage ( {
1162+ asset_folder
1163+ } ) . then ( result => {
1164+ return cloudinary . v2 . api . update ( result . public_id , {
1165+ asset_folder : 'updated_asset_folder'
1166+ } ) . then ( res => {
1167+ expect ( res . asset_folder ) . to . eql ( 'updated_asset_folder' )
1168+ } )
1169+ } ) ;
1170+ } ) ;
1171+
1172+ it ( 'should update asset_folder with unique_display_name' , ( ) => {
1173+ return helper . provideMockObjects ( ( mockXHR , writeSpy , requestSpy ) => {
1174+ uploadImage ( ) . then ( result => {
1175+ cloudinary . v2 . api . update ( result . public_id , {
1176+ unique_display_name : true
1177+ } )
1178+ return sinon . assert . calledWith ( requestSpy , sinon . match ( {
1179+ query : sinon . match ( helper . apiParamMatcher ( "unique_display_name" , "true" ) )
1180+ } ) ) ;
1181+ } ) ;
1182+ } ) ;
1183+ } ) ;
1184+
1185+ it ( 'should list resources_by_asset_folder' , async function ( ) {
1186+ if ( ! shouldTestFeature ( DYNAMIC_FOLDERS ) ) {
1187+ this . skip ( ) ;
1188+ }
1189+
1190+ const asset_folder = "new_asset_folder" ;
1191+ return uploadImage ( {
1192+ asset_folder
1193+ } ) . then ( async ( ) => {
1194+ const result = await cloudinary . v2 . api . resources_by_asset_folder ( 'new_asset_folder' )
1195+ expect ( result . total_count ) . to . eql ( 1 )
1196+ } ) ;
1197+ } ) ;
1198+ } ) ;
11251199 describe ( '.restore' , function ( ) {
11261200 this . timeout ( TIMEOUT . MEDIUM ) ;
11271201
0 commit comments