|
1 | 1 | require_relative '../spec_helper' |
2 | | - |
| 2 | +require 'pry' |
3 | 3 | RSpec.describe ImageKitIo::ApiService::File do |
4 | 4 | let(:file_api_service) { described_class } |
5 | 5 | let(:config) { ImageKitIo.config } |
|
275 | 275 | end |
276 | 276 | end |
277 | 277 |
|
| 278 | + describe 'FileVersionDetailTest' do |
| 279 | + let(:success_response) { |
| 280 | + "{\"fileId\":\"my_file_id\",\"name\":\"cat1.jpg\",\"size\":102117,\"versionInfo\":{\"id\":\"my_file_id\",\"name\":\"Version 2\"},\"filePath\":\"/cat1.jpg\",\"url\":\"https://ik.imagekit.io/app_id/cat1.jpg\",\"fileType\":\"image\",\"height\":700,\"width\":1050,\"thumbnailUrl\":\"https://ik.imagekit.io/app_id/tr:n-ik_ml_thumbnail/cat1.jpg\",\"tags\":[\"abc\",\"def\"],\"AITags\":null,\"isPrivateFile\":true,\"customCoordinates\":null,\"metadata\":{\"height\":700,\"width\":1050,\"size\":70842,\"format\":\"jpg\",\"hasColorProfile\":false,\"quality\":0,\"density\":72,\"hasTransparency\":false,\"exif\":{},\"pHash\":\"90249d9b1fc74367\"}}" |
| 281 | + } |
| 282 | + it 'test_get_file_version_detail_succeeds_with_id' do |
| 283 | + request_client = double |
| 284 | + allow_any_instance_of(ImageKitIo::Request) |
| 285 | + .to receive(:create_headers) |
| 286 | + .and_return({}) |
| 287 | + allow(RestClient::Request) |
| 288 | + .to receive(:new) |
| 289 | + .and_return(request_client) |
| 290 | + allow(request_client) |
| 291 | + .to receive(:execute) |
| 292 | + .and_return(OpenStruct.new(code: 200, |
| 293 | + body: success_response, |
| 294 | + content_type: "application/json" |
| 295 | + )) |
| 296 | + |
| 297 | + imagekit_request = ImageKitIo::Request.new(private_key, public_key, url_endpoint) |
| 298 | + SUT = file_api_service.new(imagekit_request) |
| 299 | + resp = SUT.get_file_version_detail(file_id: "my_file_id", version_id: 'my_file_id') |
| 300 | + expect(resp).to_not have_key(:error) |
| 301 | + expect(resp[:response]).to have_key('versionInfo') |
| 302 | + expect(resp[:response]['versionInfo']['id']).to eq('my_file_id') |
| 303 | + end |
| 304 | + end |
| 305 | + |
| 306 | + describe 'FileVersionsTest' do |
| 307 | + let(:success_response) { |
| 308 | + "[{\"type\":\"file\",\"name\":\"cat1.jpg\",\"createdAt\":\"2022-06-02T11:50:44.402Z\",\"updatedAt\":\"2022-06-14T15:44:12.300Z\",\"fileId\":\"my_file_id\",\"tags\":[\"abc\",\"def\"],\"AITags\":null,\"versionInfo\":{\"id\":\"my_file_id\",\"name\":\"Version 2\"},\"embeddedMetadata\":{\"DateCreated\":\"2022-06-14T15:44:12.299Z\",\"DateTimeCreated\":\"2022-06-14T15:44:12.299Z\"},\"customCoordinates\":null,\"customMetadata\":{},\"isPrivateFile\":true,\"url\":\"https://ik.imagekit.io/app_id/cat1.jpg\",\"thumbnail\":\"https://ik.imagekit.io/app_id/tr:n-ik_ml_thumbnail/cat1.jpg\",\"fileType\":\"image\",\"filePath\":\"/cat1.jpg\",\"height\":700,\"width\":1050,\"size\":102117,\"hasAlpha\":false,\"mime\":\"image/jpeg\"},{\"type\":\"file-version\",\"name\":\"cat1.jpg\",\"createdAt\":\"2022-06-14T15:44:10.910Z\",\"updatedAt\":\"2022-06-14T15:44:11.372Z\",\"fileId\":\"my_file_id\",\"tags\":[\"abc\",\"def\"],\"AITags\":null,\"versionInfo\":{\"id\":\"my_file_second_version_id\",\"name\":\"Version 1\"},\"embeddedMetadata\":{\"DateCreated\":\"2022-06-02T11:50:45.537Z\",\"DateTimeCreated\":\"2022-06-02T11:50:45.540Z\"},\"customCoordinates\":null,\"customMetadata\":{},\"isPrivateFile\":true,\"url\":\"https://ik.imagekit.io/app_id/cat1.jpg?ik-obj-version=ik_version_id\",\"thumbnail\":\"https://ik.imagekit.io/app_id/tr:n-ik_ml_thumbnail/cat1.jpg?ik-obj-version=ik_version_id\",\"fileType\":\"image\",\"filePath\":\"/cat1.jpg\",\"height\":700,\"width\":1050,\"size\":102117,\"hasAlpha\":false,\"mime\":\"image/jpeg\"}]" |
| 309 | + } |
| 310 | + it 'test_get_file_versions_succeeds_with_id' do |
| 311 | + request_client = double |
| 312 | + allow_any_instance_of(ImageKitIo::Request) |
| 313 | + .to receive(:create_headers) |
| 314 | + .and_return({}) |
| 315 | + allow(RestClient::Request) |
| 316 | + .to receive(:new) |
| 317 | + .and_return(request_client) |
| 318 | + allow(request_client) |
| 319 | + .to receive(:execute) |
| 320 | + .and_return(OpenStruct.new(code: 200, |
| 321 | + body: success_response, |
| 322 | + content_type: "application/json" |
| 323 | + )) |
| 324 | + |
| 325 | + imagekit_request = ImageKitIo::Request.new(private_key, public_key, url_endpoint) |
| 326 | + SUT = file_api_service.new(imagekit_request) |
| 327 | + resp = SUT.get_file_versions(file_id: "my_file_id") |
| 328 | + expect(resp).to_not have_key(:error) |
| 329 | + expect(resp[:response]).to be_an_instance_of(Array) |
| 330 | + expect(resp[:response].length).to eq(2) |
| 331 | + expect(resp[:response][0]['versionInfo']['id']).to eq('my_file_id') |
| 332 | + expect(resp[:response][0]['versionInfo']['name']).to eq('Version 2') |
| 333 | + expect(resp[:response][1]['versionInfo']['id']).to eq('my_file_second_version_id') |
| 334 | + expect(resp[:response][1]['versionInfo']['name']).to eq('Version 1') |
| 335 | + end |
| 336 | + end |
| 337 | + |
| 338 | + describe 'RestoreFileVersionTest' do |
| 339 | + let(:success_response) { |
| 340 | + "{\"type\":\"file\",\"name\":\"cat1.jpg\",\"createdAt\":\"2022-06-02T11:50:44.402Z\",\"updatedAt\":\"2022-06-14T16:20:06.258Z\",\"fileId\":\"my_file_id\",\"tags\":[\"abc\",\"def\"],\"AITags\":null,\"versionInfo\":{\"id\":\"my_second_version\",\"name\":\"Version 2\"},\"embeddedMetadata\":{\"DateCreated\":\"2022-06-02T11:50:45.537Z\",\"DateTimeCreated\":\"2022-06-02T11:50:45.540Z\"},\"customCoordinates\":null,\"customMetadata\":{},\"isPrivateFile\":true,\"url\":\"https://ik.imagekit.io/app_id/cat1.jpg\",\"thumbnail\":\"https://ik.imagekit.io/app_id/tr:n-ik_ml_thumbnail/cat1.jpg\",\"fileType\":\"image\",\"filePath\":\"/cat1.jpg\",\"height\":700,\"width\":1050,\"size\":102117,\"hasAlpha\":false,\"mime\":\"image/jpeg\"}" |
| 341 | + } |
| 342 | + it 'test_restore_file_version_succeeds_with_id' do |
| 343 | + request_client = double |
| 344 | + allow_any_instance_of(ImageKitIo::Request) |
| 345 | + .to receive(:create_headers) |
| 346 | + .and_return({}) |
| 347 | + allow(RestClient::Request) |
| 348 | + .to receive(:new) |
| 349 | + .and_return(request_client) |
| 350 | + allow(request_client) |
| 351 | + .to receive(:execute) |
| 352 | + .and_return(OpenStruct.new(code: 200, |
| 353 | + body: success_response, |
| 354 | + content_type: "application/json" |
| 355 | + )) |
| 356 | + |
| 357 | + imagekit_request = ImageKitIo::Request.new(private_key, public_key, url_endpoint) |
| 358 | + SUT = file_api_service.new(imagekit_request) |
| 359 | + resp = SUT.restore_file_version(file_id: "my_file_id", version_id: 'my_second_version') |
| 360 | + expect(resp).to_not have_key(:error) |
| 361 | + expect(resp[:response]['versionInfo']['id']).to eq('my_second_version') |
| 362 | + expect(resp[:response]['versionInfo']['name']).to eq('Version 2') |
| 363 | + end |
| 364 | + end |
| 365 | + |
| 366 | + describe 'DeleteFileVersionTest' do |
| 367 | + let(:success_response) { |
| 368 | + "{\"success\":true}" |
| 369 | + } |
| 370 | + it 'test_restore_file_version_succeeds_with_id' do |
| 371 | + request_client = double |
| 372 | + allow_any_instance_of(ImageKitIo::Request) |
| 373 | + .to receive(:create_headers) |
| 374 | + .and_return({}) |
| 375 | + allow(RestClient::Request) |
| 376 | + .to receive(:new) |
| 377 | + .and_return(request_client) |
| 378 | + allow(request_client) |
| 379 | + .to receive(:execute) |
| 380 | + .and_return(OpenStruct.new(code: 200, |
| 381 | + body: success_response, |
| 382 | + content_type: "application/json" |
| 383 | + )) |
| 384 | + |
| 385 | + imagekit_request = ImageKitIo::Request.new(private_key, public_key, url_endpoint) |
| 386 | + SUT = file_api_service.new(imagekit_request) |
| 387 | + resp = SUT.delete_file_version(file_id: "my_file_id", version_id: 'my_second_version') |
| 388 | + expect(resp).to_not have_key(:error) |
| 389 | + expect(resp[:response]['success']).to eq(true) |
| 390 | + end |
| 391 | + end |
| 392 | + |
278 | 393 | describe 'FileDetailTest' do |
279 | 394 | it "test_get_file_details_fails_on_unauthenticated_request" do |
280 | 395 | request_obj = double |
|
0 commit comments