Sha256: 83fe27a4b2cf69b7ae696834b2b2aeeb53c9d5faa49dcf33933978599defd722

Contents?: true

Size: 1.92 KB

Versions: 2

Compression:

Stored size: 1.92 KB

Contents

require 'spec_helper'

describe RemoteFile do
  let(:params) {
    {
      id: SecureRandom.uuid,
      name: 'Board name',
      size: Random.rand(9999999),
      url: nil,
      multipart: {
        part_numbers: Random.rand(10),
        id: SecureRandom.uuid,
        chunk_size: RemoteBoard::CHUNK_SIZE,
      },
      type: 'file',
    }}

  describe '#initializer' do
    it 'initialized when no url is given' do
      params.delete(:url)
      described_class.new(params)
    end

    it 'initialized when no item is given' do
      params.delete(:items)
      described_class.new(params)
    end

    it 'fails when id is missing' do
      params.delete(:id)
      expect {
        described_class.new(params)
      }.to raise_error ArgumentError, /id/
    end

    it 'fails when state is missing' do
      params.delete(:size)
      expect {
        described_class.new(params)
      }.to raise_error ArgumentError, /size/
    end

    it 'fails when url is missing' do
      params.delete(:multipart)
      expect {
        described_class.new(params)
      }.to raise_error ArgumentError, /multipart/
    end

    it 'fails when name is missing' do
      params.delete(:name)
      expect {
        described_class.new(params)
      }.to raise_error ArgumentError, /name/
    end

    it 'must have a struct in multipart' do
      remote_file = described_class.new(params)
      expect(remote_file.multipart).to be_kind_of(Struct)
    end

    it 'multipart has partnumber, id and chunk_size keys' do
      remote_file = described_class.new(params)
      expect(remote_file.multipart.members).to eq(params[:multipart].keys)
    end
  end

  describe 'Getters' do
    let(:subject) { described_class.new(params) }

    it '#multipart' do
      subject.multipart
    end

    it '#name' do
      subject.name
    end

    it '#type' do
      subject.type
    end

    it '#id' do
      subject.id
    end

    it '#url' do
      subject.url
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
wetransfer-0.9.0.beta1 spec/we_transfer_client/remote_file_spec.rb
wetransfer-0.9.0.beta spec/we_transfer_client/remote_file_spec.rb