Sha256: 2332ba880e01896bbdcba90548dcfd53d8a938b37278d545f799feb8a2abc017

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

RSpec.describe Gladwords::Commands::Delete do
  include_context 'labels'

  subject(:command) do
    relation.command(:delete)
  end

  let(:service) { label_service }
  let(:relation) { labels }

  it 'deletes the label' do
    label = relation.command(:create).call(name: SecureRandom.hex, xsi_type: 'TextLabel')

    rel = relation.where(label_id: label.id).limit(1)
    expect(rel.first[:status]).to eq 'ENABLED'

    delete_command = rel.command(:delete)
    delete_command.call

    expect(rel.with({}).call.first[:status]).to eq 'REMOVED'
  end

  it 'deletes multiple labels' do
    label, label2 = relation.command(:create, result: :many).call(
      [
        { name: SecureRandom.hex, xsi_type: 'TextLabel' },
        { name: SecureRandom.hex, xsi_type: 'TextLabel' }
      ]
    )

    rel = relation.where(label_id: [label.id, label2.id])
                  .limit(2)

    delete_command = rel.command(:delete)
    delete_command.call

    labels = rel.with({}).call

    expect(labels.count).to eq 2

    labels.each do |lab|
      expect(lab[:status]).to eq 'REMOVED'
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gladwords-1.0.1 spec/integration/commands/delete_spec.rb