Sha256: 62c00559019d04562e2d220d7b7e21c12d68b755a28b51a6a1202ccc4789b4e7

Contents?: true

Size: 1.73 KB

Versions: 3

Compression:

Stored size: 1.73 KB

Contents

require 'spec_helper'

describe Etcd::Keys do

  let(:client) do
    Etcd.client
  end

  it '#set/#get' do
    key = random_key
    value = uuid.generate
    client.set(key, value: value)
    expect(client.get(key).value).to eq(value)
  end

  context '#exists?' do
    it 'should be true for existing keys' do
      key = random_key
      client.create(key, value: 10)
      expect(client.exists?(key)).to be_true
    end
    it 'should be true for existing keys' do
      expect(client.exists?(random_key)).to be_false
    end
  end

  context 'directory' do
    it 'should be able to create a directory' do
      d = random_key
      client.create(d, dir: true)
      expect(client.get(d)).to be_true
    end
    context 'empty' do
      it 'should be able to delete with dir flag' do
        d = random_key
        client.create(d, dir: true)
        expect(client.delete(d, dir: true)).to be_true
      end

      it 'should not be able to delete without dir flag' do
        d = random_key
        client.create(d, dir: true)
        client.create("#{d}/foobar", value: 10)
        expect do
          client.delete(d)
        end.to raise_error(Etcd::NotFile)
      end
    end
    context 'not empty' do
      it 'should be able to delete with recursive flag' do
        d = random_key
        client.create(d, dir: true)
        client.create("#{d}/foobar")
        expect do
          client.delete(d, dir: true, recursive: true)
        end.to_not raise_error
      end
      it 'should be not able to delete without recursive flag' do
        d = random_key
        client.create(d, dir: true)
        client.create("#{d}/foobar")
        expect do
          client.delete(d, dir: true)
        end.to raise_error(Etcd::DirNotEmpty)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
etcd-0.2.2 spec/etcd/keys_spec.rb
etcd-0.2.1 spec/etcd/keys_spec.rb
etcd-0.2.0.beta.1 spec/etcd/keys_spec.rb