Sha256: 877300aba01ecfeb67253f4d8a828d13abd1054b6c902397197b3b095886ddef

Contents?: true

Size: 1.99 KB

Versions: 7

Compression:

Stored size: 1.99 KB

Contents

require "spec_helper"

describe SauceWhisk::Assets do
  let(:auth) {"#{ENV["SAUCE_USERNAME"]}:#{ENV["SAUCE_ACCESS_KEY"]}"}
  let(:user) {ENV["SAUCE_USERNAME"]}

  describe "#fetch", :vcr => {:cassette_name => "assets"} do
    let(:job_id)  {"bd9c43dd6b5549f1b942d1d581d98cac"}
    let(:asset_name)  {"0000screenshot.png"}

    it "fetches an asset for the requested job" do
      SauceWhisk::Assets.fetch job_id, asset_name

      assert_requested :get, "https://#{auth}@saucelabs.com/rest/v1/#{user}/jobs/#{job_id}/assets/#{asset_name}"
    end

    it "returns an asset" do
      SauceWhisk::Assets.fetch(job_id, asset_name).should be_an_instance_of SauceWhisk::Asset
    end

    it "initializes the asset properly" do
      asset = SauceWhisk::Assets.fetch job_id, asset_name
      expect( asset.name ).to eq asset_name
      expect( asset.job ).to eq job_id
      expect( asset.asset_type ).to eq :screenshot
    end

    context "for an invalid asset" do
      let(:invalid_job_id) {"aaaaaaaaaaaaaaaa"}

      it "returns a RestClient::ResourceNotFound Exception" do
        expect {
          SauceWhisk::Assets.fetch invalid_job_id, asset_name
        }.to raise_error RestClient::ResourceNotFound
      end
    end

    context "for an asset that's not available immediately" do
      let(:slow_job_id) {"n0th3r3y3t"}

      it "returns the asset" do
        SauceWhisk::Assets.fetch(slow_job_id, asset_name).should be_an_instance_of SauceWhisk::Asset
      end
    end
  end
  
  describe "#delete", :vcr => {:cassette_name => "assets"} do
    let(:asset_job_id) {"f7bcec8f706f4910ba128f48e0b8c6c7"}
    it "can delete a job" do
      SauceWhisk::Assets.delete(asset_job_id).should be_an_instance_of SauceWhisk::Asset
    end
  end
  
  describe "#already_deleted_asset", :vcr => {:cassette_name => "assets"} do
    let(:asset_job_id) {"651c7d737b7547e994678d981dcc433c"}
    it "returns nil for already deleted assets" do
      SauceWhisk::Assets.delete(asset_job_id).should be_an_instance_of SauceWhisk::Asset
    end
  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
sauce_whisk-0.0.20 spec/lib/sauce_whisk/assets_spec.rb
sauce_whisk-0.0.19 spec/lib/sauce_whisk/assets_spec.rb
sauce_whisk-0.0.18 spec/lib/sauce_whisk/assets_spec.rb
sauce_whisk-0.0.17 spec/lib/sauce_whisk/assets_spec.rb
sauce_whisk-0.0.16 spec/lib/sauce_whisk/assets_spec.rb
sauce_whisk-0.0.15 spec/lib/sauce_whisk/assets_spec.rb
sauce_whisk-0.0.14 spec/lib/sauce_whisk/assets_spec.rb